• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_testing
17 //
18 // (impl) generated by codegen/vulkan/scripts/genvk.py -registry codegen/vulkan/xml/vk.xml
19 // -registryGfxstream codegen/vulkan/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
20 //
21 // Please do not modify directly;
22 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31 
32 #include "goldfish_vk_testing.h"
33 
34 #include <string.h>
35 
36 #include "goldfish_vk_extension_structs.h"
37 #include "goldfish_vk_private_defs.h"
38 
39 namespace gfxstream {
40 namespace vk {
41 
42 void checkEqual_extension_struct(const void* structExtension, const void* structExtension2,
43                                  OnFailCompareFunc onFail);
44 
45 #ifdef VK_VERSION_1_0
checkEqual_VkExtent2D(const VkExtent2D * a,const VkExtent2D * b,OnFailCompareFunc onFail)46 void checkEqual_VkExtent2D(const VkExtent2D* a, const VkExtent2D* b, OnFailCompareFunc onFail) {
47     if (!((a->width) == (b->width))) {
48         onFail("a->width (Error: Value not equal)");
49     };
50     if (!((a->height) == (b->height))) {
51         onFail("a->height (Error: Value not equal)");
52     };
53 }
54 
checkEqual_VkExtent3D(const VkExtent3D * a,const VkExtent3D * b,OnFailCompareFunc onFail)55 void checkEqual_VkExtent3D(const VkExtent3D* a, const VkExtent3D* b, OnFailCompareFunc onFail) {
56     if (!((a->width) == (b->width))) {
57         onFail("a->width (Error: Value not equal)");
58     };
59     if (!((a->height) == (b->height))) {
60         onFail("a->height (Error: Value not equal)");
61     };
62     if (!((a->depth) == (b->depth))) {
63         onFail("a->depth (Error: Value not equal)");
64     };
65 }
66 
checkEqual_VkOffset2D(const VkOffset2D * a,const VkOffset2D * b,OnFailCompareFunc onFail)67 void checkEqual_VkOffset2D(const VkOffset2D* a, const VkOffset2D* b, OnFailCompareFunc onFail) {
68     if (!((a->x) == (b->x))) {
69         onFail("a->x (Error: Value not equal)");
70     };
71     if (!((a->y) == (b->y))) {
72         onFail("a->y (Error: Value not equal)");
73     };
74 }
75 
checkEqual_VkOffset3D(const VkOffset3D * a,const VkOffset3D * b,OnFailCompareFunc onFail)76 void checkEqual_VkOffset3D(const VkOffset3D* a, const VkOffset3D* b, OnFailCompareFunc onFail) {
77     if (!((a->x) == (b->x))) {
78         onFail("a->x (Error: Value not equal)");
79     };
80     if (!((a->y) == (b->y))) {
81         onFail("a->y (Error: Value not equal)");
82     };
83     if (!((a->z) == (b->z))) {
84         onFail("a->z (Error: Value not equal)");
85     };
86 }
87 
checkEqual_VkRect2D(const VkRect2D * a,const VkRect2D * b,OnFailCompareFunc onFail)88 void checkEqual_VkRect2D(const VkRect2D* a, const VkRect2D* b, OnFailCompareFunc onFail) {
89     checkEqual_VkOffset2D(&a->offset, &b->offset, onFail);
90     checkEqual_VkExtent2D(&a->extent, &b->extent, onFail);
91 }
92 
checkEqual_VkBaseInStructure(const VkBaseInStructure * a,const VkBaseInStructure * b,OnFailCompareFunc onFail)93 void checkEqual_VkBaseInStructure(const VkBaseInStructure* a, const VkBaseInStructure* b,
94                                   OnFailCompareFunc onFail) {
95     if (!((a->sType) == (b->sType))) {
96         onFail("a->sType (Error: Value not equal)");
97     };
98     if (a->pNext) {
99         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
100     }
101 }
102 
checkEqual_VkBaseOutStructure(const VkBaseOutStructure * a,const VkBaseOutStructure * b,OnFailCompareFunc onFail)103 void checkEqual_VkBaseOutStructure(const VkBaseOutStructure* a, const VkBaseOutStructure* b,
104                                    OnFailCompareFunc onFail) {
105     if (!((a->sType) == (b->sType))) {
106         onFail("a->sType (Error: Value not equal)");
107     };
108     if (a->pNext) {
109         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
110     }
111 }
112 
checkEqual_VkBufferMemoryBarrier(const VkBufferMemoryBarrier * a,const VkBufferMemoryBarrier * b,OnFailCompareFunc onFail)113 void checkEqual_VkBufferMemoryBarrier(const VkBufferMemoryBarrier* a,
114                                       const VkBufferMemoryBarrier* b, OnFailCompareFunc onFail) {
115     if (!((a->sType) == (b->sType))) {
116         onFail("a->sType (Error: Value not equal)");
117     };
118     if (a->pNext) {
119         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
120     }
121     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
122         onFail("a->srcAccessMask (Error: Value not equal)");
123     };
124     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
125         onFail("a->dstAccessMask (Error: Value not equal)");
126     };
127     if (!((a->srcQueueFamilyIndex) == (b->srcQueueFamilyIndex))) {
128         onFail("a->srcQueueFamilyIndex (Error: Value not equal)");
129     };
130     if (!((a->dstQueueFamilyIndex) == (b->dstQueueFamilyIndex))) {
131         onFail("a->dstQueueFamilyIndex (Error: Value not equal)");
132     };
133     if (!((a->buffer) == (b->buffer))) {
134         onFail("a->buffer (Error: Value not equal)");
135     };
136     if (!((a->offset) == (b->offset))) {
137         onFail("a->offset (Error: Value not equal)");
138     };
139     if (!((a->size) == (b->size))) {
140         onFail("a->size (Error: Value not equal)");
141     };
142 }
143 
checkEqual_VkDispatchIndirectCommand(const VkDispatchIndirectCommand * a,const VkDispatchIndirectCommand * b,OnFailCompareFunc onFail)144 void checkEqual_VkDispatchIndirectCommand(const VkDispatchIndirectCommand* a,
145                                           const VkDispatchIndirectCommand* b,
146                                           OnFailCompareFunc onFail) {
147     if (!((a->x) == (b->x))) {
148         onFail("a->x (Error: Value not equal)");
149     };
150     if (!((a->y) == (b->y))) {
151         onFail("a->y (Error: Value not equal)");
152     };
153     if (!((a->z) == (b->z))) {
154         onFail("a->z (Error: Value not equal)");
155     };
156 }
157 
checkEqual_VkDrawIndexedIndirectCommand(const VkDrawIndexedIndirectCommand * a,const VkDrawIndexedIndirectCommand * b,OnFailCompareFunc onFail)158 void checkEqual_VkDrawIndexedIndirectCommand(const VkDrawIndexedIndirectCommand* a,
159                                              const VkDrawIndexedIndirectCommand* b,
160                                              OnFailCompareFunc onFail) {
161     if (!((a->indexCount) == (b->indexCount))) {
162         onFail("a->indexCount (Error: Value not equal)");
163     };
164     if (!((a->instanceCount) == (b->instanceCount))) {
165         onFail("a->instanceCount (Error: Value not equal)");
166     };
167     if (!((a->firstIndex) == (b->firstIndex))) {
168         onFail("a->firstIndex (Error: Value not equal)");
169     };
170     if (!((a->vertexOffset) == (b->vertexOffset))) {
171         onFail("a->vertexOffset (Error: Value not equal)");
172     };
173     if (!((a->firstInstance) == (b->firstInstance))) {
174         onFail("a->firstInstance (Error: Value not equal)");
175     };
176 }
177 
checkEqual_VkDrawIndirectCommand(const VkDrawIndirectCommand * a,const VkDrawIndirectCommand * b,OnFailCompareFunc onFail)178 void checkEqual_VkDrawIndirectCommand(const VkDrawIndirectCommand* a,
179                                       const VkDrawIndirectCommand* b, OnFailCompareFunc onFail) {
180     if (!((a->vertexCount) == (b->vertexCount))) {
181         onFail("a->vertexCount (Error: Value not equal)");
182     };
183     if (!((a->instanceCount) == (b->instanceCount))) {
184         onFail("a->instanceCount (Error: Value not equal)");
185     };
186     if (!((a->firstVertex) == (b->firstVertex))) {
187         onFail("a->firstVertex (Error: Value not equal)");
188     };
189     if (!((a->firstInstance) == (b->firstInstance))) {
190         onFail("a->firstInstance (Error: Value not equal)");
191     };
192 }
193 
checkEqual_VkImageSubresourceRange(const VkImageSubresourceRange * a,const VkImageSubresourceRange * b,OnFailCompareFunc onFail)194 void checkEqual_VkImageSubresourceRange(const VkImageSubresourceRange* a,
195                                         const VkImageSubresourceRange* b,
196                                         OnFailCompareFunc onFail) {
197     if (!((a->aspectMask) == (b->aspectMask))) {
198         onFail("a->aspectMask (Error: Value not equal)");
199     };
200     if (!((a->baseMipLevel) == (b->baseMipLevel))) {
201         onFail("a->baseMipLevel (Error: Value not equal)");
202     };
203     if (!((a->levelCount) == (b->levelCount))) {
204         onFail("a->levelCount (Error: Value not equal)");
205     };
206     if (!((a->baseArrayLayer) == (b->baseArrayLayer))) {
207         onFail("a->baseArrayLayer (Error: Value not equal)");
208     };
209     if (!((a->layerCount) == (b->layerCount))) {
210         onFail("a->layerCount (Error: Value not equal)");
211     };
212 }
213 
checkEqual_VkImageMemoryBarrier(const VkImageMemoryBarrier * a,const VkImageMemoryBarrier * b,OnFailCompareFunc onFail)214 void checkEqual_VkImageMemoryBarrier(const VkImageMemoryBarrier* a, const VkImageMemoryBarrier* b,
215                                      OnFailCompareFunc onFail) {
216     if (!((a->sType) == (b->sType))) {
217         onFail("a->sType (Error: Value not equal)");
218     };
219     if (a->pNext) {
220         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
221     }
222     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
223         onFail("a->srcAccessMask (Error: Value not equal)");
224     };
225     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
226         onFail("a->dstAccessMask (Error: Value not equal)");
227     };
228     if (!((a->oldLayout) == (b->oldLayout))) {
229         onFail("a->oldLayout (Error: Value not equal)");
230     };
231     if (!((a->newLayout) == (b->newLayout))) {
232         onFail("a->newLayout (Error: Value not equal)");
233     };
234     if (!((a->srcQueueFamilyIndex) == (b->srcQueueFamilyIndex))) {
235         onFail("a->srcQueueFamilyIndex (Error: Value not equal)");
236     };
237     if (!((a->dstQueueFamilyIndex) == (b->dstQueueFamilyIndex))) {
238         onFail("a->dstQueueFamilyIndex (Error: Value not equal)");
239     };
240     if (!((a->image) == (b->image))) {
241         onFail("a->image (Error: Value not equal)");
242     };
243     checkEqual_VkImageSubresourceRange(&a->subresourceRange, &b->subresourceRange, onFail);
244 }
245 
checkEqual_VkMemoryBarrier(const VkMemoryBarrier * a,const VkMemoryBarrier * b,OnFailCompareFunc onFail)246 void checkEqual_VkMemoryBarrier(const VkMemoryBarrier* a, const VkMemoryBarrier* b,
247                                 OnFailCompareFunc onFail) {
248     if (!((a->sType) == (b->sType))) {
249         onFail("a->sType (Error: Value not equal)");
250     };
251     if (a->pNext) {
252         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
253     }
254     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
255         onFail("a->srcAccessMask (Error: Value not equal)");
256     };
257     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
258         onFail("a->dstAccessMask (Error: Value not equal)");
259     };
260 }
261 
checkEqual_VkPipelineCacheHeaderVersionOne(const VkPipelineCacheHeaderVersionOne * a,const VkPipelineCacheHeaderVersionOne * b,OnFailCompareFunc onFail)262 void checkEqual_VkPipelineCacheHeaderVersionOne(const VkPipelineCacheHeaderVersionOne* a,
263                                                 const VkPipelineCacheHeaderVersionOne* b,
264                                                 OnFailCompareFunc onFail) {
265     if (!((a->headerSize) == (b->headerSize))) {
266         onFail("a->headerSize (Error: Value not equal)");
267     };
268     if (!((a->headerVersion) == (b->headerVersion))) {
269         onFail("a->headerVersion (Error: Value not equal)");
270     };
271     if (!((a->vendorID) == (b->vendorID))) {
272         onFail("a->vendorID (Error: Value not equal)");
273     };
274     if (!((a->deviceID) == (b->deviceID))) {
275         onFail("a->deviceID (Error: Value not equal)");
276     };
277     if (!((memcmp(a->pipelineCacheUUID, b->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t)) ==
278            0))) {
279         onFail("a->pipelineCacheUUID (Error: Unequal static array)");
280     };
281 }
282 
checkEqual_VkAllocationCallbacks(const VkAllocationCallbacks * a,const VkAllocationCallbacks * b,OnFailCompareFunc onFail)283 void checkEqual_VkAllocationCallbacks(const VkAllocationCallbacks* a,
284                                       const VkAllocationCallbacks* b, OnFailCompareFunc onFail) {
285     if (!((!(a->pUserData) && !(b->pUserData)) || ((a->pUserData) && (b->pUserData)))) {
286         onFail("a->pUserData (Error: Mismatch in optional field)");
287     };
288     if (!((a->pfnAllocation) == (b->pfnAllocation))) {
289         onFail("a->pfnAllocation (Error: Value not equal)");
290     };
291     if (!((a->pfnReallocation) == (b->pfnReallocation))) {
292         onFail("a->pfnReallocation (Error: Value not equal)");
293     };
294     if (!((a->pfnFree) == (b->pfnFree))) {
295         onFail("a->pfnFree (Error: Value not equal)");
296     };
297     if (!((a->pfnInternalAllocation) == (b->pfnInternalAllocation))) {
298         onFail("a->pfnInternalAllocation (Error: Value not equal)");
299     };
300     if (!((a->pfnInternalFree) == (b->pfnInternalFree))) {
301         onFail("a->pfnInternalFree (Error: Value not equal)");
302     };
303 }
304 
checkEqual_VkApplicationInfo(const VkApplicationInfo * a,const VkApplicationInfo * b,OnFailCompareFunc onFail)305 void checkEqual_VkApplicationInfo(const VkApplicationInfo* a, const VkApplicationInfo* b,
306                                   OnFailCompareFunc onFail) {
307     if (!((a->sType) == (b->sType))) {
308         onFail("a->sType (Error: Value not equal)");
309     };
310     if (a->pNext) {
311         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
312     }
313     if (!((!(a->pApplicationName) && !(b->pApplicationName)) ||
314           ((a->pApplicationName) && (b->pApplicationName)))) {
315         onFail("a->pApplicationName (Error: Mismatch in optional field)");
316     };
317     if (a->pApplicationName && b->pApplicationName) {
318         if (!((!(a->pApplicationName) && !(b->pApplicationName)) ||
319               ((a->pApplicationName) && (b->pApplicationName)))) {
320             onFail("a->pApplicationName (Error: Mismatch in string pointer nullness)");
321         };
322         if ((a->pApplicationName) && (b->pApplicationName)) {
323             if (!((strcmp(a->pApplicationName, b->pApplicationName) == 0))) {
324                 onFail("a->pApplicationName (Error: Unequal strings)");
325             };
326         }
327     }
328     if (!((a->applicationVersion) == (b->applicationVersion))) {
329         onFail("a->applicationVersion (Error: Value not equal)");
330     };
331     if (!((!(a->pEngineName) && !(b->pEngineName)) || ((a->pEngineName) && (b->pEngineName)))) {
332         onFail("a->pEngineName (Error: Mismatch in optional field)");
333     };
334     if (a->pEngineName && b->pEngineName) {
335         if (!((!(a->pEngineName) && !(b->pEngineName)) || ((a->pEngineName) && (b->pEngineName)))) {
336             onFail("a->pEngineName (Error: Mismatch in string pointer nullness)");
337         };
338         if ((a->pEngineName) && (b->pEngineName)) {
339             if (!((strcmp(a->pEngineName, b->pEngineName) == 0))) {
340                 onFail("a->pEngineName (Error: Unequal strings)");
341             };
342         }
343     }
344     if (!((a->engineVersion) == (b->engineVersion))) {
345         onFail("a->engineVersion (Error: Value not equal)");
346     };
347     if (!((a->apiVersion) == (b->apiVersion))) {
348         onFail("a->apiVersion (Error: Value not equal)");
349     };
350 }
351 
checkEqual_VkFormatProperties(const VkFormatProperties * a,const VkFormatProperties * b,OnFailCompareFunc onFail)352 void checkEqual_VkFormatProperties(const VkFormatProperties* a, const VkFormatProperties* b,
353                                    OnFailCompareFunc onFail) {
354     if (!((a->linearTilingFeatures) == (b->linearTilingFeatures))) {
355         onFail("a->linearTilingFeatures (Error: Value not equal)");
356     };
357     if (!((a->optimalTilingFeatures) == (b->optimalTilingFeatures))) {
358         onFail("a->optimalTilingFeatures (Error: Value not equal)");
359     };
360     if (!((a->bufferFeatures) == (b->bufferFeatures))) {
361         onFail("a->bufferFeatures (Error: Value not equal)");
362     };
363 }
364 
checkEqual_VkImageFormatProperties(const VkImageFormatProperties * a,const VkImageFormatProperties * b,OnFailCompareFunc onFail)365 void checkEqual_VkImageFormatProperties(const VkImageFormatProperties* a,
366                                         const VkImageFormatProperties* b,
367                                         OnFailCompareFunc onFail) {
368     checkEqual_VkExtent3D(&a->maxExtent, &b->maxExtent, onFail);
369     if (!((a->maxMipLevels) == (b->maxMipLevels))) {
370         onFail("a->maxMipLevels (Error: Value not equal)");
371     };
372     if (!((a->maxArrayLayers) == (b->maxArrayLayers))) {
373         onFail("a->maxArrayLayers (Error: Value not equal)");
374     };
375     if (!((a->sampleCounts) == (b->sampleCounts))) {
376         onFail("a->sampleCounts (Error: Value not equal)");
377     };
378     if (!((a->maxResourceSize) == (b->maxResourceSize))) {
379         onFail("a->maxResourceSize (Error: Value not equal)");
380     };
381 }
382 
checkEqual_VkInstanceCreateInfo(const VkInstanceCreateInfo * a,const VkInstanceCreateInfo * b,OnFailCompareFunc onFail)383 void checkEqual_VkInstanceCreateInfo(const VkInstanceCreateInfo* a, const VkInstanceCreateInfo* b,
384                                      OnFailCompareFunc onFail) {
385     if (!((a->sType) == (b->sType))) {
386         onFail("a->sType (Error: Value not equal)");
387     };
388     if (a->pNext) {
389         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
390     }
391     if (!((a->flags) == (b->flags))) {
392         onFail("a->flags (Error: Value not equal)");
393     };
394     if (!((!(a->pApplicationInfo) && !(b->pApplicationInfo)) ||
395           ((a->pApplicationInfo) && (b->pApplicationInfo)))) {
396         onFail("a->pApplicationInfo (Error: Mismatch in optional field)");
397     };
398     if (a->pApplicationInfo && b->pApplicationInfo) {
399         if ((a->pApplicationInfo) && (b->pApplicationInfo)) {
400             checkEqual_VkApplicationInfo(a->pApplicationInfo, b->pApplicationInfo, onFail);
401         }
402     }
403     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
404         onFail("a->enabledLayerCount (Error: Value not equal)");
405     };
406     if (!((!(a->ppEnabledLayerNames) && !(b->ppEnabledLayerNames)) ||
407           ((a->ppEnabledLayerNames) && (b->ppEnabledLayerNames)))) {
408         onFail("a->ppEnabledLayerNames (Error: Mismatch in string array pointer nullness)");
409     };
410     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
411         onFail("a->ppEnabledLayerNames (Error: Lengths not equal in string array)");
412     };
413     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
414         onFail("a->ppEnabledLayerNames (Error: Lengths not equal in string array)");
415     };
416     if ((a->enabledLayerCount) == (b->enabledLayerCount) && (a->ppEnabledLayerNames) &&
417         (b->ppEnabledLayerNames)) {
418         if (a) {
419             for (uint32_t i = 0; i < (uint32_t)a->enabledLayerCount; ++i) {
420                 if (!((strcmp(*(a->ppEnabledLayerNames + i), *(b->ppEnabledLayerNames + i)) ==
421                        0))) {
422                     onFail("a->ppEnabledLayerNames (Error: Unequal string in string array)");
423                 };
424             }
425         }
426     }
427     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
428         onFail("a->enabledExtensionCount (Error: Value not equal)");
429     };
430     if (!((!(a->ppEnabledExtensionNames) && !(b->ppEnabledExtensionNames)) ||
431           ((a->ppEnabledExtensionNames) && (b->ppEnabledExtensionNames)))) {
432         onFail("a->ppEnabledExtensionNames (Error: Mismatch in string array pointer nullness)");
433     };
434     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
435         onFail("a->ppEnabledExtensionNames (Error: Lengths not equal in string array)");
436     };
437     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
438         onFail("a->ppEnabledExtensionNames (Error: Lengths not equal in string array)");
439     };
440     if ((a->enabledExtensionCount) == (b->enabledExtensionCount) && (a->ppEnabledExtensionNames) &&
441         (b->ppEnabledExtensionNames)) {
442         if (a) {
443             for (uint32_t i = 0; i < (uint32_t)a->enabledExtensionCount; ++i) {
444                 if (!((strcmp(*(a->ppEnabledExtensionNames + i),
445                               *(b->ppEnabledExtensionNames + i)) == 0))) {
446                     onFail("a->ppEnabledExtensionNames (Error: Unequal string in string array)");
447                 };
448             }
449         }
450     }
451 }
452 
checkEqual_VkMemoryHeap(const VkMemoryHeap * a,const VkMemoryHeap * b,OnFailCompareFunc onFail)453 void checkEqual_VkMemoryHeap(const VkMemoryHeap* a, const VkMemoryHeap* b,
454                              OnFailCompareFunc onFail) {
455     if (!((a->size) == (b->size))) {
456         onFail("a->size (Error: Value not equal)");
457     };
458     if (!((a->flags) == (b->flags))) {
459         onFail("a->flags (Error: Value not equal)");
460     };
461 }
462 
checkEqual_VkMemoryType(const VkMemoryType * a,const VkMemoryType * b,OnFailCompareFunc onFail)463 void checkEqual_VkMemoryType(const VkMemoryType* a, const VkMemoryType* b,
464                              OnFailCompareFunc onFail) {
465     if (!((a->propertyFlags) == (b->propertyFlags))) {
466         onFail("a->propertyFlags (Error: Value not equal)");
467     };
468     if (!((a->heapIndex) == (b->heapIndex))) {
469         onFail("a->heapIndex (Error: Value not equal)");
470     };
471 }
472 
checkEqual_VkPhysicalDeviceFeatures(const VkPhysicalDeviceFeatures * a,const VkPhysicalDeviceFeatures * b,OnFailCompareFunc onFail)473 void checkEqual_VkPhysicalDeviceFeatures(const VkPhysicalDeviceFeatures* a,
474                                          const VkPhysicalDeviceFeatures* b,
475                                          OnFailCompareFunc onFail) {
476     if (!((a->robustBufferAccess) == (b->robustBufferAccess))) {
477         onFail("a->robustBufferAccess (Error: Value not equal)");
478     };
479     if (!((a->fullDrawIndexUint32) == (b->fullDrawIndexUint32))) {
480         onFail("a->fullDrawIndexUint32 (Error: Value not equal)");
481     };
482     if (!((a->imageCubeArray) == (b->imageCubeArray))) {
483         onFail("a->imageCubeArray (Error: Value not equal)");
484     };
485     if (!((a->independentBlend) == (b->independentBlend))) {
486         onFail("a->independentBlend (Error: Value not equal)");
487     };
488     if (!((a->geometryShader) == (b->geometryShader))) {
489         onFail("a->geometryShader (Error: Value not equal)");
490     };
491     if (!((a->tessellationShader) == (b->tessellationShader))) {
492         onFail("a->tessellationShader (Error: Value not equal)");
493     };
494     if (!((a->sampleRateShading) == (b->sampleRateShading))) {
495         onFail("a->sampleRateShading (Error: Value not equal)");
496     };
497     if (!((a->dualSrcBlend) == (b->dualSrcBlend))) {
498         onFail("a->dualSrcBlend (Error: Value not equal)");
499     };
500     if (!((a->logicOp) == (b->logicOp))) {
501         onFail("a->logicOp (Error: Value not equal)");
502     };
503     if (!((a->multiDrawIndirect) == (b->multiDrawIndirect))) {
504         onFail("a->multiDrawIndirect (Error: Value not equal)");
505     };
506     if (!((a->drawIndirectFirstInstance) == (b->drawIndirectFirstInstance))) {
507         onFail("a->drawIndirectFirstInstance (Error: Value not equal)");
508     };
509     if (!((a->depthClamp) == (b->depthClamp))) {
510         onFail("a->depthClamp (Error: Value not equal)");
511     };
512     if (!((a->depthBiasClamp) == (b->depthBiasClamp))) {
513         onFail("a->depthBiasClamp (Error: Value not equal)");
514     };
515     if (!((a->fillModeNonSolid) == (b->fillModeNonSolid))) {
516         onFail("a->fillModeNonSolid (Error: Value not equal)");
517     };
518     if (!((a->depthBounds) == (b->depthBounds))) {
519         onFail("a->depthBounds (Error: Value not equal)");
520     };
521     if (!((a->wideLines) == (b->wideLines))) {
522         onFail("a->wideLines (Error: Value not equal)");
523     };
524     if (!((a->largePoints) == (b->largePoints))) {
525         onFail("a->largePoints (Error: Value not equal)");
526     };
527     if (!((a->alphaToOne) == (b->alphaToOne))) {
528         onFail("a->alphaToOne (Error: Value not equal)");
529     };
530     if (!((a->multiViewport) == (b->multiViewport))) {
531         onFail("a->multiViewport (Error: Value not equal)");
532     };
533     if (!((a->samplerAnisotropy) == (b->samplerAnisotropy))) {
534         onFail("a->samplerAnisotropy (Error: Value not equal)");
535     };
536     if (!((a->textureCompressionETC2) == (b->textureCompressionETC2))) {
537         onFail("a->textureCompressionETC2 (Error: Value not equal)");
538     };
539     if (!((a->textureCompressionASTC_LDR) == (b->textureCompressionASTC_LDR))) {
540         onFail("a->textureCompressionASTC_LDR (Error: Value not equal)");
541     };
542     if (!((a->textureCompressionBC) == (b->textureCompressionBC))) {
543         onFail("a->textureCompressionBC (Error: Value not equal)");
544     };
545     if (!((a->occlusionQueryPrecise) == (b->occlusionQueryPrecise))) {
546         onFail("a->occlusionQueryPrecise (Error: Value not equal)");
547     };
548     if (!((a->pipelineStatisticsQuery) == (b->pipelineStatisticsQuery))) {
549         onFail("a->pipelineStatisticsQuery (Error: Value not equal)");
550     };
551     if (!((a->vertexPipelineStoresAndAtomics) == (b->vertexPipelineStoresAndAtomics))) {
552         onFail("a->vertexPipelineStoresAndAtomics (Error: Value not equal)");
553     };
554     if (!((a->fragmentStoresAndAtomics) == (b->fragmentStoresAndAtomics))) {
555         onFail("a->fragmentStoresAndAtomics (Error: Value not equal)");
556     };
557     if (!((a->shaderTessellationAndGeometryPointSize) ==
558           (b->shaderTessellationAndGeometryPointSize))) {
559         onFail("a->shaderTessellationAndGeometryPointSize (Error: Value not equal)");
560     };
561     if (!((a->shaderImageGatherExtended) == (b->shaderImageGatherExtended))) {
562         onFail("a->shaderImageGatherExtended (Error: Value not equal)");
563     };
564     if (!((a->shaderStorageImageExtendedFormats) == (b->shaderStorageImageExtendedFormats))) {
565         onFail("a->shaderStorageImageExtendedFormats (Error: Value not equal)");
566     };
567     if (!((a->shaderStorageImageMultisample) == (b->shaderStorageImageMultisample))) {
568         onFail("a->shaderStorageImageMultisample (Error: Value not equal)");
569     };
570     if (!((a->shaderStorageImageReadWithoutFormat) == (b->shaderStorageImageReadWithoutFormat))) {
571         onFail("a->shaderStorageImageReadWithoutFormat (Error: Value not equal)");
572     };
573     if (!((a->shaderStorageImageWriteWithoutFormat) == (b->shaderStorageImageWriteWithoutFormat))) {
574         onFail("a->shaderStorageImageWriteWithoutFormat (Error: Value not equal)");
575     };
576     if (!((a->shaderUniformBufferArrayDynamicIndexing) ==
577           (b->shaderUniformBufferArrayDynamicIndexing))) {
578         onFail("a->shaderUniformBufferArrayDynamicIndexing (Error: Value not equal)");
579     };
580     if (!((a->shaderSampledImageArrayDynamicIndexing) ==
581           (b->shaderSampledImageArrayDynamicIndexing))) {
582         onFail("a->shaderSampledImageArrayDynamicIndexing (Error: Value not equal)");
583     };
584     if (!((a->shaderStorageBufferArrayDynamicIndexing) ==
585           (b->shaderStorageBufferArrayDynamicIndexing))) {
586         onFail("a->shaderStorageBufferArrayDynamicIndexing (Error: Value not equal)");
587     };
588     if (!((a->shaderStorageImageArrayDynamicIndexing) ==
589           (b->shaderStorageImageArrayDynamicIndexing))) {
590         onFail("a->shaderStorageImageArrayDynamicIndexing (Error: Value not equal)");
591     };
592     if (!((a->shaderClipDistance) == (b->shaderClipDistance))) {
593         onFail("a->shaderClipDistance (Error: Value not equal)");
594     };
595     if (!((a->shaderCullDistance) == (b->shaderCullDistance))) {
596         onFail("a->shaderCullDistance (Error: Value not equal)");
597     };
598     if (!((a->shaderFloat64) == (b->shaderFloat64))) {
599         onFail("a->shaderFloat64 (Error: Value not equal)");
600     };
601     if (!((a->shaderInt64) == (b->shaderInt64))) {
602         onFail("a->shaderInt64 (Error: Value not equal)");
603     };
604     if (!((a->shaderInt16) == (b->shaderInt16))) {
605         onFail("a->shaderInt16 (Error: Value not equal)");
606     };
607     if (!((a->shaderResourceResidency) == (b->shaderResourceResidency))) {
608         onFail("a->shaderResourceResidency (Error: Value not equal)");
609     };
610     if (!((a->shaderResourceMinLod) == (b->shaderResourceMinLod))) {
611         onFail("a->shaderResourceMinLod (Error: Value not equal)");
612     };
613     if (!((a->sparseBinding) == (b->sparseBinding))) {
614         onFail("a->sparseBinding (Error: Value not equal)");
615     };
616     if (!((a->sparseResidencyBuffer) == (b->sparseResidencyBuffer))) {
617         onFail("a->sparseResidencyBuffer (Error: Value not equal)");
618     };
619     if (!((a->sparseResidencyImage2D) == (b->sparseResidencyImage2D))) {
620         onFail("a->sparseResidencyImage2D (Error: Value not equal)");
621     };
622     if (!((a->sparseResidencyImage3D) == (b->sparseResidencyImage3D))) {
623         onFail("a->sparseResidencyImage3D (Error: Value not equal)");
624     };
625     if (!((a->sparseResidency2Samples) == (b->sparseResidency2Samples))) {
626         onFail("a->sparseResidency2Samples (Error: Value not equal)");
627     };
628     if (!((a->sparseResidency4Samples) == (b->sparseResidency4Samples))) {
629         onFail("a->sparseResidency4Samples (Error: Value not equal)");
630     };
631     if (!((a->sparseResidency8Samples) == (b->sparseResidency8Samples))) {
632         onFail("a->sparseResidency8Samples (Error: Value not equal)");
633     };
634     if (!((a->sparseResidency16Samples) == (b->sparseResidency16Samples))) {
635         onFail("a->sparseResidency16Samples (Error: Value not equal)");
636     };
637     if (!((a->sparseResidencyAliased) == (b->sparseResidencyAliased))) {
638         onFail("a->sparseResidencyAliased (Error: Value not equal)");
639     };
640     if (!((a->variableMultisampleRate) == (b->variableMultisampleRate))) {
641         onFail("a->variableMultisampleRate (Error: Value not equal)");
642     };
643     if (!((a->inheritedQueries) == (b->inheritedQueries))) {
644         onFail("a->inheritedQueries (Error: Value not equal)");
645     };
646 }
647 
checkEqual_VkPhysicalDeviceLimits(const VkPhysicalDeviceLimits * a,const VkPhysicalDeviceLimits * b,OnFailCompareFunc onFail)648 void checkEqual_VkPhysicalDeviceLimits(const VkPhysicalDeviceLimits* a,
649                                        const VkPhysicalDeviceLimits* b, OnFailCompareFunc onFail) {
650     if (!((a->maxImageDimension1D) == (b->maxImageDimension1D))) {
651         onFail("a->maxImageDimension1D (Error: Value not equal)");
652     };
653     if (!((a->maxImageDimension2D) == (b->maxImageDimension2D))) {
654         onFail("a->maxImageDimension2D (Error: Value not equal)");
655     };
656     if (!((a->maxImageDimension3D) == (b->maxImageDimension3D))) {
657         onFail("a->maxImageDimension3D (Error: Value not equal)");
658     };
659     if (!((a->maxImageDimensionCube) == (b->maxImageDimensionCube))) {
660         onFail("a->maxImageDimensionCube (Error: Value not equal)");
661     };
662     if (!((a->maxImageArrayLayers) == (b->maxImageArrayLayers))) {
663         onFail("a->maxImageArrayLayers (Error: Value not equal)");
664     };
665     if (!((a->maxTexelBufferElements) == (b->maxTexelBufferElements))) {
666         onFail("a->maxTexelBufferElements (Error: Value not equal)");
667     };
668     if (!((a->maxUniformBufferRange) == (b->maxUniformBufferRange))) {
669         onFail("a->maxUniformBufferRange (Error: Value not equal)");
670     };
671     if (!((a->maxStorageBufferRange) == (b->maxStorageBufferRange))) {
672         onFail("a->maxStorageBufferRange (Error: Value not equal)");
673     };
674     if (!((a->maxPushConstantsSize) == (b->maxPushConstantsSize))) {
675         onFail("a->maxPushConstantsSize (Error: Value not equal)");
676     };
677     if (!((a->maxMemoryAllocationCount) == (b->maxMemoryAllocationCount))) {
678         onFail("a->maxMemoryAllocationCount (Error: Value not equal)");
679     };
680     if (!((a->maxSamplerAllocationCount) == (b->maxSamplerAllocationCount))) {
681         onFail("a->maxSamplerAllocationCount (Error: Value not equal)");
682     };
683     if (!((a->bufferImageGranularity) == (b->bufferImageGranularity))) {
684         onFail("a->bufferImageGranularity (Error: Value not equal)");
685     };
686     if (!((a->sparseAddressSpaceSize) == (b->sparseAddressSpaceSize))) {
687         onFail("a->sparseAddressSpaceSize (Error: Value not equal)");
688     };
689     if (!((a->maxBoundDescriptorSets) == (b->maxBoundDescriptorSets))) {
690         onFail("a->maxBoundDescriptorSets (Error: Value not equal)");
691     };
692     if (!((a->maxPerStageDescriptorSamplers) == (b->maxPerStageDescriptorSamplers))) {
693         onFail("a->maxPerStageDescriptorSamplers (Error: Value not equal)");
694     };
695     if (!((a->maxPerStageDescriptorUniformBuffers) == (b->maxPerStageDescriptorUniformBuffers))) {
696         onFail("a->maxPerStageDescriptorUniformBuffers (Error: Value not equal)");
697     };
698     if (!((a->maxPerStageDescriptorStorageBuffers) == (b->maxPerStageDescriptorStorageBuffers))) {
699         onFail("a->maxPerStageDescriptorStorageBuffers (Error: Value not equal)");
700     };
701     if (!((a->maxPerStageDescriptorSampledImages) == (b->maxPerStageDescriptorSampledImages))) {
702         onFail("a->maxPerStageDescriptorSampledImages (Error: Value not equal)");
703     };
704     if (!((a->maxPerStageDescriptorStorageImages) == (b->maxPerStageDescriptorStorageImages))) {
705         onFail("a->maxPerStageDescriptorStorageImages (Error: Value not equal)");
706     };
707     if (!((a->maxPerStageDescriptorInputAttachments) ==
708           (b->maxPerStageDescriptorInputAttachments))) {
709         onFail("a->maxPerStageDescriptorInputAttachments (Error: Value not equal)");
710     };
711     if (!((a->maxPerStageResources) == (b->maxPerStageResources))) {
712         onFail("a->maxPerStageResources (Error: Value not equal)");
713     };
714     if (!((a->maxDescriptorSetSamplers) == (b->maxDescriptorSetSamplers))) {
715         onFail("a->maxDescriptorSetSamplers (Error: Value not equal)");
716     };
717     if (!((a->maxDescriptorSetUniformBuffers) == (b->maxDescriptorSetUniformBuffers))) {
718         onFail("a->maxDescriptorSetUniformBuffers (Error: Value not equal)");
719     };
720     if (!((a->maxDescriptorSetUniformBuffersDynamic) ==
721           (b->maxDescriptorSetUniformBuffersDynamic))) {
722         onFail("a->maxDescriptorSetUniformBuffersDynamic (Error: Value not equal)");
723     };
724     if (!((a->maxDescriptorSetStorageBuffers) == (b->maxDescriptorSetStorageBuffers))) {
725         onFail("a->maxDescriptorSetStorageBuffers (Error: Value not equal)");
726     };
727     if (!((a->maxDescriptorSetStorageBuffersDynamic) ==
728           (b->maxDescriptorSetStorageBuffersDynamic))) {
729         onFail("a->maxDescriptorSetStorageBuffersDynamic (Error: Value not equal)");
730     };
731     if (!((a->maxDescriptorSetSampledImages) == (b->maxDescriptorSetSampledImages))) {
732         onFail("a->maxDescriptorSetSampledImages (Error: Value not equal)");
733     };
734     if (!((a->maxDescriptorSetStorageImages) == (b->maxDescriptorSetStorageImages))) {
735         onFail("a->maxDescriptorSetStorageImages (Error: Value not equal)");
736     };
737     if (!((a->maxDescriptorSetInputAttachments) == (b->maxDescriptorSetInputAttachments))) {
738         onFail("a->maxDescriptorSetInputAttachments (Error: Value not equal)");
739     };
740     if (!((a->maxVertexInputAttributes) == (b->maxVertexInputAttributes))) {
741         onFail("a->maxVertexInputAttributes (Error: Value not equal)");
742     };
743     if (!((a->maxVertexInputBindings) == (b->maxVertexInputBindings))) {
744         onFail("a->maxVertexInputBindings (Error: Value not equal)");
745     };
746     if (!((a->maxVertexInputAttributeOffset) == (b->maxVertexInputAttributeOffset))) {
747         onFail("a->maxVertexInputAttributeOffset (Error: Value not equal)");
748     };
749     if (!((a->maxVertexInputBindingStride) == (b->maxVertexInputBindingStride))) {
750         onFail("a->maxVertexInputBindingStride (Error: Value not equal)");
751     };
752     if (!((a->maxVertexOutputComponents) == (b->maxVertexOutputComponents))) {
753         onFail("a->maxVertexOutputComponents (Error: Value not equal)");
754     };
755     if (!((a->maxTessellationGenerationLevel) == (b->maxTessellationGenerationLevel))) {
756         onFail("a->maxTessellationGenerationLevel (Error: Value not equal)");
757     };
758     if (!((a->maxTessellationPatchSize) == (b->maxTessellationPatchSize))) {
759         onFail("a->maxTessellationPatchSize (Error: Value not equal)");
760     };
761     if (!((a->maxTessellationControlPerVertexInputComponents) ==
762           (b->maxTessellationControlPerVertexInputComponents))) {
763         onFail("a->maxTessellationControlPerVertexInputComponents (Error: Value not equal)");
764     };
765     if (!((a->maxTessellationControlPerVertexOutputComponents) ==
766           (b->maxTessellationControlPerVertexOutputComponents))) {
767         onFail("a->maxTessellationControlPerVertexOutputComponents (Error: Value not equal)");
768     };
769     if (!((a->maxTessellationControlPerPatchOutputComponents) ==
770           (b->maxTessellationControlPerPatchOutputComponents))) {
771         onFail("a->maxTessellationControlPerPatchOutputComponents (Error: Value not equal)");
772     };
773     if (!((a->maxTessellationControlTotalOutputComponents) ==
774           (b->maxTessellationControlTotalOutputComponents))) {
775         onFail("a->maxTessellationControlTotalOutputComponents (Error: Value not equal)");
776     };
777     if (!((a->maxTessellationEvaluationInputComponents) ==
778           (b->maxTessellationEvaluationInputComponents))) {
779         onFail("a->maxTessellationEvaluationInputComponents (Error: Value not equal)");
780     };
781     if (!((a->maxTessellationEvaluationOutputComponents) ==
782           (b->maxTessellationEvaluationOutputComponents))) {
783         onFail("a->maxTessellationEvaluationOutputComponents (Error: Value not equal)");
784     };
785     if (!((a->maxGeometryShaderInvocations) == (b->maxGeometryShaderInvocations))) {
786         onFail("a->maxGeometryShaderInvocations (Error: Value not equal)");
787     };
788     if (!((a->maxGeometryInputComponents) == (b->maxGeometryInputComponents))) {
789         onFail("a->maxGeometryInputComponents (Error: Value not equal)");
790     };
791     if (!((a->maxGeometryOutputComponents) == (b->maxGeometryOutputComponents))) {
792         onFail("a->maxGeometryOutputComponents (Error: Value not equal)");
793     };
794     if (!((a->maxGeometryOutputVertices) == (b->maxGeometryOutputVertices))) {
795         onFail("a->maxGeometryOutputVertices (Error: Value not equal)");
796     };
797     if (!((a->maxGeometryTotalOutputComponents) == (b->maxGeometryTotalOutputComponents))) {
798         onFail("a->maxGeometryTotalOutputComponents (Error: Value not equal)");
799     };
800     if (!((a->maxFragmentInputComponents) == (b->maxFragmentInputComponents))) {
801         onFail("a->maxFragmentInputComponents (Error: Value not equal)");
802     };
803     if (!((a->maxFragmentOutputAttachments) == (b->maxFragmentOutputAttachments))) {
804         onFail("a->maxFragmentOutputAttachments (Error: Value not equal)");
805     };
806     if (!((a->maxFragmentDualSrcAttachments) == (b->maxFragmentDualSrcAttachments))) {
807         onFail("a->maxFragmentDualSrcAttachments (Error: Value not equal)");
808     };
809     if (!((a->maxFragmentCombinedOutputResources) == (b->maxFragmentCombinedOutputResources))) {
810         onFail("a->maxFragmentCombinedOutputResources (Error: Value not equal)");
811     };
812     if (!((a->maxComputeSharedMemorySize) == (b->maxComputeSharedMemorySize))) {
813         onFail("a->maxComputeSharedMemorySize (Error: Value not equal)");
814     };
815     if (!((memcmp(a->maxComputeWorkGroupCount, b->maxComputeWorkGroupCount, 3 * sizeof(uint32_t)) ==
816            0))) {
817         onFail("a->maxComputeWorkGroupCount (Error: Unequal static array)");
818     };
819     if (!((a->maxComputeWorkGroupInvocations) == (b->maxComputeWorkGroupInvocations))) {
820         onFail("a->maxComputeWorkGroupInvocations (Error: Value not equal)");
821     };
822     if (!((memcmp(a->maxComputeWorkGroupSize, b->maxComputeWorkGroupSize, 3 * sizeof(uint32_t)) ==
823            0))) {
824         onFail("a->maxComputeWorkGroupSize (Error: Unequal static array)");
825     };
826     if (!((a->subPixelPrecisionBits) == (b->subPixelPrecisionBits))) {
827         onFail("a->subPixelPrecisionBits (Error: Value not equal)");
828     };
829     if (!((a->subTexelPrecisionBits) == (b->subTexelPrecisionBits))) {
830         onFail("a->subTexelPrecisionBits (Error: Value not equal)");
831     };
832     if (!((a->mipmapPrecisionBits) == (b->mipmapPrecisionBits))) {
833         onFail("a->mipmapPrecisionBits (Error: Value not equal)");
834     };
835     if (!((a->maxDrawIndexedIndexValue) == (b->maxDrawIndexedIndexValue))) {
836         onFail("a->maxDrawIndexedIndexValue (Error: Value not equal)");
837     };
838     if (!((a->maxDrawIndirectCount) == (b->maxDrawIndirectCount))) {
839         onFail("a->maxDrawIndirectCount (Error: Value not equal)");
840     };
841     if (!((a->maxSamplerLodBias) == (b->maxSamplerLodBias))) {
842         onFail("a->maxSamplerLodBias (Error: Value not equal)");
843     };
844     if (!((a->maxSamplerAnisotropy) == (b->maxSamplerAnisotropy))) {
845         onFail("a->maxSamplerAnisotropy (Error: Value not equal)");
846     };
847     if (!((a->maxViewports) == (b->maxViewports))) {
848         onFail("a->maxViewports (Error: Value not equal)");
849     };
850     if (!((memcmp(a->maxViewportDimensions, b->maxViewportDimensions, 2 * sizeof(uint32_t)) ==
851            0))) {
852         onFail("a->maxViewportDimensions (Error: Unequal static array)");
853     };
854     if (!((memcmp(a->viewportBoundsRange, b->viewportBoundsRange, 2 * sizeof(float)) == 0))) {
855         onFail("a->viewportBoundsRange (Error: Unequal static array)");
856     };
857     if (!((a->viewportSubPixelBits) == (b->viewportSubPixelBits))) {
858         onFail("a->viewportSubPixelBits (Error: Value not equal)");
859     };
860     if (!((a->minMemoryMapAlignment) == (b->minMemoryMapAlignment))) {
861         onFail("a->minMemoryMapAlignment (Error: Value not equal)");
862     };
863     if (!((a->minTexelBufferOffsetAlignment) == (b->minTexelBufferOffsetAlignment))) {
864         onFail("a->minTexelBufferOffsetAlignment (Error: Value not equal)");
865     };
866     if (!((a->minUniformBufferOffsetAlignment) == (b->minUniformBufferOffsetAlignment))) {
867         onFail("a->minUniformBufferOffsetAlignment (Error: Value not equal)");
868     };
869     if (!((a->minStorageBufferOffsetAlignment) == (b->minStorageBufferOffsetAlignment))) {
870         onFail("a->minStorageBufferOffsetAlignment (Error: Value not equal)");
871     };
872     if (!((a->minTexelOffset) == (b->minTexelOffset))) {
873         onFail("a->minTexelOffset (Error: Value not equal)");
874     };
875     if (!((a->maxTexelOffset) == (b->maxTexelOffset))) {
876         onFail("a->maxTexelOffset (Error: Value not equal)");
877     };
878     if (!((a->minTexelGatherOffset) == (b->minTexelGatherOffset))) {
879         onFail("a->minTexelGatherOffset (Error: Value not equal)");
880     };
881     if (!((a->maxTexelGatherOffset) == (b->maxTexelGatherOffset))) {
882         onFail("a->maxTexelGatherOffset (Error: Value not equal)");
883     };
884     if (!((a->minInterpolationOffset) == (b->minInterpolationOffset))) {
885         onFail("a->minInterpolationOffset (Error: Value not equal)");
886     };
887     if (!((a->maxInterpolationOffset) == (b->maxInterpolationOffset))) {
888         onFail("a->maxInterpolationOffset (Error: Value not equal)");
889     };
890     if (!((a->subPixelInterpolationOffsetBits) == (b->subPixelInterpolationOffsetBits))) {
891         onFail("a->subPixelInterpolationOffsetBits (Error: Value not equal)");
892     };
893     if (!((a->maxFramebufferWidth) == (b->maxFramebufferWidth))) {
894         onFail("a->maxFramebufferWidth (Error: Value not equal)");
895     };
896     if (!((a->maxFramebufferHeight) == (b->maxFramebufferHeight))) {
897         onFail("a->maxFramebufferHeight (Error: Value not equal)");
898     };
899     if (!((a->maxFramebufferLayers) == (b->maxFramebufferLayers))) {
900         onFail("a->maxFramebufferLayers (Error: Value not equal)");
901     };
902     if (!((a->framebufferColorSampleCounts) == (b->framebufferColorSampleCounts))) {
903         onFail("a->framebufferColorSampleCounts (Error: Value not equal)");
904     };
905     if (!((a->framebufferDepthSampleCounts) == (b->framebufferDepthSampleCounts))) {
906         onFail("a->framebufferDepthSampleCounts (Error: Value not equal)");
907     };
908     if (!((a->framebufferStencilSampleCounts) == (b->framebufferStencilSampleCounts))) {
909         onFail("a->framebufferStencilSampleCounts (Error: Value not equal)");
910     };
911     if (!((a->framebufferNoAttachmentsSampleCounts) == (b->framebufferNoAttachmentsSampleCounts))) {
912         onFail("a->framebufferNoAttachmentsSampleCounts (Error: Value not equal)");
913     };
914     if (!((a->maxColorAttachments) == (b->maxColorAttachments))) {
915         onFail("a->maxColorAttachments (Error: Value not equal)");
916     };
917     if (!((a->sampledImageColorSampleCounts) == (b->sampledImageColorSampleCounts))) {
918         onFail("a->sampledImageColorSampleCounts (Error: Value not equal)");
919     };
920     if (!((a->sampledImageIntegerSampleCounts) == (b->sampledImageIntegerSampleCounts))) {
921         onFail("a->sampledImageIntegerSampleCounts (Error: Value not equal)");
922     };
923     if (!((a->sampledImageDepthSampleCounts) == (b->sampledImageDepthSampleCounts))) {
924         onFail("a->sampledImageDepthSampleCounts (Error: Value not equal)");
925     };
926     if (!((a->sampledImageStencilSampleCounts) == (b->sampledImageStencilSampleCounts))) {
927         onFail("a->sampledImageStencilSampleCounts (Error: Value not equal)");
928     };
929     if (!((a->storageImageSampleCounts) == (b->storageImageSampleCounts))) {
930         onFail("a->storageImageSampleCounts (Error: Value not equal)");
931     };
932     if (!((a->maxSampleMaskWords) == (b->maxSampleMaskWords))) {
933         onFail("a->maxSampleMaskWords (Error: Value not equal)");
934     };
935     if (!((a->timestampComputeAndGraphics) == (b->timestampComputeAndGraphics))) {
936         onFail("a->timestampComputeAndGraphics (Error: Value not equal)");
937     };
938     if (!((a->timestampPeriod) == (b->timestampPeriod))) {
939         onFail("a->timestampPeriod (Error: Value not equal)");
940     };
941     if (!((a->maxClipDistances) == (b->maxClipDistances))) {
942         onFail("a->maxClipDistances (Error: Value not equal)");
943     };
944     if (!((a->maxCullDistances) == (b->maxCullDistances))) {
945         onFail("a->maxCullDistances (Error: Value not equal)");
946     };
947     if (!((a->maxCombinedClipAndCullDistances) == (b->maxCombinedClipAndCullDistances))) {
948         onFail("a->maxCombinedClipAndCullDistances (Error: Value not equal)");
949     };
950     if (!((a->discreteQueuePriorities) == (b->discreteQueuePriorities))) {
951         onFail("a->discreteQueuePriorities (Error: Value not equal)");
952     };
953     if (!((memcmp(a->pointSizeRange, b->pointSizeRange, 2 * sizeof(float)) == 0))) {
954         onFail("a->pointSizeRange (Error: Unequal static array)");
955     };
956     if (!((memcmp(a->lineWidthRange, b->lineWidthRange, 2 * sizeof(float)) == 0))) {
957         onFail("a->lineWidthRange (Error: Unequal static array)");
958     };
959     if (!((a->pointSizeGranularity) == (b->pointSizeGranularity))) {
960         onFail("a->pointSizeGranularity (Error: Value not equal)");
961     };
962     if (!((a->lineWidthGranularity) == (b->lineWidthGranularity))) {
963         onFail("a->lineWidthGranularity (Error: Value not equal)");
964     };
965     if (!((a->strictLines) == (b->strictLines))) {
966         onFail("a->strictLines (Error: Value not equal)");
967     };
968     if (!((a->standardSampleLocations) == (b->standardSampleLocations))) {
969         onFail("a->standardSampleLocations (Error: Value not equal)");
970     };
971     if (!((a->optimalBufferCopyOffsetAlignment) == (b->optimalBufferCopyOffsetAlignment))) {
972         onFail("a->optimalBufferCopyOffsetAlignment (Error: Value not equal)");
973     };
974     if (!((a->optimalBufferCopyRowPitchAlignment) == (b->optimalBufferCopyRowPitchAlignment))) {
975         onFail("a->optimalBufferCopyRowPitchAlignment (Error: Value not equal)");
976     };
977     if (!((a->nonCoherentAtomSize) == (b->nonCoherentAtomSize))) {
978         onFail("a->nonCoherentAtomSize (Error: Value not equal)");
979     };
980 }
981 
checkEqual_VkPhysicalDeviceMemoryProperties(const VkPhysicalDeviceMemoryProperties * a,const VkPhysicalDeviceMemoryProperties * b,OnFailCompareFunc onFail)982 void checkEqual_VkPhysicalDeviceMemoryProperties(const VkPhysicalDeviceMemoryProperties* a,
983                                                  const VkPhysicalDeviceMemoryProperties* b,
984                                                  OnFailCompareFunc onFail) {
985     if (!((a->memoryTypeCount) == (b->memoryTypeCount))) {
986         onFail("a->memoryTypeCount (Error: Value not equal)");
987     };
988     if (!((VK_MAX_MEMORY_TYPES) == (VK_MAX_MEMORY_TYPES))) {
989         onFail("a->memoryTypes (Error: Lengths not equal)");
990     };
991     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
992         checkEqual_VkMemoryType(a->memoryTypes + i, b->memoryTypes + i, onFail);
993     }
994     if (!((a->memoryHeapCount) == (b->memoryHeapCount))) {
995         onFail("a->memoryHeapCount (Error: Value not equal)");
996     };
997     if (!((VK_MAX_MEMORY_HEAPS) == (VK_MAX_MEMORY_HEAPS))) {
998         onFail("a->memoryHeaps (Error: Lengths not equal)");
999     };
1000     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
1001         checkEqual_VkMemoryHeap(a->memoryHeaps + i, b->memoryHeaps + i, onFail);
1002     }
1003 }
1004 
checkEqual_VkPhysicalDeviceSparseProperties(const VkPhysicalDeviceSparseProperties * a,const VkPhysicalDeviceSparseProperties * b,OnFailCompareFunc onFail)1005 void checkEqual_VkPhysicalDeviceSparseProperties(const VkPhysicalDeviceSparseProperties* a,
1006                                                  const VkPhysicalDeviceSparseProperties* b,
1007                                                  OnFailCompareFunc onFail) {
1008     if (!((a->residencyStandard2DBlockShape) == (b->residencyStandard2DBlockShape))) {
1009         onFail("a->residencyStandard2DBlockShape (Error: Value not equal)");
1010     };
1011     if (!((a->residencyStandard2DMultisampleBlockShape) ==
1012           (b->residencyStandard2DMultisampleBlockShape))) {
1013         onFail("a->residencyStandard2DMultisampleBlockShape (Error: Value not equal)");
1014     };
1015     if (!((a->residencyStandard3DBlockShape) == (b->residencyStandard3DBlockShape))) {
1016         onFail("a->residencyStandard3DBlockShape (Error: Value not equal)");
1017     };
1018     if (!((a->residencyAlignedMipSize) == (b->residencyAlignedMipSize))) {
1019         onFail("a->residencyAlignedMipSize (Error: Value not equal)");
1020     };
1021     if (!((a->residencyNonResidentStrict) == (b->residencyNonResidentStrict))) {
1022         onFail("a->residencyNonResidentStrict (Error: Value not equal)");
1023     };
1024 }
1025 
checkEqual_VkPhysicalDeviceProperties(const VkPhysicalDeviceProperties * a,const VkPhysicalDeviceProperties * b,OnFailCompareFunc onFail)1026 void checkEqual_VkPhysicalDeviceProperties(const VkPhysicalDeviceProperties* a,
1027                                            const VkPhysicalDeviceProperties* b,
1028                                            OnFailCompareFunc onFail) {
1029     if (!((a->apiVersion) == (b->apiVersion))) {
1030         onFail("a->apiVersion (Error: Value not equal)");
1031     };
1032     if (!((a->driverVersion) == (b->driverVersion))) {
1033         onFail("a->driverVersion (Error: Value not equal)");
1034     };
1035     if (!((a->vendorID) == (b->vendorID))) {
1036         onFail("a->vendorID (Error: Value not equal)");
1037     };
1038     if (!((a->deviceID) == (b->deviceID))) {
1039         onFail("a->deviceID (Error: Value not equal)");
1040     };
1041     if (!((a->deviceType) == (b->deviceType))) {
1042         onFail("a->deviceType (Error: Value not equal)");
1043     };
1044     if (!((memcmp(a->deviceName, b->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char)) ==
1045            0))) {
1046         onFail("a->deviceName (Error: Unequal static array)");
1047     };
1048     if (!((memcmp(a->pipelineCacheUUID, b->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t)) ==
1049            0))) {
1050         onFail("a->pipelineCacheUUID (Error: Unequal static array)");
1051     };
1052     checkEqual_VkPhysicalDeviceLimits(&a->limits, &b->limits, onFail);
1053     checkEqual_VkPhysicalDeviceSparseProperties(&a->sparseProperties, &b->sparseProperties, onFail);
1054 }
1055 
checkEqual_VkQueueFamilyProperties(const VkQueueFamilyProperties * a,const VkQueueFamilyProperties * b,OnFailCompareFunc onFail)1056 void checkEqual_VkQueueFamilyProperties(const VkQueueFamilyProperties* a,
1057                                         const VkQueueFamilyProperties* b,
1058                                         OnFailCompareFunc onFail) {
1059     if (!((a->queueFlags) == (b->queueFlags))) {
1060         onFail("a->queueFlags (Error: Value not equal)");
1061     };
1062     if (!((a->queueCount) == (b->queueCount))) {
1063         onFail("a->queueCount (Error: Value not equal)");
1064     };
1065     if (!((a->timestampValidBits) == (b->timestampValidBits))) {
1066         onFail("a->timestampValidBits (Error: Value not equal)");
1067     };
1068     checkEqual_VkExtent3D(&a->minImageTransferGranularity, &b->minImageTransferGranularity, onFail);
1069 }
1070 
checkEqual_VkDeviceQueueCreateInfo(const VkDeviceQueueCreateInfo * a,const VkDeviceQueueCreateInfo * b,OnFailCompareFunc onFail)1071 void checkEqual_VkDeviceQueueCreateInfo(const VkDeviceQueueCreateInfo* a,
1072                                         const VkDeviceQueueCreateInfo* b,
1073                                         OnFailCompareFunc onFail) {
1074     if (!((a->sType) == (b->sType))) {
1075         onFail("a->sType (Error: Value not equal)");
1076     };
1077     if (a->pNext) {
1078         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1079     }
1080     if (!((a->flags) == (b->flags))) {
1081         onFail("a->flags (Error: Value not equal)");
1082     };
1083     if (!((a->queueFamilyIndex) == (b->queueFamilyIndex))) {
1084         onFail("a->queueFamilyIndex (Error: Value not equal)");
1085     };
1086     if (!((a->queueCount) == (b->queueCount))) {
1087         onFail("a->queueCount (Error: Value not equal)");
1088     };
1089     if (!((a->queueCount) == (b->queueCount))) {
1090         onFail("a->pQueuePriorities (Error: Lengths not equal)");
1091     };
1092     if (!((memcmp(a->pQueuePriorities, b->pQueuePriorities, a->queueCount * sizeof(const float)) ==
1093            0))) {
1094         onFail("a->pQueuePriorities (Error: Unequal dyn array)");
1095     };
1096 }
1097 
checkEqual_VkDeviceCreateInfo(const VkDeviceCreateInfo * a,const VkDeviceCreateInfo * b,OnFailCompareFunc onFail)1098 void checkEqual_VkDeviceCreateInfo(const VkDeviceCreateInfo* a, const VkDeviceCreateInfo* b,
1099                                    OnFailCompareFunc onFail) {
1100     if (!((a->sType) == (b->sType))) {
1101         onFail("a->sType (Error: Value not equal)");
1102     };
1103     if (a->pNext) {
1104         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1105     }
1106     if (!((a->flags) == (b->flags))) {
1107         onFail("a->flags (Error: Value not equal)");
1108     };
1109     if (!((a->queueCreateInfoCount) == (b->queueCreateInfoCount))) {
1110         onFail("a->queueCreateInfoCount (Error: Value not equal)");
1111     };
1112     if ((a->pQueueCreateInfos) && (b->pQueueCreateInfos)) {
1113         if (!((a->queueCreateInfoCount) == (b->queueCreateInfoCount))) {
1114             onFail("a->pQueueCreateInfos (Error: Lengths not equal)");
1115         };
1116         if ((a->queueCreateInfoCount) == (b->queueCreateInfoCount)) {
1117             if (a) {
1118                 for (uint32_t i = 0; i < (uint32_t)a->queueCreateInfoCount; ++i) {
1119                     checkEqual_VkDeviceQueueCreateInfo(a->pQueueCreateInfos + i,
1120                                                        b->pQueueCreateInfos + i, onFail);
1121                 }
1122             }
1123         }
1124     }
1125     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
1126         onFail("a->enabledLayerCount (Error: Value not equal)");
1127     };
1128     if (!((!(a->ppEnabledLayerNames) && !(b->ppEnabledLayerNames)) ||
1129           ((a->ppEnabledLayerNames) && (b->ppEnabledLayerNames)))) {
1130         onFail("a->ppEnabledLayerNames (Error: Mismatch in string array pointer nullness)");
1131     };
1132     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
1133         onFail("a->ppEnabledLayerNames (Error: Lengths not equal in string array)");
1134     };
1135     if (!((a->enabledLayerCount) == (b->enabledLayerCount))) {
1136         onFail("a->ppEnabledLayerNames (Error: Lengths not equal in string array)");
1137     };
1138     if ((a->enabledLayerCount) == (b->enabledLayerCount) && (a->ppEnabledLayerNames) &&
1139         (b->ppEnabledLayerNames)) {
1140         if (a) {
1141             for (uint32_t i = 0; i < (uint32_t)a->enabledLayerCount; ++i) {
1142                 if (!((strcmp(*(a->ppEnabledLayerNames + i), *(b->ppEnabledLayerNames + i)) ==
1143                        0))) {
1144                     onFail("a->ppEnabledLayerNames (Error: Unequal string in string array)");
1145                 };
1146             }
1147         }
1148     }
1149     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
1150         onFail("a->enabledExtensionCount (Error: Value not equal)");
1151     };
1152     if (!((!(a->ppEnabledExtensionNames) && !(b->ppEnabledExtensionNames)) ||
1153           ((a->ppEnabledExtensionNames) && (b->ppEnabledExtensionNames)))) {
1154         onFail("a->ppEnabledExtensionNames (Error: Mismatch in string array pointer nullness)");
1155     };
1156     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
1157         onFail("a->ppEnabledExtensionNames (Error: Lengths not equal in string array)");
1158     };
1159     if (!((a->enabledExtensionCount) == (b->enabledExtensionCount))) {
1160         onFail("a->ppEnabledExtensionNames (Error: Lengths not equal in string array)");
1161     };
1162     if ((a->enabledExtensionCount) == (b->enabledExtensionCount) && (a->ppEnabledExtensionNames) &&
1163         (b->ppEnabledExtensionNames)) {
1164         if (a) {
1165             for (uint32_t i = 0; i < (uint32_t)a->enabledExtensionCount; ++i) {
1166                 if (!((strcmp(*(a->ppEnabledExtensionNames + i),
1167                               *(b->ppEnabledExtensionNames + i)) == 0))) {
1168                     onFail("a->ppEnabledExtensionNames (Error: Unequal string in string array)");
1169                 };
1170             }
1171         }
1172     }
1173     if (!((!(a->pEnabledFeatures) && !(b->pEnabledFeatures)) ||
1174           ((a->pEnabledFeatures) && (b->pEnabledFeatures)))) {
1175         onFail("a->pEnabledFeatures (Error: Mismatch in optional field)");
1176     };
1177     if (a->pEnabledFeatures && b->pEnabledFeatures) {
1178         if ((a->pEnabledFeatures) && (b->pEnabledFeatures)) {
1179             checkEqual_VkPhysicalDeviceFeatures(a->pEnabledFeatures, b->pEnabledFeatures, onFail);
1180         }
1181     }
1182 }
1183 
checkEqual_VkExtensionProperties(const VkExtensionProperties * a,const VkExtensionProperties * b,OnFailCompareFunc onFail)1184 void checkEqual_VkExtensionProperties(const VkExtensionProperties* a,
1185                                       const VkExtensionProperties* b, OnFailCompareFunc onFail) {
1186     if (!((memcmp(a->extensionName, b->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)) ==
1187            0))) {
1188         onFail("a->extensionName (Error: Unequal static array)");
1189     };
1190     if (!((a->specVersion) == (b->specVersion))) {
1191         onFail("a->specVersion (Error: Value not equal)");
1192     };
1193 }
1194 
checkEqual_VkLayerProperties(const VkLayerProperties * a,const VkLayerProperties * b,OnFailCompareFunc onFail)1195 void checkEqual_VkLayerProperties(const VkLayerProperties* a, const VkLayerProperties* b,
1196                                   OnFailCompareFunc onFail) {
1197     if (!((memcmp(a->layerName, b->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)) == 0))) {
1198         onFail("a->layerName (Error: Unequal static array)");
1199     };
1200     if (!((a->specVersion) == (b->specVersion))) {
1201         onFail("a->specVersion (Error: Value not equal)");
1202     };
1203     if (!((a->implementationVersion) == (b->implementationVersion))) {
1204         onFail("a->implementationVersion (Error: Value not equal)");
1205     };
1206     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
1207         onFail("a->description (Error: Unequal static array)");
1208     };
1209 }
1210 
checkEqual_VkSubmitInfo(const VkSubmitInfo * a,const VkSubmitInfo * b,OnFailCompareFunc onFail)1211 void checkEqual_VkSubmitInfo(const VkSubmitInfo* a, const VkSubmitInfo* b,
1212                              OnFailCompareFunc onFail) {
1213     if (!((a->sType) == (b->sType))) {
1214         onFail("a->sType (Error: Value not equal)");
1215     };
1216     if (a->pNext) {
1217         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1218     }
1219     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
1220         onFail("a->waitSemaphoreCount (Error: Value not equal)");
1221     };
1222     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
1223         onFail("a->pWaitSemaphores (Error: Lengths not equal)");
1224     };
1225     if (!((memcmp(a->pWaitSemaphores, b->pWaitSemaphores,
1226                   a->waitSemaphoreCount * sizeof(const VkSemaphore)) == 0))) {
1227         onFail("a->pWaitSemaphores (Error: Unequal dyn array)");
1228     };
1229     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
1230         onFail("a->pWaitDstStageMask (Error: Lengths not equal)");
1231     };
1232     if (!((memcmp(a->pWaitDstStageMask, b->pWaitDstStageMask,
1233                   a->waitSemaphoreCount * sizeof(const VkPipelineStageFlags)) == 0))) {
1234         onFail("a->pWaitDstStageMask (Error: Unequal dyn array)");
1235     };
1236     if (!((a->commandBufferCount) == (b->commandBufferCount))) {
1237         onFail("a->commandBufferCount (Error: Value not equal)");
1238     };
1239     if (!((a->commandBufferCount) == (b->commandBufferCount))) {
1240         onFail("a->pCommandBuffers (Error: Lengths not equal)");
1241     };
1242     if (!((memcmp(a->pCommandBuffers, b->pCommandBuffers,
1243                   a->commandBufferCount * sizeof(const VkCommandBuffer)) == 0))) {
1244         onFail("a->pCommandBuffers (Error: Unequal dyn array)");
1245     };
1246     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
1247         onFail("a->signalSemaphoreCount (Error: Value not equal)");
1248     };
1249     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
1250         onFail("a->pSignalSemaphores (Error: Lengths not equal)");
1251     };
1252     if (!((memcmp(a->pSignalSemaphores, b->pSignalSemaphores,
1253                   a->signalSemaphoreCount * sizeof(const VkSemaphore)) == 0))) {
1254         onFail("a->pSignalSemaphores (Error: Unequal dyn array)");
1255     };
1256 }
1257 
checkEqual_VkMappedMemoryRange(const VkMappedMemoryRange * a,const VkMappedMemoryRange * b,OnFailCompareFunc onFail)1258 void checkEqual_VkMappedMemoryRange(const VkMappedMemoryRange* a, const VkMappedMemoryRange* b,
1259                                     OnFailCompareFunc onFail) {
1260     if (!((a->sType) == (b->sType))) {
1261         onFail("a->sType (Error: Value not equal)");
1262     };
1263     if (a->pNext) {
1264         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1265     }
1266     if (!((a->memory) == (b->memory))) {
1267         onFail("a->memory (Error: Value not equal)");
1268     };
1269     if (!((a->offset) == (b->offset))) {
1270         onFail("a->offset (Error: Value not equal)");
1271     };
1272     if (!((a->size) == (b->size))) {
1273         onFail("a->size (Error: Value not equal)");
1274     };
1275 }
1276 
checkEqual_VkMemoryAllocateInfo(const VkMemoryAllocateInfo * a,const VkMemoryAllocateInfo * b,OnFailCompareFunc onFail)1277 void checkEqual_VkMemoryAllocateInfo(const VkMemoryAllocateInfo* a, const VkMemoryAllocateInfo* b,
1278                                      OnFailCompareFunc onFail) {
1279     if (!((a->sType) == (b->sType))) {
1280         onFail("a->sType (Error: Value not equal)");
1281     };
1282     if (a->pNext) {
1283         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1284     }
1285     if (!((a->allocationSize) == (b->allocationSize))) {
1286         onFail("a->allocationSize (Error: Value not equal)");
1287     };
1288     if (!((a->memoryTypeIndex) == (b->memoryTypeIndex))) {
1289         onFail("a->memoryTypeIndex (Error: Value not equal)");
1290     };
1291 }
1292 
checkEqual_VkMemoryRequirements(const VkMemoryRequirements * a,const VkMemoryRequirements * b,OnFailCompareFunc onFail)1293 void checkEqual_VkMemoryRequirements(const VkMemoryRequirements* a, const VkMemoryRequirements* b,
1294                                      OnFailCompareFunc onFail) {
1295     if (!((a->size) == (b->size))) {
1296         onFail("a->size (Error: Value not equal)");
1297     };
1298     if (!((a->alignment) == (b->alignment))) {
1299         onFail("a->alignment (Error: Value not equal)");
1300     };
1301     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
1302         onFail("a->memoryTypeBits (Error: Value not equal)");
1303     };
1304 }
1305 
checkEqual_VkSparseMemoryBind(const VkSparseMemoryBind * a,const VkSparseMemoryBind * b,OnFailCompareFunc onFail)1306 void checkEqual_VkSparseMemoryBind(const VkSparseMemoryBind* a, const VkSparseMemoryBind* b,
1307                                    OnFailCompareFunc onFail) {
1308     if (!((a->resourceOffset) == (b->resourceOffset))) {
1309         onFail("a->resourceOffset (Error: Value not equal)");
1310     };
1311     if (!((a->size) == (b->size))) {
1312         onFail("a->size (Error: Value not equal)");
1313     };
1314     if (!((a->memory) == (b->memory))) {
1315         onFail("a->memory (Error: Value not equal)");
1316     };
1317     if (!((a->memoryOffset) == (b->memoryOffset))) {
1318         onFail("a->memoryOffset (Error: Value not equal)");
1319     };
1320     if (!((a->flags) == (b->flags))) {
1321         onFail("a->flags (Error: Value not equal)");
1322     };
1323 }
1324 
checkEqual_VkSparseBufferMemoryBindInfo(const VkSparseBufferMemoryBindInfo * a,const VkSparseBufferMemoryBindInfo * b,OnFailCompareFunc onFail)1325 void checkEqual_VkSparseBufferMemoryBindInfo(const VkSparseBufferMemoryBindInfo* a,
1326                                              const VkSparseBufferMemoryBindInfo* b,
1327                                              OnFailCompareFunc onFail) {
1328     if (!((a->buffer) == (b->buffer))) {
1329         onFail("a->buffer (Error: Value not equal)");
1330     };
1331     if (!((a->bindCount) == (b->bindCount))) {
1332         onFail("a->bindCount (Error: Value not equal)");
1333     };
1334     if ((a->pBinds) && (b->pBinds)) {
1335         if (!((a->bindCount) == (b->bindCount))) {
1336             onFail("a->pBinds (Error: Lengths not equal)");
1337         };
1338         if ((a->bindCount) == (b->bindCount)) {
1339             if (a) {
1340                 for (uint32_t i = 0; i < (uint32_t)a->bindCount; ++i) {
1341                     checkEqual_VkSparseMemoryBind(a->pBinds + i, b->pBinds + i, onFail);
1342                 }
1343             }
1344         }
1345     }
1346 }
1347 
checkEqual_VkSparseImageOpaqueMemoryBindInfo(const VkSparseImageOpaqueMemoryBindInfo * a,const VkSparseImageOpaqueMemoryBindInfo * b,OnFailCompareFunc onFail)1348 void checkEqual_VkSparseImageOpaqueMemoryBindInfo(const VkSparseImageOpaqueMemoryBindInfo* a,
1349                                                   const VkSparseImageOpaqueMemoryBindInfo* b,
1350                                                   OnFailCompareFunc onFail) {
1351     if (!((a->image) == (b->image))) {
1352         onFail("a->image (Error: Value not equal)");
1353     };
1354     if (!((a->bindCount) == (b->bindCount))) {
1355         onFail("a->bindCount (Error: Value not equal)");
1356     };
1357     if ((a->pBinds) && (b->pBinds)) {
1358         if (!((a->bindCount) == (b->bindCount))) {
1359             onFail("a->pBinds (Error: Lengths not equal)");
1360         };
1361         if ((a->bindCount) == (b->bindCount)) {
1362             if (a) {
1363                 for (uint32_t i = 0; i < (uint32_t)a->bindCount; ++i) {
1364                     checkEqual_VkSparseMemoryBind(a->pBinds + i, b->pBinds + i, onFail);
1365                 }
1366             }
1367         }
1368     }
1369 }
1370 
checkEqual_VkImageSubresource(const VkImageSubresource * a,const VkImageSubresource * b,OnFailCompareFunc onFail)1371 void checkEqual_VkImageSubresource(const VkImageSubresource* a, const VkImageSubresource* b,
1372                                    OnFailCompareFunc onFail) {
1373     if (!((a->aspectMask) == (b->aspectMask))) {
1374         onFail("a->aspectMask (Error: Value not equal)");
1375     };
1376     if (!((a->mipLevel) == (b->mipLevel))) {
1377         onFail("a->mipLevel (Error: Value not equal)");
1378     };
1379     if (!((a->arrayLayer) == (b->arrayLayer))) {
1380         onFail("a->arrayLayer (Error: Value not equal)");
1381     };
1382 }
1383 
checkEqual_VkSparseImageMemoryBind(const VkSparseImageMemoryBind * a,const VkSparseImageMemoryBind * b,OnFailCompareFunc onFail)1384 void checkEqual_VkSparseImageMemoryBind(const VkSparseImageMemoryBind* a,
1385                                         const VkSparseImageMemoryBind* b,
1386                                         OnFailCompareFunc onFail) {
1387     checkEqual_VkImageSubresource(&a->subresource, &b->subresource, onFail);
1388     checkEqual_VkOffset3D(&a->offset, &b->offset, onFail);
1389     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
1390     if (!((a->memory) == (b->memory))) {
1391         onFail("a->memory (Error: Value not equal)");
1392     };
1393     if (!((a->memoryOffset) == (b->memoryOffset))) {
1394         onFail("a->memoryOffset (Error: Value not equal)");
1395     };
1396     if (!((a->flags) == (b->flags))) {
1397         onFail("a->flags (Error: Value not equal)");
1398     };
1399 }
1400 
checkEqual_VkSparseImageMemoryBindInfo(const VkSparseImageMemoryBindInfo * a,const VkSparseImageMemoryBindInfo * b,OnFailCompareFunc onFail)1401 void checkEqual_VkSparseImageMemoryBindInfo(const VkSparseImageMemoryBindInfo* a,
1402                                             const VkSparseImageMemoryBindInfo* b,
1403                                             OnFailCompareFunc onFail) {
1404     if (!((a->image) == (b->image))) {
1405         onFail("a->image (Error: Value not equal)");
1406     };
1407     if (!((a->bindCount) == (b->bindCount))) {
1408         onFail("a->bindCount (Error: Value not equal)");
1409     };
1410     if ((a->pBinds) && (b->pBinds)) {
1411         if (!((a->bindCount) == (b->bindCount))) {
1412             onFail("a->pBinds (Error: Lengths not equal)");
1413         };
1414         if ((a->bindCount) == (b->bindCount)) {
1415             if (a) {
1416                 for (uint32_t i = 0; i < (uint32_t)a->bindCount; ++i) {
1417                     checkEqual_VkSparseImageMemoryBind(a->pBinds + i, b->pBinds + i, onFail);
1418                 }
1419             }
1420         }
1421     }
1422 }
1423 
checkEqual_VkBindSparseInfo(const VkBindSparseInfo * a,const VkBindSparseInfo * b,OnFailCompareFunc onFail)1424 void checkEqual_VkBindSparseInfo(const VkBindSparseInfo* a, const VkBindSparseInfo* b,
1425                                  OnFailCompareFunc onFail) {
1426     if (!((a->sType) == (b->sType))) {
1427         onFail("a->sType (Error: Value not equal)");
1428     };
1429     if (a->pNext) {
1430         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1431     }
1432     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
1433         onFail("a->waitSemaphoreCount (Error: Value not equal)");
1434     };
1435     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
1436         onFail("a->pWaitSemaphores (Error: Lengths not equal)");
1437     };
1438     if (!((memcmp(a->pWaitSemaphores, b->pWaitSemaphores,
1439                   a->waitSemaphoreCount * sizeof(const VkSemaphore)) == 0))) {
1440         onFail("a->pWaitSemaphores (Error: Unequal dyn array)");
1441     };
1442     if (!((a->bufferBindCount) == (b->bufferBindCount))) {
1443         onFail("a->bufferBindCount (Error: Value not equal)");
1444     };
1445     if ((a->pBufferBinds) && (b->pBufferBinds)) {
1446         if (!((a->bufferBindCount) == (b->bufferBindCount))) {
1447             onFail("a->pBufferBinds (Error: Lengths not equal)");
1448         };
1449         if ((a->bufferBindCount) == (b->bufferBindCount)) {
1450             if (a) {
1451                 for (uint32_t i = 0; i < (uint32_t)a->bufferBindCount; ++i) {
1452                     checkEqual_VkSparseBufferMemoryBindInfo(a->pBufferBinds + i,
1453                                                             b->pBufferBinds + i, onFail);
1454                 }
1455             }
1456         }
1457     }
1458     if (!((a->imageOpaqueBindCount) == (b->imageOpaqueBindCount))) {
1459         onFail("a->imageOpaqueBindCount (Error: Value not equal)");
1460     };
1461     if ((a->pImageOpaqueBinds) && (b->pImageOpaqueBinds)) {
1462         if (!((a->imageOpaqueBindCount) == (b->imageOpaqueBindCount))) {
1463             onFail("a->pImageOpaqueBinds (Error: Lengths not equal)");
1464         };
1465         if ((a->imageOpaqueBindCount) == (b->imageOpaqueBindCount)) {
1466             if (a) {
1467                 for (uint32_t i = 0; i < (uint32_t)a->imageOpaqueBindCount; ++i) {
1468                     checkEqual_VkSparseImageOpaqueMemoryBindInfo(a->pImageOpaqueBinds + i,
1469                                                                  b->pImageOpaqueBinds + i, onFail);
1470                 }
1471             }
1472         }
1473     }
1474     if (!((a->imageBindCount) == (b->imageBindCount))) {
1475         onFail("a->imageBindCount (Error: Value not equal)");
1476     };
1477     if ((a->pImageBinds) && (b->pImageBinds)) {
1478         if (!((a->imageBindCount) == (b->imageBindCount))) {
1479             onFail("a->pImageBinds (Error: Lengths not equal)");
1480         };
1481         if ((a->imageBindCount) == (b->imageBindCount)) {
1482             if (a) {
1483                 for (uint32_t i = 0; i < (uint32_t)a->imageBindCount; ++i) {
1484                     checkEqual_VkSparseImageMemoryBindInfo(a->pImageBinds + i, b->pImageBinds + i,
1485                                                            onFail);
1486                 }
1487             }
1488         }
1489     }
1490     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
1491         onFail("a->signalSemaphoreCount (Error: Value not equal)");
1492     };
1493     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
1494         onFail("a->pSignalSemaphores (Error: Lengths not equal)");
1495     };
1496     if (!((memcmp(a->pSignalSemaphores, b->pSignalSemaphores,
1497                   a->signalSemaphoreCount * sizeof(const VkSemaphore)) == 0))) {
1498         onFail("a->pSignalSemaphores (Error: Unequal dyn array)");
1499     };
1500 }
1501 
checkEqual_VkSparseImageFormatProperties(const VkSparseImageFormatProperties * a,const VkSparseImageFormatProperties * b,OnFailCompareFunc onFail)1502 void checkEqual_VkSparseImageFormatProperties(const VkSparseImageFormatProperties* a,
1503                                               const VkSparseImageFormatProperties* b,
1504                                               OnFailCompareFunc onFail) {
1505     if (!((a->aspectMask) == (b->aspectMask))) {
1506         onFail("a->aspectMask (Error: Value not equal)");
1507     };
1508     checkEqual_VkExtent3D(&a->imageGranularity, &b->imageGranularity, onFail);
1509     if (!((a->flags) == (b->flags))) {
1510         onFail("a->flags (Error: Value not equal)");
1511     };
1512 }
1513 
checkEqual_VkSparseImageMemoryRequirements(const VkSparseImageMemoryRequirements * a,const VkSparseImageMemoryRequirements * b,OnFailCompareFunc onFail)1514 void checkEqual_VkSparseImageMemoryRequirements(const VkSparseImageMemoryRequirements* a,
1515                                                 const VkSparseImageMemoryRequirements* b,
1516                                                 OnFailCompareFunc onFail) {
1517     checkEqual_VkSparseImageFormatProperties(&a->formatProperties, &b->formatProperties, onFail);
1518     if (!((a->imageMipTailFirstLod) == (b->imageMipTailFirstLod))) {
1519         onFail("a->imageMipTailFirstLod (Error: Value not equal)");
1520     };
1521     if (!((a->imageMipTailSize) == (b->imageMipTailSize))) {
1522         onFail("a->imageMipTailSize (Error: Value not equal)");
1523     };
1524     if (!((a->imageMipTailOffset) == (b->imageMipTailOffset))) {
1525         onFail("a->imageMipTailOffset (Error: Value not equal)");
1526     };
1527     if (!((a->imageMipTailStride) == (b->imageMipTailStride))) {
1528         onFail("a->imageMipTailStride (Error: Value not equal)");
1529     };
1530 }
1531 
checkEqual_VkFenceCreateInfo(const VkFenceCreateInfo * a,const VkFenceCreateInfo * b,OnFailCompareFunc onFail)1532 void checkEqual_VkFenceCreateInfo(const VkFenceCreateInfo* a, const VkFenceCreateInfo* b,
1533                                   OnFailCompareFunc onFail) {
1534     if (!((a->sType) == (b->sType))) {
1535         onFail("a->sType (Error: Value not equal)");
1536     };
1537     if (a->pNext) {
1538         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1539     }
1540     if (!((a->flags) == (b->flags))) {
1541         onFail("a->flags (Error: Value not equal)");
1542     };
1543 }
1544 
checkEqual_VkSemaphoreCreateInfo(const VkSemaphoreCreateInfo * a,const VkSemaphoreCreateInfo * b,OnFailCompareFunc onFail)1545 void checkEqual_VkSemaphoreCreateInfo(const VkSemaphoreCreateInfo* a,
1546                                       const VkSemaphoreCreateInfo* b, OnFailCompareFunc onFail) {
1547     if (!((a->sType) == (b->sType))) {
1548         onFail("a->sType (Error: Value not equal)");
1549     };
1550     if (a->pNext) {
1551         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1552     }
1553     if (!((a->flags) == (b->flags))) {
1554         onFail("a->flags (Error: Value not equal)");
1555     };
1556 }
1557 
checkEqual_VkEventCreateInfo(const VkEventCreateInfo * a,const VkEventCreateInfo * b,OnFailCompareFunc onFail)1558 void checkEqual_VkEventCreateInfo(const VkEventCreateInfo* a, const VkEventCreateInfo* b,
1559                                   OnFailCompareFunc onFail) {
1560     if (!((a->sType) == (b->sType))) {
1561         onFail("a->sType (Error: Value not equal)");
1562     };
1563     if (a->pNext) {
1564         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1565     }
1566     if (!((a->flags) == (b->flags))) {
1567         onFail("a->flags (Error: Value not equal)");
1568     };
1569 }
1570 
checkEqual_VkQueryPoolCreateInfo(const VkQueryPoolCreateInfo * a,const VkQueryPoolCreateInfo * b,OnFailCompareFunc onFail)1571 void checkEqual_VkQueryPoolCreateInfo(const VkQueryPoolCreateInfo* a,
1572                                       const VkQueryPoolCreateInfo* b, OnFailCompareFunc onFail) {
1573     if (!((a->sType) == (b->sType))) {
1574         onFail("a->sType (Error: Value not equal)");
1575     };
1576     if (a->pNext) {
1577         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1578     }
1579     if (!((a->flags) == (b->flags))) {
1580         onFail("a->flags (Error: Value not equal)");
1581     };
1582     if (!((a->queryType) == (b->queryType))) {
1583         onFail("a->queryType (Error: Value not equal)");
1584     };
1585     if (!((a->queryCount) == (b->queryCount))) {
1586         onFail("a->queryCount (Error: Value not equal)");
1587     };
1588     if (!((a->pipelineStatistics) == (b->pipelineStatistics))) {
1589         onFail("a->pipelineStatistics (Error: Value not equal)");
1590     };
1591 }
1592 
checkEqual_VkBufferCreateInfo(const VkBufferCreateInfo * a,const VkBufferCreateInfo * b,OnFailCompareFunc onFail)1593 void checkEqual_VkBufferCreateInfo(const VkBufferCreateInfo* a, const VkBufferCreateInfo* b,
1594                                    OnFailCompareFunc onFail) {
1595     if (!((a->sType) == (b->sType))) {
1596         onFail("a->sType (Error: Value not equal)");
1597     };
1598     if (a->pNext) {
1599         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1600     }
1601     if (!((a->flags) == (b->flags))) {
1602         onFail("a->flags (Error: Value not equal)");
1603     };
1604     if (!((a->size) == (b->size))) {
1605         onFail("a->size (Error: Value not equal)");
1606     };
1607     if (!((a->usage) == (b->usage))) {
1608         onFail("a->usage (Error: Value not equal)");
1609     };
1610     if (!((a->sharingMode) == (b->sharingMode))) {
1611         onFail("a->sharingMode (Error: Value not equal)");
1612     };
1613     if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
1614         onFail("a->queueFamilyIndexCount (Error: Value not equal)");
1615     };
1616     if (!((!(a->pQueueFamilyIndices) && !(b->pQueueFamilyIndices)) ||
1617           ((a->pQueueFamilyIndices) && (b->pQueueFamilyIndices)))) {
1618         onFail("a->pQueueFamilyIndices (Error: Mismatch in optional field)");
1619     };
1620     if (a->pQueueFamilyIndices && b->pQueueFamilyIndices) {
1621         if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
1622             onFail("a->pQueueFamilyIndices (Error: Lengths not equal)");
1623         };
1624         if (!((memcmp(a->pQueueFamilyIndices, b->pQueueFamilyIndices,
1625                       a->queueFamilyIndexCount * sizeof(const uint32_t)) == 0))) {
1626             onFail("a->pQueueFamilyIndices (Error: Unequal dyn array)");
1627         };
1628     }
1629 }
1630 
checkEqual_VkBufferViewCreateInfo(const VkBufferViewCreateInfo * a,const VkBufferViewCreateInfo * b,OnFailCompareFunc onFail)1631 void checkEqual_VkBufferViewCreateInfo(const VkBufferViewCreateInfo* a,
1632                                        const VkBufferViewCreateInfo* b, OnFailCompareFunc onFail) {
1633     if (!((a->sType) == (b->sType))) {
1634         onFail("a->sType (Error: Value not equal)");
1635     };
1636     if (a->pNext) {
1637         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1638     }
1639     if (!((a->flags) == (b->flags))) {
1640         onFail("a->flags (Error: Value not equal)");
1641     };
1642     if (!((a->buffer) == (b->buffer))) {
1643         onFail("a->buffer (Error: Value not equal)");
1644     };
1645     if (!((a->format) == (b->format))) {
1646         onFail("a->format (Error: Value not equal)");
1647     };
1648     if (!((a->offset) == (b->offset))) {
1649         onFail("a->offset (Error: Value not equal)");
1650     };
1651     if (!((a->range) == (b->range))) {
1652         onFail("a->range (Error: Value not equal)");
1653     };
1654 }
1655 
checkEqual_VkImageCreateInfo(const VkImageCreateInfo * a,const VkImageCreateInfo * b,OnFailCompareFunc onFail)1656 void checkEqual_VkImageCreateInfo(const VkImageCreateInfo* a, const VkImageCreateInfo* b,
1657                                   OnFailCompareFunc onFail) {
1658     if (!((a->sType) == (b->sType))) {
1659         onFail("a->sType (Error: Value not equal)");
1660     };
1661     if (a->pNext) {
1662         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1663     }
1664     if (!((a->flags) == (b->flags))) {
1665         onFail("a->flags (Error: Value not equal)");
1666     };
1667     if (!((a->imageType) == (b->imageType))) {
1668         onFail("a->imageType (Error: Value not equal)");
1669     };
1670     if (!((a->format) == (b->format))) {
1671         onFail("a->format (Error: Value not equal)");
1672     };
1673     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
1674     if (!((a->mipLevels) == (b->mipLevels))) {
1675         onFail("a->mipLevels (Error: Value not equal)");
1676     };
1677     if (!((a->arrayLayers) == (b->arrayLayers))) {
1678         onFail("a->arrayLayers (Error: Value not equal)");
1679     };
1680     if (!((a->samples) == (b->samples))) {
1681         onFail("a->samples (Error: Value not equal)");
1682     };
1683     if (!((a->tiling) == (b->tiling))) {
1684         onFail("a->tiling (Error: Value not equal)");
1685     };
1686     if (!((a->usage) == (b->usage))) {
1687         onFail("a->usage (Error: Value not equal)");
1688     };
1689     if (!((a->sharingMode) == (b->sharingMode))) {
1690         onFail("a->sharingMode (Error: Value not equal)");
1691     };
1692     if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
1693         onFail("a->queueFamilyIndexCount (Error: Value not equal)");
1694     };
1695     if (!((!(a->pQueueFamilyIndices) && !(b->pQueueFamilyIndices)) ||
1696           ((a->pQueueFamilyIndices) && (b->pQueueFamilyIndices)))) {
1697         onFail("a->pQueueFamilyIndices (Error: Mismatch in optional field)");
1698     };
1699     if (a->pQueueFamilyIndices && b->pQueueFamilyIndices) {
1700         if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
1701             onFail("a->pQueueFamilyIndices (Error: Lengths not equal)");
1702         };
1703         if (!((memcmp(a->pQueueFamilyIndices, b->pQueueFamilyIndices,
1704                       a->queueFamilyIndexCount * sizeof(const uint32_t)) == 0))) {
1705             onFail("a->pQueueFamilyIndices (Error: Unequal dyn array)");
1706         };
1707     }
1708     if (!((a->initialLayout) == (b->initialLayout))) {
1709         onFail("a->initialLayout (Error: Value not equal)");
1710     };
1711 }
1712 
checkEqual_VkSubresourceLayout(const VkSubresourceLayout * a,const VkSubresourceLayout * b,OnFailCompareFunc onFail)1713 void checkEqual_VkSubresourceLayout(const VkSubresourceLayout* a, const VkSubresourceLayout* b,
1714                                     OnFailCompareFunc onFail) {
1715     if (!((a->offset) == (b->offset))) {
1716         onFail("a->offset (Error: Value not equal)");
1717     };
1718     if (!((a->size) == (b->size))) {
1719         onFail("a->size (Error: Value not equal)");
1720     };
1721     if (!((a->rowPitch) == (b->rowPitch))) {
1722         onFail("a->rowPitch (Error: Value not equal)");
1723     };
1724     if (!((a->arrayPitch) == (b->arrayPitch))) {
1725         onFail("a->arrayPitch (Error: Value not equal)");
1726     };
1727     if (!((a->depthPitch) == (b->depthPitch))) {
1728         onFail("a->depthPitch (Error: Value not equal)");
1729     };
1730 }
1731 
checkEqual_VkComponentMapping(const VkComponentMapping * a,const VkComponentMapping * b,OnFailCompareFunc onFail)1732 void checkEqual_VkComponentMapping(const VkComponentMapping* a, const VkComponentMapping* b,
1733                                    OnFailCompareFunc onFail) {
1734     if (!((a->r) == (b->r))) {
1735         onFail("a->r (Error: Value not equal)");
1736     };
1737     if (!((a->g) == (b->g))) {
1738         onFail("a->g (Error: Value not equal)");
1739     };
1740     if (!((a->b) == (b->b))) {
1741         onFail("a->b (Error: Value not equal)");
1742     };
1743     if (!((a->a) == (b->a))) {
1744         onFail("a->a (Error: Value not equal)");
1745     };
1746 }
1747 
checkEqual_VkImageViewCreateInfo(const VkImageViewCreateInfo * a,const VkImageViewCreateInfo * b,OnFailCompareFunc onFail)1748 void checkEqual_VkImageViewCreateInfo(const VkImageViewCreateInfo* a,
1749                                       const VkImageViewCreateInfo* b, OnFailCompareFunc onFail) {
1750     if (!((a->sType) == (b->sType))) {
1751         onFail("a->sType (Error: Value not equal)");
1752     };
1753     if (a->pNext) {
1754         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1755     }
1756     if (!((a->flags) == (b->flags))) {
1757         onFail("a->flags (Error: Value not equal)");
1758     };
1759     if (!((a->image) == (b->image))) {
1760         onFail("a->image (Error: Value not equal)");
1761     };
1762     if (!((a->viewType) == (b->viewType))) {
1763         onFail("a->viewType (Error: Value not equal)");
1764     };
1765     if (!((a->format) == (b->format))) {
1766         onFail("a->format (Error: Value not equal)");
1767     };
1768     checkEqual_VkComponentMapping(&a->components, &b->components, onFail);
1769     checkEqual_VkImageSubresourceRange(&a->subresourceRange, &b->subresourceRange, onFail);
1770 }
1771 
checkEqual_VkShaderModuleCreateInfo(const VkShaderModuleCreateInfo * a,const VkShaderModuleCreateInfo * b,OnFailCompareFunc onFail)1772 void checkEqual_VkShaderModuleCreateInfo(const VkShaderModuleCreateInfo* a,
1773                                          const VkShaderModuleCreateInfo* b,
1774                                          OnFailCompareFunc onFail) {
1775     if (!((a->sType) == (b->sType))) {
1776         onFail("a->sType (Error: Value not equal)");
1777     };
1778     if (a->pNext) {
1779         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1780     }
1781     if (!((a->flags) == (b->flags))) {
1782         onFail("a->flags (Error: Value not equal)");
1783     };
1784     if (!((a->codeSize) == (b->codeSize))) {
1785         onFail("a->codeSize (Error: Value not equal)");
1786     };
1787     if (!(((a->codeSize / 4)) == ((b->codeSize / 4)))) {
1788         onFail("a->pCode (Error: Lengths not equal)");
1789     };
1790     if (!((memcmp(a->pCode, b->pCode, (a->codeSize / 4) * sizeof(const uint32_t)) == 0))) {
1791         onFail("a->pCode (Error: Unequal dyn array)");
1792     };
1793 }
1794 
checkEqual_VkPipelineCacheCreateInfo(const VkPipelineCacheCreateInfo * a,const VkPipelineCacheCreateInfo * b,OnFailCompareFunc onFail)1795 void checkEqual_VkPipelineCacheCreateInfo(const VkPipelineCacheCreateInfo* a,
1796                                           const VkPipelineCacheCreateInfo* b,
1797                                           OnFailCompareFunc onFail) {
1798     if (!((a->sType) == (b->sType))) {
1799         onFail("a->sType (Error: Value not equal)");
1800     };
1801     if (a->pNext) {
1802         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1803     }
1804     if (!((a->flags) == (b->flags))) {
1805         onFail("a->flags (Error: Value not equal)");
1806     };
1807     if (!((a->initialDataSize) == (b->initialDataSize))) {
1808         onFail("a->initialDataSize (Error: Value not equal)");
1809     };
1810 }
1811 
checkEqual_VkSpecializationMapEntry(const VkSpecializationMapEntry * a,const VkSpecializationMapEntry * b,OnFailCompareFunc onFail)1812 void checkEqual_VkSpecializationMapEntry(const VkSpecializationMapEntry* a,
1813                                          const VkSpecializationMapEntry* b,
1814                                          OnFailCompareFunc onFail) {
1815     if (!((a->constantID) == (b->constantID))) {
1816         onFail("a->constantID (Error: Value not equal)");
1817     };
1818     if (!((a->offset) == (b->offset))) {
1819         onFail("a->offset (Error: Value not equal)");
1820     };
1821     if (!((a->size) == (b->size))) {
1822         onFail("a->size (Error: Value not equal)");
1823     };
1824 }
1825 
checkEqual_VkSpecializationInfo(const VkSpecializationInfo * a,const VkSpecializationInfo * b,OnFailCompareFunc onFail)1826 void checkEqual_VkSpecializationInfo(const VkSpecializationInfo* a, const VkSpecializationInfo* b,
1827                                      OnFailCompareFunc onFail) {
1828     if (!((a->mapEntryCount) == (b->mapEntryCount))) {
1829         onFail("a->mapEntryCount (Error: Value not equal)");
1830     };
1831     if ((a->pMapEntries) && (b->pMapEntries)) {
1832         if (!((a->mapEntryCount) == (b->mapEntryCount))) {
1833             onFail("a->pMapEntries (Error: Lengths not equal)");
1834         };
1835         if ((a->mapEntryCount) == (b->mapEntryCount)) {
1836             if (a) {
1837                 for (uint32_t i = 0; i < (uint32_t)a->mapEntryCount; ++i) {
1838                     checkEqual_VkSpecializationMapEntry(a->pMapEntries + i, b->pMapEntries + i,
1839                                                         onFail);
1840                 }
1841             }
1842         }
1843     }
1844     if (!((a->dataSize) == (b->dataSize))) {
1845         onFail("a->dataSize (Error: Value not equal)");
1846     };
1847 }
1848 
checkEqual_VkPipelineShaderStageCreateInfo(const VkPipelineShaderStageCreateInfo * a,const VkPipelineShaderStageCreateInfo * b,OnFailCompareFunc onFail)1849 void checkEqual_VkPipelineShaderStageCreateInfo(const VkPipelineShaderStageCreateInfo* a,
1850                                                 const VkPipelineShaderStageCreateInfo* b,
1851                                                 OnFailCompareFunc onFail) {
1852     if (!((a->sType) == (b->sType))) {
1853         onFail("a->sType (Error: Value not equal)");
1854     };
1855     if (a->pNext) {
1856         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1857     }
1858     if (!((a->flags) == (b->flags))) {
1859         onFail("a->flags (Error: Value not equal)");
1860     };
1861     if (!((a->stage) == (b->stage))) {
1862         onFail("a->stage (Error: Value not equal)");
1863     };
1864     if (!((a->module) == (b->module))) {
1865         onFail("a->module (Error: Value not equal)");
1866     };
1867     if (!((!(a->pName) && !(b->pName)) || ((a->pName) && (b->pName)))) {
1868         onFail("a->pName (Error: Mismatch in string pointer nullness)");
1869     };
1870     if ((a->pName) && (b->pName)) {
1871         if (!((strcmp(a->pName, b->pName) == 0))) {
1872             onFail("a->pName (Error: Unequal strings)");
1873         };
1874     }
1875     if (!((!(a->pSpecializationInfo) && !(b->pSpecializationInfo)) ||
1876           ((a->pSpecializationInfo) && (b->pSpecializationInfo)))) {
1877         onFail("a->pSpecializationInfo (Error: Mismatch in optional field)");
1878     };
1879     if (a->pSpecializationInfo && b->pSpecializationInfo) {
1880         if ((a->pSpecializationInfo) && (b->pSpecializationInfo)) {
1881             checkEqual_VkSpecializationInfo(a->pSpecializationInfo, b->pSpecializationInfo, onFail);
1882         }
1883     }
1884 }
1885 
checkEqual_VkComputePipelineCreateInfo(const VkComputePipelineCreateInfo * a,const VkComputePipelineCreateInfo * b,OnFailCompareFunc onFail)1886 void checkEqual_VkComputePipelineCreateInfo(const VkComputePipelineCreateInfo* a,
1887                                             const VkComputePipelineCreateInfo* b,
1888                                             OnFailCompareFunc onFail) {
1889     if (!((a->sType) == (b->sType))) {
1890         onFail("a->sType (Error: Value not equal)");
1891     };
1892     if (a->pNext) {
1893         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1894     }
1895     if (!((a->flags) == (b->flags))) {
1896         onFail("a->flags (Error: Value not equal)");
1897     };
1898     checkEqual_VkPipelineShaderStageCreateInfo(&a->stage, &b->stage, onFail);
1899     if (!((a->layout) == (b->layout))) {
1900         onFail("a->layout (Error: Value not equal)");
1901     };
1902     if (!((a->basePipelineHandle) == (b->basePipelineHandle))) {
1903         onFail("a->basePipelineHandle (Error: Value not equal)");
1904     };
1905     if (!((a->basePipelineIndex) == (b->basePipelineIndex))) {
1906         onFail("a->basePipelineIndex (Error: Value not equal)");
1907     };
1908 }
1909 
checkEqual_VkVertexInputBindingDescription(const VkVertexInputBindingDescription * a,const VkVertexInputBindingDescription * b,OnFailCompareFunc onFail)1910 void checkEqual_VkVertexInputBindingDescription(const VkVertexInputBindingDescription* a,
1911                                                 const VkVertexInputBindingDescription* b,
1912                                                 OnFailCompareFunc onFail) {
1913     if (!((a->binding) == (b->binding))) {
1914         onFail("a->binding (Error: Value not equal)");
1915     };
1916     if (!((a->stride) == (b->stride))) {
1917         onFail("a->stride (Error: Value not equal)");
1918     };
1919     if (!((a->inputRate) == (b->inputRate))) {
1920         onFail("a->inputRate (Error: Value not equal)");
1921     };
1922 }
1923 
checkEqual_VkVertexInputAttributeDescription(const VkVertexInputAttributeDescription * a,const VkVertexInputAttributeDescription * b,OnFailCompareFunc onFail)1924 void checkEqual_VkVertexInputAttributeDescription(const VkVertexInputAttributeDescription* a,
1925                                                   const VkVertexInputAttributeDescription* b,
1926                                                   OnFailCompareFunc onFail) {
1927     if (!((a->location) == (b->location))) {
1928         onFail("a->location (Error: Value not equal)");
1929     };
1930     if (!((a->binding) == (b->binding))) {
1931         onFail("a->binding (Error: Value not equal)");
1932     };
1933     if (!((a->format) == (b->format))) {
1934         onFail("a->format (Error: Value not equal)");
1935     };
1936     if (!((a->offset) == (b->offset))) {
1937         onFail("a->offset (Error: Value not equal)");
1938     };
1939 }
1940 
checkEqual_VkPipelineVertexInputStateCreateInfo(const VkPipelineVertexInputStateCreateInfo * a,const VkPipelineVertexInputStateCreateInfo * b,OnFailCompareFunc onFail)1941 void checkEqual_VkPipelineVertexInputStateCreateInfo(const VkPipelineVertexInputStateCreateInfo* a,
1942                                                      const VkPipelineVertexInputStateCreateInfo* b,
1943                                                      OnFailCompareFunc onFail) {
1944     if (!((a->sType) == (b->sType))) {
1945         onFail("a->sType (Error: Value not equal)");
1946     };
1947     if (a->pNext) {
1948         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1949     }
1950     if (!((a->flags) == (b->flags))) {
1951         onFail("a->flags (Error: Value not equal)");
1952     };
1953     if (!((a->vertexBindingDescriptionCount) == (b->vertexBindingDescriptionCount))) {
1954         onFail("a->vertexBindingDescriptionCount (Error: Value not equal)");
1955     };
1956     if ((a->pVertexBindingDescriptions) && (b->pVertexBindingDescriptions)) {
1957         if (!((a->vertexBindingDescriptionCount) == (b->vertexBindingDescriptionCount))) {
1958             onFail("a->pVertexBindingDescriptions (Error: Lengths not equal)");
1959         };
1960         if ((a->vertexBindingDescriptionCount) == (b->vertexBindingDescriptionCount)) {
1961             if (a) {
1962                 for (uint32_t i = 0; i < (uint32_t)a->vertexBindingDescriptionCount; ++i) {
1963                     checkEqual_VkVertexInputBindingDescription(a->pVertexBindingDescriptions + i,
1964                                                                b->pVertexBindingDescriptions + i,
1965                                                                onFail);
1966                 }
1967             }
1968         }
1969     }
1970     if (!((a->vertexAttributeDescriptionCount) == (b->vertexAttributeDescriptionCount))) {
1971         onFail("a->vertexAttributeDescriptionCount (Error: Value not equal)");
1972     };
1973     if ((a->pVertexAttributeDescriptions) && (b->pVertexAttributeDescriptions)) {
1974         if (!((a->vertexAttributeDescriptionCount) == (b->vertexAttributeDescriptionCount))) {
1975             onFail("a->pVertexAttributeDescriptions (Error: Lengths not equal)");
1976         };
1977         if ((a->vertexAttributeDescriptionCount) == (b->vertexAttributeDescriptionCount)) {
1978             if (a) {
1979                 for (uint32_t i = 0; i < (uint32_t)a->vertexAttributeDescriptionCount; ++i) {
1980                     checkEqual_VkVertexInputAttributeDescription(
1981                         a->pVertexAttributeDescriptions + i, b->pVertexAttributeDescriptions + i,
1982                         onFail);
1983                 }
1984             }
1985         }
1986     }
1987 }
1988 
checkEqual_VkPipelineInputAssemblyStateCreateInfo(const VkPipelineInputAssemblyStateCreateInfo * a,const VkPipelineInputAssemblyStateCreateInfo * b,OnFailCompareFunc onFail)1989 void checkEqual_VkPipelineInputAssemblyStateCreateInfo(
1990     const VkPipelineInputAssemblyStateCreateInfo* a,
1991     const VkPipelineInputAssemblyStateCreateInfo* b, OnFailCompareFunc onFail) {
1992     if (!((a->sType) == (b->sType))) {
1993         onFail("a->sType (Error: Value not equal)");
1994     };
1995     if (a->pNext) {
1996         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
1997     }
1998     if (!((a->flags) == (b->flags))) {
1999         onFail("a->flags (Error: Value not equal)");
2000     };
2001     if (!((a->topology) == (b->topology))) {
2002         onFail("a->topology (Error: Value not equal)");
2003     };
2004     if (!((a->primitiveRestartEnable) == (b->primitiveRestartEnable))) {
2005         onFail("a->primitiveRestartEnable (Error: Value not equal)");
2006     };
2007 }
2008 
checkEqual_VkPipelineTessellationStateCreateInfo(const VkPipelineTessellationStateCreateInfo * a,const VkPipelineTessellationStateCreateInfo * b,OnFailCompareFunc onFail)2009 void checkEqual_VkPipelineTessellationStateCreateInfo(
2010     const VkPipelineTessellationStateCreateInfo* a, const VkPipelineTessellationStateCreateInfo* b,
2011     OnFailCompareFunc onFail) {
2012     if (!((a->sType) == (b->sType))) {
2013         onFail("a->sType (Error: Value not equal)");
2014     };
2015     if (a->pNext) {
2016         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2017     }
2018     if (!((a->flags) == (b->flags))) {
2019         onFail("a->flags (Error: Value not equal)");
2020     };
2021     if (!((a->patchControlPoints) == (b->patchControlPoints))) {
2022         onFail("a->patchControlPoints (Error: Value not equal)");
2023     };
2024 }
2025 
checkEqual_VkViewport(const VkViewport * a,const VkViewport * b,OnFailCompareFunc onFail)2026 void checkEqual_VkViewport(const VkViewport* a, const VkViewport* b, OnFailCompareFunc onFail) {
2027     if (!((a->x) == (b->x))) {
2028         onFail("a->x (Error: Value not equal)");
2029     };
2030     if (!((a->y) == (b->y))) {
2031         onFail("a->y (Error: Value not equal)");
2032     };
2033     if (!((a->width) == (b->width))) {
2034         onFail("a->width (Error: Value not equal)");
2035     };
2036     if (!((a->height) == (b->height))) {
2037         onFail("a->height (Error: Value not equal)");
2038     };
2039     if (!((a->minDepth) == (b->minDepth))) {
2040         onFail("a->minDepth (Error: Value not equal)");
2041     };
2042     if (!((a->maxDepth) == (b->maxDepth))) {
2043         onFail("a->maxDepth (Error: Value not equal)");
2044     };
2045 }
2046 
checkEqual_VkPipelineViewportStateCreateInfo(const VkPipelineViewportStateCreateInfo * a,const VkPipelineViewportStateCreateInfo * b,OnFailCompareFunc onFail)2047 void checkEqual_VkPipelineViewportStateCreateInfo(const VkPipelineViewportStateCreateInfo* a,
2048                                                   const VkPipelineViewportStateCreateInfo* b,
2049                                                   OnFailCompareFunc onFail) {
2050     if (!((a->sType) == (b->sType))) {
2051         onFail("a->sType (Error: Value not equal)");
2052     };
2053     if (a->pNext) {
2054         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2055     }
2056     if (!((a->flags) == (b->flags))) {
2057         onFail("a->flags (Error: Value not equal)");
2058     };
2059     if (!((a->viewportCount) == (b->viewportCount))) {
2060         onFail("a->viewportCount (Error: Value not equal)");
2061     };
2062     if (!((!(a->pViewports) && !(b->pViewports)) || ((a->pViewports) && (b->pViewports)))) {
2063         onFail("a->pViewports (Error: Mismatch in optional field)");
2064     };
2065     if (a->pViewports && b->pViewports) {
2066         if ((a->pViewports) && (b->pViewports)) {
2067             if (!((a->viewportCount) == (b->viewportCount))) {
2068                 onFail("a->pViewports (Error: Lengths not equal)");
2069             };
2070             if ((a->viewportCount) == (b->viewportCount)) {
2071                 if (a) {
2072                     for (uint32_t i = 0; i < (uint32_t)a->viewportCount; ++i) {
2073                         checkEqual_VkViewport(a->pViewports + i, b->pViewports + i, onFail);
2074                     }
2075                 }
2076             }
2077         }
2078     }
2079     if (!((a->scissorCount) == (b->scissorCount))) {
2080         onFail("a->scissorCount (Error: Value not equal)");
2081     };
2082     if (!((!(a->pScissors) && !(b->pScissors)) || ((a->pScissors) && (b->pScissors)))) {
2083         onFail("a->pScissors (Error: Mismatch in optional field)");
2084     };
2085     if (a->pScissors && b->pScissors) {
2086         if ((a->pScissors) && (b->pScissors)) {
2087             if (!((a->scissorCount) == (b->scissorCount))) {
2088                 onFail("a->pScissors (Error: Lengths not equal)");
2089             };
2090             if ((a->scissorCount) == (b->scissorCount)) {
2091                 if (a) {
2092                     for (uint32_t i = 0; i < (uint32_t)a->scissorCount; ++i) {
2093                         checkEqual_VkRect2D(a->pScissors + i, b->pScissors + i, onFail);
2094                     }
2095                 }
2096             }
2097         }
2098     }
2099 }
2100 
checkEqual_VkPipelineRasterizationStateCreateInfo(const VkPipelineRasterizationStateCreateInfo * a,const VkPipelineRasterizationStateCreateInfo * b,OnFailCompareFunc onFail)2101 void checkEqual_VkPipelineRasterizationStateCreateInfo(
2102     const VkPipelineRasterizationStateCreateInfo* a,
2103     const VkPipelineRasterizationStateCreateInfo* b, OnFailCompareFunc onFail) {
2104     if (!((a->sType) == (b->sType))) {
2105         onFail("a->sType (Error: Value not equal)");
2106     };
2107     if (a->pNext) {
2108         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2109     }
2110     if (!((a->flags) == (b->flags))) {
2111         onFail("a->flags (Error: Value not equal)");
2112     };
2113     if (!((a->depthClampEnable) == (b->depthClampEnable))) {
2114         onFail("a->depthClampEnable (Error: Value not equal)");
2115     };
2116     if (!((a->rasterizerDiscardEnable) == (b->rasterizerDiscardEnable))) {
2117         onFail("a->rasterizerDiscardEnable (Error: Value not equal)");
2118     };
2119     if (!((a->polygonMode) == (b->polygonMode))) {
2120         onFail("a->polygonMode (Error: Value not equal)");
2121     };
2122     if (!((a->cullMode) == (b->cullMode))) {
2123         onFail("a->cullMode (Error: Value not equal)");
2124     };
2125     if (!((a->frontFace) == (b->frontFace))) {
2126         onFail("a->frontFace (Error: Value not equal)");
2127     };
2128     if (!((a->depthBiasEnable) == (b->depthBiasEnable))) {
2129         onFail("a->depthBiasEnable (Error: Value not equal)");
2130     };
2131     if (!((a->depthBiasConstantFactor) == (b->depthBiasConstantFactor))) {
2132         onFail("a->depthBiasConstantFactor (Error: Value not equal)");
2133     };
2134     if (!((a->depthBiasClamp) == (b->depthBiasClamp))) {
2135         onFail("a->depthBiasClamp (Error: Value not equal)");
2136     };
2137     if (!((a->depthBiasSlopeFactor) == (b->depthBiasSlopeFactor))) {
2138         onFail("a->depthBiasSlopeFactor (Error: Value not equal)");
2139     };
2140     if (!((a->lineWidth) == (b->lineWidth))) {
2141         onFail("a->lineWidth (Error: Value not equal)");
2142     };
2143 }
2144 
checkEqual_VkPipelineMultisampleStateCreateInfo(const VkPipelineMultisampleStateCreateInfo * a,const VkPipelineMultisampleStateCreateInfo * b,OnFailCompareFunc onFail)2145 void checkEqual_VkPipelineMultisampleStateCreateInfo(const VkPipelineMultisampleStateCreateInfo* a,
2146                                                      const VkPipelineMultisampleStateCreateInfo* b,
2147                                                      OnFailCompareFunc onFail) {
2148     if (!((a->sType) == (b->sType))) {
2149         onFail("a->sType (Error: Value not equal)");
2150     };
2151     if (a->pNext) {
2152         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2153     }
2154     if (!((a->flags) == (b->flags))) {
2155         onFail("a->flags (Error: Value not equal)");
2156     };
2157     if (!((a->rasterizationSamples) == (b->rasterizationSamples))) {
2158         onFail("a->rasterizationSamples (Error: Value not equal)");
2159     };
2160     if (!((a->sampleShadingEnable) == (b->sampleShadingEnable))) {
2161         onFail("a->sampleShadingEnable (Error: Value not equal)");
2162     };
2163     if (!((a->minSampleShading) == (b->minSampleShading))) {
2164         onFail("a->minSampleShading (Error: Value not equal)");
2165     };
2166     if (!((!(a->pSampleMask) && !(b->pSampleMask)) || ((a->pSampleMask) && (b->pSampleMask)))) {
2167         onFail("a->pSampleMask (Error: Mismatch in optional field)");
2168     };
2169     if (a->pSampleMask && b->pSampleMask) {
2170         if (!(((((a->rasterizationSamples) + 31) / 32)) ==
2171               ((((b->rasterizationSamples) + 31) / 32)))) {
2172             onFail("a->pSampleMask (Error: Lengths not equal)");
2173         };
2174         if (!((memcmp(a->pSampleMask, b->pSampleMask,
2175                       (((a->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask)) ==
2176                0))) {
2177             onFail("a->pSampleMask (Error: Unequal dyn array)");
2178         };
2179     }
2180     if (!((a->alphaToCoverageEnable) == (b->alphaToCoverageEnable))) {
2181         onFail("a->alphaToCoverageEnable (Error: Value not equal)");
2182     };
2183     if (!((a->alphaToOneEnable) == (b->alphaToOneEnable))) {
2184         onFail("a->alphaToOneEnable (Error: Value not equal)");
2185     };
2186 }
2187 
checkEqual_VkStencilOpState(const VkStencilOpState * a,const VkStencilOpState * b,OnFailCompareFunc onFail)2188 void checkEqual_VkStencilOpState(const VkStencilOpState* a, const VkStencilOpState* b,
2189                                  OnFailCompareFunc onFail) {
2190     if (!((a->failOp) == (b->failOp))) {
2191         onFail("a->failOp (Error: Value not equal)");
2192     };
2193     if (!((a->passOp) == (b->passOp))) {
2194         onFail("a->passOp (Error: Value not equal)");
2195     };
2196     if (!((a->depthFailOp) == (b->depthFailOp))) {
2197         onFail("a->depthFailOp (Error: Value not equal)");
2198     };
2199     if (!((a->compareOp) == (b->compareOp))) {
2200         onFail("a->compareOp (Error: Value not equal)");
2201     };
2202     if (!((a->compareMask) == (b->compareMask))) {
2203         onFail("a->compareMask (Error: Value not equal)");
2204     };
2205     if (!((a->writeMask) == (b->writeMask))) {
2206         onFail("a->writeMask (Error: Value not equal)");
2207     };
2208     if (!((a->reference) == (b->reference))) {
2209         onFail("a->reference (Error: Value not equal)");
2210     };
2211 }
2212 
checkEqual_VkPipelineDepthStencilStateCreateInfo(const VkPipelineDepthStencilStateCreateInfo * a,const VkPipelineDepthStencilStateCreateInfo * b,OnFailCompareFunc onFail)2213 void checkEqual_VkPipelineDepthStencilStateCreateInfo(
2214     const VkPipelineDepthStencilStateCreateInfo* a, const VkPipelineDepthStencilStateCreateInfo* b,
2215     OnFailCompareFunc onFail) {
2216     if (!((a->sType) == (b->sType))) {
2217         onFail("a->sType (Error: Value not equal)");
2218     };
2219     if (a->pNext) {
2220         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2221     }
2222     if (!((a->flags) == (b->flags))) {
2223         onFail("a->flags (Error: Value not equal)");
2224     };
2225     if (!((a->depthTestEnable) == (b->depthTestEnable))) {
2226         onFail("a->depthTestEnable (Error: Value not equal)");
2227     };
2228     if (!((a->depthWriteEnable) == (b->depthWriteEnable))) {
2229         onFail("a->depthWriteEnable (Error: Value not equal)");
2230     };
2231     if (!((a->depthCompareOp) == (b->depthCompareOp))) {
2232         onFail("a->depthCompareOp (Error: Value not equal)");
2233     };
2234     if (!((a->depthBoundsTestEnable) == (b->depthBoundsTestEnable))) {
2235         onFail("a->depthBoundsTestEnable (Error: Value not equal)");
2236     };
2237     if (!((a->stencilTestEnable) == (b->stencilTestEnable))) {
2238         onFail("a->stencilTestEnable (Error: Value not equal)");
2239     };
2240     checkEqual_VkStencilOpState(&a->front, &b->front, onFail);
2241     checkEqual_VkStencilOpState(&a->back, &b->back, onFail);
2242     if (!((a->minDepthBounds) == (b->minDepthBounds))) {
2243         onFail("a->minDepthBounds (Error: Value not equal)");
2244     };
2245     if (!((a->maxDepthBounds) == (b->maxDepthBounds))) {
2246         onFail("a->maxDepthBounds (Error: Value not equal)");
2247     };
2248 }
2249 
checkEqual_VkPipelineColorBlendAttachmentState(const VkPipelineColorBlendAttachmentState * a,const VkPipelineColorBlendAttachmentState * b,OnFailCompareFunc onFail)2250 void checkEqual_VkPipelineColorBlendAttachmentState(const VkPipelineColorBlendAttachmentState* a,
2251                                                     const VkPipelineColorBlendAttachmentState* b,
2252                                                     OnFailCompareFunc onFail) {
2253     if (!((a->blendEnable) == (b->blendEnable))) {
2254         onFail("a->blendEnable (Error: Value not equal)");
2255     };
2256     if (!((a->srcColorBlendFactor) == (b->srcColorBlendFactor))) {
2257         onFail("a->srcColorBlendFactor (Error: Value not equal)");
2258     };
2259     if (!((a->dstColorBlendFactor) == (b->dstColorBlendFactor))) {
2260         onFail("a->dstColorBlendFactor (Error: Value not equal)");
2261     };
2262     if (!((a->colorBlendOp) == (b->colorBlendOp))) {
2263         onFail("a->colorBlendOp (Error: Value not equal)");
2264     };
2265     if (!((a->srcAlphaBlendFactor) == (b->srcAlphaBlendFactor))) {
2266         onFail("a->srcAlphaBlendFactor (Error: Value not equal)");
2267     };
2268     if (!((a->dstAlphaBlendFactor) == (b->dstAlphaBlendFactor))) {
2269         onFail("a->dstAlphaBlendFactor (Error: Value not equal)");
2270     };
2271     if (!((a->alphaBlendOp) == (b->alphaBlendOp))) {
2272         onFail("a->alphaBlendOp (Error: Value not equal)");
2273     };
2274     if (!((a->colorWriteMask) == (b->colorWriteMask))) {
2275         onFail("a->colorWriteMask (Error: Value not equal)");
2276     };
2277 }
2278 
checkEqual_VkPipelineColorBlendStateCreateInfo(const VkPipelineColorBlendStateCreateInfo * a,const VkPipelineColorBlendStateCreateInfo * b,OnFailCompareFunc onFail)2279 void checkEqual_VkPipelineColorBlendStateCreateInfo(const VkPipelineColorBlendStateCreateInfo* a,
2280                                                     const VkPipelineColorBlendStateCreateInfo* b,
2281                                                     OnFailCompareFunc onFail) {
2282     if (!((a->sType) == (b->sType))) {
2283         onFail("a->sType (Error: Value not equal)");
2284     };
2285     if (a->pNext) {
2286         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2287     }
2288     if (!((a->flags) == (b->flags))) {
2289         onFail("a->flags (Error: Value not equal)");
2290     };
2291     if (!((a->logicOpEnable) == (b->logicOpEnable))) {
2292         onFail("a->logicOpEnable (Error: Value not equal)");
2293     };
2294     if (!((a->logicOp) == (b->logicOp))) {
2295         onFail("a->logicOp (Error: Value not equal)");
2296     };
2297     if (!((a->attachmentCount) == (b->attachmentCount))) {
2298         onFail("a->attachmentCount (Error: Value not equal)");
2299     };
2300     if ((a->pAttachments) && (b->pAttachments)) {
2301         if (!((a->attachmentCount) == (b->attachmentCount))) {
2302             onFail("a->pAttachments (Error: Lengths not equal)");
2303         };
2304         if ((a->attachmentCount) == (b->attachmentCount)) {
2305             if (a) {
2306                 for (uint32_t i = 0; i < (uint32_t)a->attachmentCount; ++i) {
2307                     checkEqual_VkPipelineColorBlendAttachmentState(a->pAttachments + i,
2308                                                                    b->pAttachments + i, onFail);
2309                 }
2310             }
2311         }
2312     }
2313     if (!((memcmp(a->blendConstants, b->blendConstants, 4 * sizeof(float)) == 0))) {
2314         onFail("a->blendConstants (Error: Unequal static array)");
2315     };
2316 }
2317 
checkEqual_VkPipelineDynamicStateCreateInfo(const VkPipelineDynamicStateCreateInfo * a,const VkPipelineDynamicStateCreateInfo * b,OnFailCompareFunc onFail)2318 void checkEqual_VkPipelineDynamicStateCreateInfo(const VkPipelineDynamicStateCreateInfo* a,
2319                                                  const VkPipelineDynamicStateCreateInfo* b,
2320                                                  OnFailCompareFunc onFail) {
2321     if (!((a->sType) == (b->sType))) {
2322         onFail("a->sType (Error: Value not equal)");
2323     };
2324     if (a->pNext) {
2325         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2326     }
2327     if (!((a->flags) == (b->flags))) {
2328         onFail("a->flags (Error: Value not equal)");
2329     };
2330     if (!((a->dynamicStateCount) == (b->dynamicStateCount))) {
2331         onFail("a->dynamicStateCount (Error: Value not equal)");
2332     };
2333     if (!((a->dynamicStateCount) == (b->dynamicStateCount))) {
2334         onFail("a->pDynamicStates (Error: Lengths not equal)");
2335     };
2336     if (!((memcmp(a->pDynamicStates, b->pDynamicStates,
2337                   a->dynamicStateCount * sizeof(const VkDynamicState)) == 0))) {
2338         onFail("a->pDynamicStates (Error: Unequal dyn array)");
2339     };
2340 }
2341 
checkEqual_VkGraphicsPipelineCreateInfo(const VkGraphicsPipelineCreateInfo * a,const VkGraphicsPipelineCreateInfo * b,OnFailCompareFunc onFail)2342 void checkEqual_VkGraphicsPipelineCreateInfo(const VkGraphicsPipelineCreateInfo* a,
2343                                              const VkGraphicsPipelineCreateInfo* b,
2344                                              OnFailCompareFunc onFail) {
2345     if (!((a->sType) == (b->sType))) {
2346         onFail("a->sType (Error: Value not equal)");
2347     };
2348     if (a->pNext) {
2349         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2350     }
2351     if (!((a->flags) == (b->flags))) {
2352         onFail("a->flags (Error: Value not equal)");
2353     };
2354     if (!((a->stageCount) == (b->stageCount))) {
2355         onFail("a->stageCount (Error: Value not equal)");
2356     };
2357     if ((a->pStages) && (b->pStages)) {
2358         if (!((a->stageCount) == (b->stageCount))) {
2359             onFail("a->pStages (Error: Lengths not equal)");
2360         };
2361         if ((a->stageCount) == (b->stageCount)) {
2362             if (a) {
2363                 for (uint32_t i = 0; i < (uint32_t)a->stageCount; ++i) {
2364                     checkEqual_VkPipelineShaderStageCreateInfo(a->pStages + i, b->pStages + i,
2365                                                                onFail);
2366                 }
2367             }
2368         }
2369     }
2370     if (!((!(a->pVertexInputState) && !(b->pVertexInputState)) ||
2371           ((a->pVertexInputState) && (b->pVertexInputState)))) {
2372         onFail("a->pVertexInputState (Error: Mismatch in optional field)");
2373     };
2374     if (a->pVertexInputState && b->pVertexInputState) {
2375         if ((a->pVertexInputState) && (b->pVertexInputState)) {
2376             checkEqual_VkPipelineVertexInputStateCreateInfo(a->pVertexInputState,
2377                                                             b->pVertexInputState, onFail);
2378         }
2379     }
2380     if (!((!(a->pInputAssemblyState) && !(b->pInputAssemblyState)) ||
2381           ((a->pInputAssemblyState) && (b->pInputAssemblyState)))) {
2382         onFail("a->pInputAssemblyState (Error: Mismatch in optional field)");
2383     };
2384     if (a->pInputAssemblyState && b->pInputAssemblyState) {
2385         if ((a->pInputAssemblyState) && (b->pInputAssemblyState)) {
2386             checkEqual_VkPipelineInputAssemblyStateCreateInfo(a->pInputAssemblyState,
2387                                                               b->pInputAssemblyState, onFail);
2388         }
2389     }
2390     if (!((!(a->pTessellationState) && !(b->pTessellationState)) ||
2391           ((a->pTessellationState) && (b->pTessellationState)))) {
2392         onFail("a->pTessellationState (Error: Mismatch in optional field)");
2393     };
2394     if (a->pTessellationState && b->pTessellationState) {
2395         if ((a->pTessellationState) && (b->pTessellationState)) {
2396             checkEqual_VkPipelineTessellationStateCreateInfo(a->pTessellationState,
2397                                                              b->pTessellationState, onFail);
2398         }
2399     }
2400     if (!((!(a->pViewportState) && !(b->pViewportState)) ||
2401           ((a->pViewportState) && (b->pViewportState)))) {
2402         onFail("a->pViewportState (Error: Mismatch in optional field)");
2403     };
2404     if (a->pViewportState && b->pViewportState) {
2405         if ((a->pViewportState) && (b->pViewportState)) {
2406             checkEqual_VkPipelineViewportStateCreateInfo(a->pViewportState, b->pViewportState,
2407                                                          onFail);
2408         }
2409     }
2410     if (!((!(a->pRasterizationState) && !(b->pRasterizationState)) ||
2411           ((a->pRasterizationState) && (b->pRasterizationState)))) {
2412         onFail("a->pRasterizationState (Error: Mismatch in optional field)");
2413     };
2414     if (a->pRasterizationState && b->pRasterizationState) {
2415         if ((a->pRasterizationState) && (b->pRasterizationState)) {
2416             checkEqual_VkPipelineRasterizationStateCreateInfo(a->pRasterizationState,
2417                                                               b->pRasterizationState, onFail);
2418         }
2419     }
2420     if (!((!(a->pMultisampleState) && !(b->pMultisampleState)) ||
2421           ((a->pMultisampleState) && (b->pMultisampleState)))) {
2422         onFail("a->pMultisampleState (Error: Mismatch in optional field)");
2423     };
2424     if (a->pMultisampleState && b->pMultisampleState) {
2425         if ((a->pMultisampleState) && (b->pMultisampleState)) {
2426             checkEqual_VkPipelineMultisampleStateCreateInfo(a->pMultisampleState,
2427                                                             b->pMultisampleState, onFail);
2428         }
2429     }
2430     if (!((!(a->pDepthStencilState) && !(b->pDepthStencilState)) ||
2431           ((a->pDepthStencilState) && (b->pDepthStencilState)))) {
2432         onFail("a->pDepthStencilState (Error: Mismatch in optional field)");
2433     };
2434     if (a->pDepthStencilState && b->pDepthStencilState) {
2435         if ((a->pDepthStencilState) && (b->pDepthStencilState)) {
2436             checkEqual_VkPipelineDepthStencilStateCreateInfo(a->pDepthStencilState,
2437                                                              b->pDepthStencilState, onFail);
2438         }
2439     }
2440     if (!((!(a->pColorBlendState) && !(b->pColorBlendState)) ||
2441           ((a->pColorBlendState) && (b->pColorBlendState)))) {
2442         onFail("a->pColorBlendState (Error: Mismatch in optional field)");
2443     };
2444     if (a->pColorBlendState && b->pColorBlendState) {
2445         if ((a->pColorBlendState) && (b->pColorBlendState)) {
2446             checkEqual_VkPipelineColorBlendStateCreateInfo(a->pColorBlendState, b->pColorBlendState,
2447                                                            onFail);
2448         }
2449     }
2450     if (!((!(a->pDynamicState) && !(b->pDynamicState)) ||
2451           ((a->pDynamicState) && (b->pDynamicState)))) {
2452         onFail("a->pDynamicState (Error: Mismatch in optional field)");
2453     };
2454     if (a->pDynamicState && b->pDynamicState) {
2455         if ((a->pDynamicState) && (b->pDynamicState)) {
2456             checkEqual_VkPipelineDynamicStateCreateInfo(a->pDynamicState, b->pDynamicState, onFail);
2457         }
2458     }
2459     if (!((a->layout) == (b->layout))) {
2460         onFail("a->layout (Error: Value not equal)");
2461     };
2462     if (!((a->renderPass) == (b->renderPass))) {
2463         onFail("a->renderPass (Error: Value not equal)");
2464     };
2465     if (!((a->subpass) == (b->subpass))) {
2466         onFail("a->subpass (Error: Value not equal)");
2467     };
2468     if (!((a->basePipelineHandle) == (b->basePipelineHandle))) {
2469         onFail("a->basePipelineHandle (Error: Value not equal)");
2470     };
2471     if (!((a->basePipelineIndex) == (b->basePipelineIndex))) {
2472         onFail("a->basePipelineIndex (Error: Value not equal)");
2473     };
2474 }
2475 
checkEqual_VkPushConstantRange(const VkPushConstantRange * a,const VkPushConstantRange * b,OnFailCompareFunc onFail)2476 void checkEqual_VkPushConstantRange(const VkPushConstantRange* a, const VkPushConstantRange* b,
2477                                     OnFailCompareFunc onFail) {
2478     if (!((a->stageFlags) == (b->stageFlags))) {
2479         onFail("a->stageFlags (Error: Value not equal)");
2480     };
2481     if (!((a->offset) == (b->offset))) {
2482         onFail("a->offset (Error: Value not equal)");
2483     };
2484     if (!((a->size) == (b->size))) {
2485         onFail("a->size (Error: Value not equal)");
2486     };
2487 }
2488 
checkEqual_VkPipelineLayoutCreateInfo(const VkPipelineLayoutCreateInfo * a,const VkPipelineLayoutCreateInfo * b,OnFailCompareFunc onFail)2489 void checkEqual_VkPipelineLayoutCreateInfo(const VkPipelineLayoutCreateInfo* a,
2490                                            const VkPipelineLayoutCreateInfo* b,
2491                                            OnFailCompareFunc onFail) {
2492     if (!((a->sType) == (b->sType))) {
2493         onFail("a->sType (Error: Value not equal)");
2494     };
2495     if (a->pNext) {
2496         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2497     }
2498     if (!((a->flags) == (b->flags))) {
2499         onFail("a->flags (Error: Value not equal)");
2500     };
2501     if (!((a->setLayoutCount) == (b->setLayoutCount))) {
2502         onFail("a->setLayoutCount (Error: Value not equal)");
2503     };
2504     if (!((a->setLayoutCount) == (b->setLayoutCount))) {
2505         onFail("a->pSetLayouts (Error: Lengths not equal)");
2506     };
2507     if (!((memcmp(a->pSetLayouts, b->pSetLayouts,
2508                   a->setLayoutCount * sizeof(const VkDescriptorSetLayout)) == 0))) {
2509         onFail("a->pSetLayouts (Error: Unequal dyn array)");
2510     };
2511     if (!((a->pushConstantRangeCount) == (b->pushConstantRangeCount))) {
2512         onFail("a->pushConstantRangeCount (Error: Value not equal)");
2513     };
2514     if ((a->pPushConstantRanges) && (b->pPushConstantRanges)) {
2515         if (!((a->pushConstantRangeCount) == (b->pushConstantRangeCount))) {
2516             onFail("a->pPushConstantRanges (Error: Lengths not equal)");
2517         };
2518         if ((a->pushConstantRangeCount) == (b->pushConstantRangeCount)) {
2519             if (a) {
2520                 for (uint32_t i = 0; i < (uint32_t)a->pushConstantRangeCount; ++i) {
2521                     checkEqual_VkPushConstantRange(a->pPushConstantRanges + i,
2522                                                    b->pPushConstantRanges + i, onFail);
2523                 }
2524             }
2525         }
2526     }
2527 }
2528 
checkEqual_VkSamplerCreateInfo(const VkSamplerCreateInfo * a,const VkSamplerCreateInfo * b,OnFailCompareFunc onFail)2529 void checkEqual_VkSamplerCreateInfo(const VkSamplerCreateInfo* a, const VkSamplerCreateInfo* b,
2530                                     OnFailCompareFunc onFail) {
2531     if (!((a->sType) == (b->sType))) {
2532         onFail("a->sType (Error: Value not equal)");
2533     };
2534     if (a->pNext) {
2535         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2536     }
2537     if (!((a->flags) == (b->flags))) {
2538         onFail("a->flags (Error: Value not equal)");
2539     };
2540     if (!((a->magFilter) == (b->magFilter))) {
2541         onFail("a->magFilter (Error: Value not equal)");
2542     };
2543     if (!((a->minFilter) == (b->minFilter))) {
2544         onFail("a->minFilter (Error: Value not equal)");
2545     };
2546     if (!((a->mipmapMode) == (b->mipmapMode))) {
2547         onFail("a->mipmapMode (Error: Value not equal)");
2548     };
2549     if (!((a->addressModeU) == (b->addressModeU))) {
2550         onFail("a->addressModeU (Error: Value not equal)");
2551     };
2552     if (!((a->addressModeV) == (b->addressModeV))) {
2553         onFail("a->addressModeV (Error: Value not equal)");
2554     };
2555     if (!((a->addressModeW) == (b->addressModeW))) {
2556         onFail("a->addressModeW (Error: Value not equal)");
2557     };
2558     if (!((a->mipLodBias) == (b->mipLodBias))) {
2559         onFail("a->mipLodBias (Error: Value not equal)");
2560     };
2561     if (!((a->anisotropyEnable) == (b->anisotropyEnable))) {
2562         onFail("a->anisotropyEnable (Error: Value not equal)");
2563     };
2564     if (!((a->maxAnisotropy) == (b->maxAnisotropy))) {
2565         onFail("a->maxAnisotropy (Error: Value not equal)");
2566     };
2567     if (!((a->compareEnable) == (b->compareEnable))) {
2568         onFail("a->compareEnable (Error: Value not equal)");
2569     };
2570     if (!((a->compareOp) == (b->compareOp))) {
2571         onFail("a->compareOp (Error: Value not equal)");
2572     };
2573     if (!((a->minLod) == (b->minLod))) {
2574         onFail("a->minLod (Error: Value not equal)");
2575     };
2576     if (!((a->maxLod) == (b->maxLod))) {
2577         onFail("a->maxLod (Error: Value not equal)");
2578     };
2579     if (!((a->borderColor) == (b->borderColor))) {
2580         onFail("a->borderColor (Error: Value not equal)");
2581     };
2582     if (!((a->unnormalizedCoordinates) == (b->unnormalizedCoordinates))) {
2583         onFail("a->unnormalizedCoordinates (Error: Value not equal)");
2584     };
2585 }
2586 
checkEqual_VkCopyDescriptorSet(const VkCopyDescriptorSet * a,const VkCopyDescriptorSet * b,OnFailCompareFunc onFail)2587 void checkEqual_VkCopyDescriptorSet(const VkCopyDescriptorSet* a, const VkCopyDescriptorSet* b,
2588                                     OnFailCompareFunc onFail) {
2589     if (!((a->sType) == (b->sType))) {
2590         onFail("a->sType (Error: Value not equal)");
2591     };
2592     if (a->pNext) {
2593         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2594     }
2595     if (!((a->srcSet) == (b->srcSet))) {
2596         onFail("a->srcSet (Error: Value not equal)");
2597     };
2598     if (!((a->srcBinding) == (b->srcBinding))) {
2599         onFail("a->srcBinding (Error: Value not equal)");
2600     };
2601     if (!((a->srcArrayElement) == (b->srcArrayElement))) {
2602         onFail("a->srcArrayElement (Error: Value not equal)");
2603     };
2604     if (!((a->dstSet) == (b->dstSet))) {
2605         onFail("a->dstSet (Error: Value not equal)");
2606     };
2607     if (!((a->dstBinding) == (b->dstBinding))) {
2608         onFail("a->dstBinding (Error: Value not equal)");
2609     };
2610     if (!((a->dstArrayElement) == (b->dstArrayElement))) {
2611         onFail("a->dstArrayElement (Error: Value not equal)");
2612     };
2613     if (!((a->descriptorCount) == (b->descriptorCount))) {
2614         onFail("a->descriptorCount (Error: Value not equal)");
2615     };
2616 }
2617 
checkEqual_VkDescriptorBufferInfo(const VkDescriptorBufferInfo * a,const VkDescriptorBufferInfo * b,OnFailCompareFunc onFail)2618 void checkEqual_VkDescriptorBufferInfo(const VkDescriptorBufferInfo* a,
2619                                        const VkDescriptorBufferInfo* b, OnFailCompareFunc onFail) {
2620     if (!((a->buffer) == (b->buffer))) {
2621         onFail("a->buffer (Error: Value not equal)");
2622     };
2623     if (!((a->offset) == (b->offset))) {
2624         onFail("a->offset (Error: Value not equal)");
2625     };
2626     if (!((a->range) == (b->range))) {
2627         onFail("a->range (Error: Value not equal)");
2628     };
2629 }
2630 
checkEqual_VkDescriptorImageInfo(const VkDescriptorImageInfo * a,const VkDescriptorImageInfo * b,OnFailCompareFunc onFail)2631 void checkEqual_VkDescriptorImageInfo(const VkDescriptorImageInfo* a,
2632                                       const VkDescriptorImageInfo* b, OnFailCompareFunc onFail) {
2633     if (!((a->sampler) == (b->sampler))) {
2634         onFail("a->sampler (Error: Value not equal)");
2635     };
2636     if (!((a->imageView) == (b->imageView))) {
2637         onFail("a->imageView (Error: Value not equal)");
2638     };
2639     if (!((a->imageLayout) == (b->imageLayout))) {
2640         onFail("a->imageLayout (Error: Value not equal)");
2641     };
2642 }
2643 
checkEqual_VkDescriptorPoolSize(const VkDescriptorPoolSize * a,const VkDescriptorPoolSize * b,OnFailCompareFunc onFail)2644 void checkEqual_VkDescriptorPoolSize(const VkDescriptorPoolSize* a, const VkDescriptorPoolSize* b,
2645                                      OnFailCompareFunc onFail) {
2646     if (!((a->type) == (b->type))) {
2647         onFail("a->type (Error: Value not equal)");
2648     };
2649     if (!((a->descriptorCount) == (b->descriptorCount))) {
2650         onFail("a->descriptorCount (Error: Value not equal)");
2651     };
2652 }
2653 
checkEqual_VkDescriptorPoolCreateInfo(const VkDescriptorPoolCreateInfo * a,const VkDescriptorPoolCreateInfo * b,OnFailCompareFunc onFail)2654 void checkEqual_VkDescriptorPoolCreateInfo(const VkDescriptorPoolCreateInfo* a,
2655                                            const VkDescriptorPoolCreateInfo* b,
2656                                            OnFailCompareFunc onFail) {
2657     if (!((a->sType) == (b->sType))) {
2658         onFail("a->sType (Error: Value not equal)");
2659     };
2660     if (a->pNext) {
2661         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2662     }
2663     if (!((a->flags) == (b->flags))) {
2664         onFail("a->flags (Error: Value not equal)");
2665     };
2666     if (!((a->maxSets) == (b->maxSets))) {
2667         onFail("a->maxSets (Error: Value not equal)");
2668     };
2669     if (!((a->poolSizeCount) == (b->poolSizeCount))) {
2670         onFail("a->poolSizeCount (Error: Value not equal)");
2671     };
2672     if ((a->pPoolSizes) && (b->pPoolSizes)) {
2673         if (!((a->poolSizeCount) == (b->poolSizeCount))) {
2674             onFail("a->pPoolSizes (Error: Lengths not equal)");
2675         };
2676         if ((a->poolSizeCount) == (b->poolSizeCount)) {
2677             if (a) {
2678                 for (uint32_t i = 0; i < (uint32_t)a->poolSizeCount; ++i) {
2679                     checkEqual_VkDescriptorPoolSize(a->pPoolSizes + i, b->pPoolSizes + i, onFail);
2680                 }
2681             }
2682         }
2683     }
2684 }
2685 
checkEqual_VkDescriptorSetAllocateInfo(const VkDescriptorSetAllocateInfo * a,const VkDescriptorSetAllocateInfo * b,OnFailCompareFunc onFail)2686 void checkEqual_VkDescriptorSetAllocateInfo(const VkDescriptorSetAllocateInfo* a,
2687                                             const VkDescriptorSetAllocateInfo* b,
2688                                             OnFailCompareFunc onFail) {
2689     if (!((a->sType) == (b->sType))) {
2690         onFail("a->sType (Error: Value not equal)");
2691     };
2692     if (a->pNext) {
2693         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2694     }
2695     if (!((a->descriptorPool) == (b->descriptorPool))) {
2696         onFail("a->descriptorPool (Error: Value not equal)");
2697     };
2698     if (!((a->descriptorSetCount) == (b->descriptorSetCount))) {
2699         onFail("a->descriptorSetCount (Error: Value not equal)");
2700     };
2701     if (!((a->descriptorSetCount) == (b->descriptorSetCount))) {
2702         onFail("a->pSetLayouts (Error: Lengths not equal)");
2703     };
2704     if (!((memcmp(a->pSetLayouts, b->pSetLayouts,
2705                   a->descriptorSetCount * sizeof(const VkDescriptorSetLayout)) == 0))) {
2706         onFail("a->pSetLayouts (Error: Unequal dyn array)");
2707     };
2708 }
2709 
checkEqual_VkDescriptorSetLayoutBinding(const VkDescriptorSetLayoutBinding * a,const VkDescriptorSetLayoutBinding * b,OnFailCompareFunc onFail)2710 void checkEqual_VkDescriptorSetLayoutBinding(const VkDescriptorSetLayoutBinding* a,
2711                                              const VkDescriptorSetLayoutBinding* b,
2712                                              OnFailCompareFunc onFail) {
2713     if (!((a->binding) == (b->binding))) {
2714         onFail("a->binding (Error: Value not equal)");
2715     };
2716     if (!((a->descriptorType) == (b->descriptorType))) {
2717         onFail("a->descriptorType (Error: Value not equal)");
2718     };
2719     if (!((a->descriptorCount) == (b->descriptorCount))) {
2720         onFail("a->descriptorCount (Error: Value not equal)");
2721     };
2722     if (!((a->stageFlags) == (b->stageFlags))) {
2723         onFail("a->stageFlags (Error: Value not equal)");
2724     };
2725     if (!((!(a->pImmutableSamplers) && !(b->pImmutableSamplers)) ||
2726           ((a->pImmutableSamplers) && (b->pImmutableSamplers)))) {
2727         onFail("a->pImmutableSamplers (Error: Mismatch in optional field)");
2728     };
2729     if (a->pImmutableSamplers && b->pImmutableSamplers) {
2730         if (!((a->descriptorCount) == (b->descriptorCount))) {
2731             onFail("a->pImmutableSamplers (Error: Lengths not equal)");
2732         };
2733         if (!((memcmp(a->pImmutableSamplers, b->pImmutableSamplers,
2734                       a->descriptorCount * sizeof(const VkSampler)) == 0))) {
2735             onFail("a->pImmutableSamplers (Error: Unequal dyn array)");
2736         };
2737     }
2738 }
2739 
checkEqual_VkDescriptorSetLayoutCreateInfo(const VkDescriptorSetLayoutCreateInfo * a,const VkDescriptorSetLayoutCreateInfo * b,OnFailCompareFunc onFail)2740 void checkEqual_VkDescriptorSetLayoutCreateInfo(const VkDescriptorSetLayoutCreateInfo* a,
2741                                                 const VkDescriptorSetLayoutCreateInfo* b,
2742                                                 OnFailCompareFunc onFail) {
2743     if (!((a->sType) == (b->sType))) {
2744         onFail("a->sType (Error: Value not equal)");
2745     };
2746     if (a->pNext) {
2747         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2748     }
2749     if (!((a->flags) == (b->flags))) {
2750         onFail("a->flags (Error: Value not equal)");
2751     };
2752     if (!((a->bindingCount) == (b->bindingCount))) {
2753         onFail("a->bindingCount (Error: Value not equal)");
2754     };
2755     if ((a->pBindings) && (b->pBindings)) {
2756         if (!((a->bindingCount) == (b->bindingCount))) {
2757             onFail("a->pBindings (Error: Lengths not equal)");
2758         };
2759         if ((a->bindingCount) == (b->bindingCount)) {
2760             if (a) {
2761                 for (uint32_t i = 0; i < (uint32_t)a->bindingCount; ++i) {
2762                     checkEqual_VkDescriptorSetLayoutBinding(a->pBindings + i, b->pBindings + i,
2763                                                             onFail);
2764                 }
2765             }
2766         }
2767     }
2768 }
2769 
checkEqual_VkWriteDescriptorSet(const VkWriteDescriptorSet * a,const VkWriteDescriptorSet * b,OnFailCompareFunc onFail)2770 void checkEqual_VkWriteDescriptorSet(const VkWriteDescriptorSet* a, const VkWriteDescriptorSet* b,
2771                                      OnFailCompareFunc onFail) {
2772     if (!((a->sType) == (b->sType))) {
2773         onFail("a->sType (Error: Value not equal)");
2774     };
2775     if (a->pNext) {
2776         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2777     }
2778     if (!((a->dstSet) == (b->dstSet))) {
2779         onFail("a->dstSet (Error: Value not equal)");
2780     };
2781     if (!((a->dstBinding) == (b->dstBinding))) {
2782         onFail("a->dstBinding (Error: Value not equal)");
2783     };
2784     if (!((a->dstArrayElement) == (b->dstArrayElement))) {
2785         onFail("a->dstArrayElement (Error: Value not equal)");
2786     };
2787     if (!((a->descriptorCount) == (b->descriptorCount))) {
2788         onFail("a->descriptorCount (Error: Value not equal)");
2789     };
2790     if (!((a->descriptorType) == (b->descriptorType))) {
2791         onFail("a->descriptorType (Error: Value not equal)");
2792     };
2793     if (!((!(a->pImageInfo) && !(b->pImageInfo)) || ((a->pImageInfo) && (b->pImageInfo)))) {
2794         onFail("a->pImageInfo (Error: Mismatch in optional field)");
2795     };
2796     if (a->pImageInfo && b->pImageInfo) {
2797         if ((a->pImageInfo) && (b->pImageInfo)) {
2798             if (!((a->descriptorCount) == (b->descriptorCount))) {
2799                 onFail("a->pImageInfo (Error: Lengths not equal)");
2800             };
2801             if ((a->descriptorCount) == (b->descriptorCount)) {
2802                 if (a) {
2803                     for (uint32_t i = 0; i < (uint32_t)a->descriptorCount; ++i) {
2804                         checkEqual_VkDescriptorImageInfo(a->pImageInfo + i, b->pImageInfo + i,
2805                                                          onFail);
2806                     }
2807                 }
2808             }
2809         }
2810     }
2811     if (!((!(a->pBufferInfo) && !(b->pBufferInfo)) || ((a->pBufferInfo) && (b->pBufferInfo)))) {
2812         onFail("a->pBufferInfo (Error: Mismatch in optional field)");
2813     };
2814     if (a->pBufferInfo && b->pBufferInfo) {
2815         if ((a->pBufferInfo) && (b->pBufferInfo)) {
2816             if (!((a->descriptorCount) == (b->descriptorCount))) {
2817                 onFail("a->pBufferInfo (Error: Lengths not equal)");
2818             };
2819             if ((a->descriptorCount) == (b->descriptorCount)) {
2820                 if (a) {
2821                     for (uint32_t i = 0; i < (uint32_t)a->descriptorCount; ++i) {
2822                         checkEqual_VkDescriptorBufferInfo(a->pBufferInfo + i, b->pBufferInfo + i,
2823                                                           onFail);
2824                     }
2825                 }
2826             }
2827         }
2828     }
2829     if (!((!(a->pTexelBufferView) && !(b->pTexelBufferView)) ||
2830           ((a->pTexelBufferView) && (b->pTexelBufferView)))) {
2831         onFail("a->pTexelBufferView (Error: Mismatch in optional field)");
2832     };
2833     if (a->pTexelBufferView && b->pTexelBufferView) {
2834         if (!((a->descriptorCount) == (b->descriptorCount))) {
2835             onFail("a->pTexelBufferView (Error: Lengths not equal)");
2836         };
2837         if (!((memcmp(a->pTexelBufferView, b->pTexelBufferView,
2838                       a->descriptorCount * sizeof(const VkBufferView)) == 0))) {
2839             onFail("a->pTexelBufferView (Error: Unequal dyn array)");
2840         };
2841     }
2842 }
2843 
checkEqual_VkAttachmentDescription(const VkAttachmentDescription * a,const VkAttachmentDescription * b,OnFailCompareFunc onFail)2844 void checkEqual_VkAttachmentDescription(const VkAttachmentDescription* a,
2845                                         const VkAttachmentDescription* b,
2846                                         OnFailCompareFunc onFail) {
2847     if (!((a->flags) == (b->flags))) {
2848         onFail("a->flags (Error: Value not equal)");
2849     };
2850     if (!((a->format) == (b->format))) {
2851         onFail("a->format (Error: Value not equal)");
2852     };
2853     if (!((a->samples) == (b->samples))) {
2854         onFail("a->samples (Error: Value not equal)");
2855     };
2856     if (!((a->loadOp) == (b->loadOp))) {
2857         onFail("a->loadOp (Error: Value not equal)");
2858     };
2859     if (!((a->storeOp) == (b->storeOp))) {
2860         onFail("a->storeOp (Error: Value not equal)");
2861     };
2862     if (!((a->stencilLoadOp) == (b->stencilLoadOp))) {
2863         onFail("a->stencilLoadOp (Error: Value not equal)");
2864     };
2865     if (!((a->stencilStoreOp) == (b->stencilStoreOp))) {
2866         onFail("a->stencilStoreOp (Error: Value not equal)");
2867     };
2868     if (!((a->initialLayout) == (b->initialLayout))) {
2869         onFail("a->initialLayout (Error: Value not equal)");
2870     };
2871     if (!((a->finalLayout) == (b->finalLayout))) {
2872         onFail("a->finalLayout (Error: Value not equal)");
2873     };
2874 }
2875 
checkEqual_VkAttachmentReference(const VkAttachmentReference * a,const VkAttachmentReference * b,OnFailCompareFunc onFail)2876 void checkEqual_VkAttachmentReference(const VkAttachmentReference* a,
2877                                       const VkAttachmentReference* b, OnFailCompareFunc onFail) {
2878     if (!((a->attachment) == (b->attachment))) {
2879         onFail("a->attachment (Error: Value not equal)");
2880     };
2881     if (!((a->layout) == (b->layout))) {
2882         onFail("a->layout (Error: Value not equal)");
2883     };
2884 }
2885 
checkEqual_VkFramebufferCreateInfo(const VkFramebufferCreateInfo * a,const VkFramebufferCreateInfo * b,OnFailCompareFunc onFail)2886 void checkEqual_VkFramebufferCreateInfo(const VkFramebufferCreateInfo* a,
2887                                         const VkFramebufferCreateInfo* b,
2888                                         OnFailCompareFunc onFail) {
2889     if (!((a->sType) == (b->sType))) {
2890         onFail("a->sType (Error: Value not equal)");
2891     };
2892     if (a->pNext) {
2893         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
2894     }
2895     if (!((a->flags) == (b->flags))) {
2896         onFail("a->flags (Error: Value not equal)");
2897     };
2898     if (!((a->renderPass) == (b->renderPass))) {
2899         onFail("a->renderPass (Error: Value not equal)");
2900     };
2901     if (!((a->attachmentCount) == (b->attachmentCount))) {
2902         onFail("a->attachmentCount (Error: Value not equal)");
2903     };
2904     if (!((a->attachmentCount) == (b->attachmentCount))) {
2905         onFail("a->pAttachments (Error: Lengths not equal)");
2906     };
2907     if (!((memcmp(a->pAttachments, b->pAttachments,
2908                   a->attachmentCount * sizeof(const VkImageView)) == 0))) {
2909         onFail("a->pAttachments (Error: Unequal dyn array)");
2910     };
2911     if (!((a->width) == (b->width))) {
2912         onFail("a->width (Error: Value not equal)");
2913     };
2914     if (!((a->height) == (b->height))) {
2915         onFail("a->height (Error: Value not equal)");
2916     };
2917     if (!((a->layers) == (b->layers))) {
2918         onFail("a->layers (Error: Value not equal)");
2919     };
2920 }
2921 
checkEqual_VkSubpassDescription(const VkSubpassDescription * a,const VkSubpassDescription * b,OnFailCompareFunc onFail)2922 void checkEqual_VkSubpassDescription(const VkSubpassDescription* a, const VkSubpassDescription* b,
2923                                      OnFailCompareFunc onFail) {
2924     if (!((a->flags) == (b->flags))) {
2925         onFail("a->flags (Error: Value not equal)");
2926     };
2927     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
2928         onFail("a->pipelineBindPoint (Error: Value not equal)");
2929     };
2930     if (!((a->inputAttachmentCount) == (b->inputAttachmentCount))) {
2931         onFail("a->inputAttachmentCount (Error: Value not equal)");
2932     };
2933     if ((a->pInputAttachments) && (b->pInputAttachments)) {
2934         if (!((a->inputAttachmentCount) == (b->inputAttachmentCount))) {
2935             onFail("a->pInputAttachments (Error: Lengths not equal)");
2936         };
2937         if ((a->inputAttachmentCount) == (b->inputAttachmentCount)) {
2938             if (a) {
2939                 for (uint32_t i = 0; i < (uint32_t)a->inputAttachmentCount; ++i) {
2940                     checkEqual_VkAttachmentReference(a->pInputAttachments + i,
2941                                                      b->pInputAttachments + i, onFail);
2942                 }
2943             }
2944         }
2945     }
2946     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
2947         onFail("a->colorAttachmentCount (Error: Value not equal)");
2948     };
2949     if ((a->pColorAttachments) && (b->pColorAttachments)) {
2950         if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
2951             onFail("a->pColorAttachments (Error: Lengths not equal)");
2952         };
2953         if ((a->colorAttachmentCount) == (b->colorAttachmentCount)) {
2954             if (a) {
2955                 for (uint32_t i = 0; i < (uint32_t)a->colorAttachmentCount; ++i) {
2956                     checkEqual_VkAttachmentReference(a->pColorAttachments + i,
2957                                                      b->pColorAttachments + i, onFail);
2958                 }
2959             }
2960         }
2961     }
2962     if (!((!(a->pResolveAttachments) && !(b->pResolveAttachments)) ||
2963           ((a->pResolveAttachments) && (b->pResolveAttachments)))) {
2964         onFail("a->pResolveAttachments (Error: Mismatch in optional field)");
2965     };
2966     if (a->pResolveAttachments && b->pResolveAttachments) {
2967         if ((a->pResolveAttachments) && (b->pResolveAttachments)) {
2968             if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
2969                 onFail("a->pResolveAttachments (Error: Lengths not equal)");
2970             };
2971             if ((a->colorAttachmentCount) == (b->colorAttachmentCount)) {
2972                 if (a) {
2973                     for (uint32_t i = 0; i < (uint32_t)a->colorAttachmentCount; ++i) {
2974                         checkEqual_VkAttachmentReference(a->pResolveAttachments + i,
2975                                                          b->pResolveAttachments + i, onFail);
2976                     }
2977                 }
2978             }
2979         }
2980     }
2981     if (!((!(a->pDepthStencilAttachment) && !(b->pDepthStencilAttachment)) ||
2982           ((a->pDepthStencilAttachment) && (b->pDepthStencilAttachment)))) {
2983         onFail("a->pDepthStencilAttachment (Error: Mismatch in optional field)");
2984     };
2985     if (a->pDepthStencilAttachment && b->pDepthStencilAttachment) {
2986         if ((a->pDepthStencilAttachment) && (b->pDepthStencilAttachment)) {
2987             checkEqual_VkAttachmentReference(a->pDepthStencilAttachment, b->pDepthStencilAttachment,
2988                                              onFail);
2989         }
2990     }
2991     if (!((a->preserveAttachmentCount) == (b->preserveAttachmentCount))) {
2992         onFail("a->preserveAttachmentCount (Error: Value not equal)");
2993     };
2994     if (!((a->preserveAttachmentCount) == (b->preserveAttachmentCount))) {
2995         onFail("a->pPreserveAttachments (Error: Lengths not equal)");
2996     };
2997     if (!((memcmp(a->pPreserveAttachments, b->pPreserveAttachments,
2998                   a->preserveAttachmentCount * sizeof(const uint32_t)) == 0))) {
2999         onFail("a->pPreserveAttachments (Error: Unequal dyn array)");
3000     };
3001 }
3002 
checkEqual_VkSubpassDependency(const VkSubpassDependency * a,const VkSubpassDependency * b,OnFailCompareFunc onFail)3003 void checkEqual_VkSubpassDependency(const VkSubpassDependency* a, const VkSubpassDependency* b,
3004                                     OnFailCompareFunc onFail) {
3005     if (!((a->srcSubpass) == (b->srcSubpass))) {
3006         onFail("a->srcSubpass (Error: Value not equal)");
3007     };
3008     if (!((a->dstSubpass) == (b->dstSubpass))) {
3009         onFail("a->dstSubpass (Error: Value not equal)");
3010     };
3011     if (!((a->srcStageMask) == (b->srcStageMask))) {
3012         onFail("a->srcStageMask (Error: Value not equal)");
3013     };
3014     if (!((a->dstStageMask) == (b->dstStageMask))) {
3015         onFail("a->dstStageMask (Error: Value not equal)");
3016     };
3017     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
3018         onFail("a->srcAccessMask (Error: Value not equal)");
3019     };
3020     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
3021         onFail("a->dstAccessMask (Error: Value not equal)");
3022     };
3023     if (!((a->dependencyFlags) == (b->dependencyFlags))) {
3024         onFail("a->dependencyFlags (Error: Value not equal)");
3025     };
3026 }
3027 
checkEqual_VkRenderPassCreateInfo(const VkRenderPassCreateInfo * a,const VkRenderPassCreateInfo * b,OnFailCompareFunc onFail)3028 void checkEqual_VkRenderPassCreateInfo(const VkRenderPassCreateInfo* a,
3029                                        const VkRenderPassCreateInfo* b, OnFailCompareFunc onFail) {
3030     if (!((a->sType) == (b->sType))) {
3031         onFail("a->sType (Error: Value not equal)");
3032     };
3033     if (a->pNext) {
3034         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3035     }
3036     if (!((a->flags) == (b->flags))) {
3037         onFail("a->flags (Error: Value not equal)");
3038     };
3039     if (!((a->attachmentCount) == (b->attachmentCount))) {
3040         onFail("a->attachmentCount (Error: Value not equal)");
3041     };
3042     if ((a->pAttachments) && (b->pAttachments)) {
3043         if (!((a->attachmentCount) == (b->attachmentCount))) {
3044             onFail("a->pAttachments (Error: Lengths not equal)");
3045         };
3046         if ((a->attachmentCount) == (b->attachmentCount)) {
3047             if (a) {
3048                 for (uint32_t i = 0; i < (uint32_t)a->attachmentCount; ++i) {
3049                     checkEqual_VkAttachmentDescription(a->pAttachments + i, b->pAttachments + i,
3050                                                        onFail);
3051                 }
3052             }
3053         }
3054     }
3055     if (!((a->subpassCount) == (b->subpassCount))) {
3056         onFail("a->subpassCount (Error: Value not equal)");
3057     };
3058     if ((a->pSubpasses) && (b->pSubpasses)) {
3059         if (!((a->subpassCount) == (b->subpassCount))) {
3060             onFail("a->pSubpasses (Error: Lengths not equal)");
3061         };
3062         if ((a->subpassCount) == (b->subpassCount)) {
3063             if (a) {
3064                 for (uint32_t i = 0; i < (uint32_t)a->subpassCount; ++i) {
3065                     checkEqual_VkSubpassDescription(a->pSubpasses + i, b->pSubpasses + i, onFail);
3066                 }
3067             }
3068         }
3069     }
3070     if (!((a->dependencyCount) == (b->dependencyCount))) {
3071         onFail("a->dependencyCount (Error: Value not equal)");
3072     };
3073     if ((a->pDependencies) && (b->pDependencies)) {
3074         if (!((a->dependencyCount) == (b->dependencyCount))) {
3075             onFail("a->pDependencies (Error: Lengths not equal)");
3076         };
3077         if ((a->dependencyCount) == (b->dependencyCount)) {
3078             if (a) {
3079                 for (uint32_t i = 0; i < (uint32_t)a->dependencyCount; ++i) {
3080                     checkEqual_VkSubpassDependency(a->pDependencies + i, b->pDependencies + i,
3081                                                    onFail);
3082                 }
3083             }
3084         }
3085     }
3086 }
3087 
checkEqual_VkCommandPoolCreateInfo(const VkCommandPoolCreateInfo * a,const VkCommandPoolCreateInfo * b,OnFailCompareFunc onFail)3088 void checkEqual_VkCommandPoolCreateInfo(const VkCommandPoolCreateInfo* a,
3089                                         const VkCommandPoolCreateInfo* b,
3090                                         OnFailCompareFunc onFail) {
3091     if (!((a->sType) == (b->sType))) {
3092         onFail("a->sType (Error: Value not equal)");
3093     };
3094     if (a->pNext) {
3095         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3096     }
3097     if (!((a->flags) == (b->flags))) {
3098         onFail("a->flags (Error: Value not equal)");
3099     };
3100     if (!((a->queueFamilyIndex) == (b->queueFamilyIndex))) {
3101         onFail("a->queueFamilyIndex (Error: Value not equal)");
3102     };
3103 }
3104 
checkEqual_VkCommandBufferAllocateInfo(const VkCommandBufferAllocateInfo * a,const VkCommandBufferAllocateInfo * b,OnFailCompareFunc onFail)3105 void checkEqual_VkCommandBufferAllocateInfo(const VkCommandBufferAllocateInfo* a,
3106                                             const VkCommandBufferAllocateInfo* b,
3107                                             OnFailCompareFunc onFail) {
3108     if (!((a->sType) == (b->sType))) {
3109         onFail("a->sType (Error: Value not equal)");
3110     };
3111     if (a->pNext) {
3112         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3113     }
3114     if (!((a->commandPool) == (b->commandPool))) {
3115         onFail("a->commandPool (Error: Value not equal)");
3116     };
3117     if (!((a->level) == (b->level))) {
3118         onFail("a->level (Error: Value not equal)");
3119     };
3120     if (!((a->commandBufferCount) == (b->commandBufferCount))) {
3121         onFail("a->commandBufferCount (Error: Value not equal)");
3122     };
3123 }
3124 
checkEqual_VkCommandBufferInheritanceInfo(const VkCommandBufferInheritanceInfo * a,const VkCommandBufferInheritanceInfo * b,OnFailCompareFunc onFail)3125 void checkEqual_VkCommandBufferInheritanceInfo(const VkCommandBufferInheritanceInfo* a,
3126                                                const VkCommandBufferInheritanceInfo* b,
3127                                                OnFailCompareFunc onFail) {
3128     if (!((a->sType) == (b->sType))) {
3129         onFail("a->sType (Error: Value not equal)");
3130     };
3131     if (a->pNext) {
3132         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3133     }
3134     if (!((a->renderPass) == (b->renderPass))) {
3135         onFail("a->renderPass (Error: Value not equal)");
3136     };
3137     if (!((a->subpass) == (b->subpass))) {
3138         onFail("a->subpass (Error: Value not equal)");
3139     };
3140     if (!((a->framebuffer) == (b->framebuffer))) {
3141         onFail("a->framebuffer (Error: Value not equal)");
3142     };
3143     if (!((a->occlusionQueryEnable) == (b->occlusionQueryEnable))) {
3144         onFail("a->occlusionQueryEnable (Error: Value not equal)");
3145     };
3146     if (!((a->queryFlags) == (b->queryFlags))) {
3147         onFail("a->queryFlags (Error: Value not equal)");
3148     };
3149     if (!((a->pipelineStatistics) == (b->pipelineStatistics))) {
3150         onFail("a->pipelineStatistics (Error: Value not equal)");
3151     };
3152 }
3153 
checkEqual_VkCommandBufferBeginInfo(const VkCommandBufferBeginInfo * a,const VkCommandBufferBeginInfo * b,OnFailCompareFunc onFail)3154 void checkEqual_VkCommandBufferBeginInfo(const VkCommandBufferBeginInfo* a,
3155                                          const VkCommandBufferBeginInfo* b,
3156                                          OnFailCompareFunc onFail) {
3157     if (!((a->sType) == (b->sType))) {
3158         onFail("a->sType (Error: Value not equal)");
3159     };
3160     if (a->pNext) {
3161         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3162     }
3163     if (!((a->flags) == (b->flags))) {
3164         onFail("a->flags (Error: Value not equal)");
3165     };
3166     if (!((!(a->pInheritanceInfo) && !(b->pInheritanceInfo)) ||
3167           ((a->pInheritanceInfo) && (b->pInheritanceInfo)))) {
3168         onFail("a->pInheritanceInfo (Error: Mismatch in optional field)");
3169     };
3170     if (a->pInheritanceInfo && b->pInheritanceInfo) {
3171         if ((a->pInheritanceInfo) && (b->pInheritanceInfo)) {
3172             checkEqual_VkCommandBufferInheritanceInfo(a->pInheritanceInfo, b->pInheritanceInfo,
3173                                                       onFail);
3174         }
3175     }
3176 }
3177 
checkEqual_VkBufferCopy(const VkBufferCopy * a,const VkBufferCopy * b,OnFailCompareFunc onFail)3178 void checkEqual_VkBufferCopy(const VkBufferCopy* a, const VkBufferCopy* b,
3179                              OnFailCompareFunc onFail) {
3180     if (!((a->srcOffset) == (b->srcOffset))) {
3181         onFail("a->srcOffset (Error: Value not equal)");
3182     };
3183     if (!((a->dstOffset) == (b->dstOffset))) {
3184         onFail("a->dstOffset (Error: Value not equal)");
3185     };
3186     if (!((a->size) == (b->size))) {
3187         onFail("a->size (Error: Value not equal)");
3188     };
3189 }
3190 
checkEqual_VkImageSubresourceLayers(const VkImageSubresourceLayers * a,const VkImageSubresourceLayers * b,OnFailCompareFunc onFail)3191 void checkEqual_VkImageSubresourceLayers(const VkImageSubresourceLayers* a,
3192                                          const VkImageSubresourceLayers* b,
3193                                          OnFailCompareFunc onFail) {
3194     if (!((a->aspectMask) == (b->aspectMask))) {
3195         onFail("a->aspectMask (Error: Value not equal)");
3196     };
3197     if (!((a->mipLevel) == (b->mipLevel))) {
3198         onFail("a->mipLevel (Error: Value not equal)");
3199     };
3200     if (!((a->baseArrayLayer) == (b->baseArrayLayer))) {
3201         onFail("a->baseArrayLayer (Error: Value not equal)");
3202     };
3203     if (!((a->layerCount) == (b->layerCount))) {
3204         onFail("a->layerCount (Error: Value not equal)");
3205     };
3206 }
3207 
checkEqual_VkBufferImageCopy(const VkBufferImageCopy * a,const VkBufferImageCopy * b,OnFailCompareFunc onFail)3208 void checkEqual_VkBufferImageCopy(const VkBufferImageCopy* a, const VkBufferImageCopy* b,
3209                                   OnFailCompareFunc onFail) {
3210     if (!((a->bufferOffset) == (b->bufferOffset))) {
3211         onFail("a->bufferOffset (Error: Value not equal)");
3212     };
3213     if (!((a->bufferRowLength) == (b->bufferRowLength))) {
3214         onFail("a->bufferRowLength (Error: Value not equal)");
3215     };
3216     if (!((a->bufferImageHeight) == (b->bufferImageHeight))) {
3217         onFail("a->bufferImageHeight (Error: Value not equal)");
3218     };
3219     checkEqual_VkImageSubresourceLayers(&a->imageSubresource, &b->imageSubresource, onFail);
3220     checkEqual_VkOffset3D(&a->imageOffset, &b->imageOffset, onFail);
3221     checkEqual_VkExtent3D(&a->imageExtent, &b->imageExtent, onFail);
3222 }
3223 
checkEqual_VkClearColorValue(const VkClearColorValue * a,const VkClearColorValue * b,OnFailCompareFunc onFail)3224 void checkEqual_VkClearColorValue(const VkClearColorValue* a, const VkClearColorValue* b,
3225                                   OnFailCompareFunc onFail) {
3226     if (!((memcmp(a->float32, b->float32, 4 * sizeof(float)) == 0))) {
3227         onFail("a->float32 (Error: Unequal static array)");
3228     };
3229     if (!((memcmp(a->int32, b->int32, 4 * sizeof(int32_t)) == 0))) {
3230         onFail("a->int32 (Error: Unequal static array)");
3231     };
3232     if (!((memcmp(a->uint32, b->uint32, 4 * sizeof(uint32_t)) == 0))) {
3233         onFail("a->uint32 (Error: Unequal static array)");
3234     };
3235 }
3236 
checkEqual_VkClearDepthStencilValue(const VkClearDepthStencilValue * a,const VkClearDepthStencilValue * b,OnFailCompareFunc onFail)3237 void checkEqual_VkClearDepthStencilValue(const VkClearDepthStencilValue* a,
3238                                          const VkClearDepthStencilValue* b,
3239                                          OnFailCompareFunc onFail) {
3240     if (!((a->depth) == (b->depth))) {
3241         onFail("a->depth (Error: Value not equal)");
3242     };
3243     if (!((a->stencil) == (b->stencil))) {
3244         onFail("a->stencil (Error: Value not equal)");
3245     };
3246 }
3247 
checkEqual_VkClearValue(const VkClearValue * a,const VkClearValue * b,OnFailCompareFunc onFail)3248 void checkEqual_VkClearValue(const VkClearValue* a, const VkClearValue* b,
3249                              OnFailCompareFunc onFail) {
3250     checkEqual_VkClearColorValue(&a->color, &b->color, onFail);
3251     checkEqual_VkClearDepthStencilValue(&a->depthStencil, &b->depthStencil, onFail);
3252 }
3253 
checkEqual_VkClearAttachment(const VkClearAttachment * a,const VkClearAttachment * b,OnFailCompareFunc onFail)3254 void checkEqual_VkClearAttachment(const VkClearAttachment* a, const VkClearAttachment* b,
3255                                   OnFailCompareFunc onFail) {
3256     if (!((a->aspectMask) == (b->aspectMask))) {
3257         onFail("a->aspectMask (Error: Value not equal)");
3258     };
3259     if (!((a->colorAttachment) == (b->colorAttachment))) {
3260         onFail("a->colorAttachment (Error: Value not equal)");
3261     };
3262     checkEqual_VkClearValue(&a->clearValue, &b->clearValue, onFail);
3263 }
3264 
checkEqual_VkClearRect(const VkClearRect * a,const VkClearRect * b,OnFailCompareFunc onFail)3265 void checkEqual_VkClearRect(const VkClearRect* a, const VkClearRect* b, OnFailCompareFunc onFail) {
3266     checkEqual_VkRect2D(&a->rect, &b->rect, onFail);
3267     if (!((a->baseArrayLayer) == (b->baseArrayLayer))) {
3268         onFail("a->baseArrayLayer (Error: Value not equal)");
3269     };
3270     if (!((a->layerCount) == (b->layerCount))) {
3271         onFail("a->layerCount (Error: Value not equal)");
3272     };
3273 }
3274 
checkEqual_VkImageBlit(const VkImageBlit * a,const VkImageBlit * b,OnFailCompareFunc onFail)3275 void checkEqual_VkImageBlit(const VkImageBlit* a, const VkImageBlit* b, OnFailCompareFunc onFail) {
3276     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
3277     if (!((2) == (2))) {
3278         onFail("a->srcOffsets (Error: Lengths not equal)");
3279     };
3280     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3281         checkEqual_VkOffset3D(a->srcOffsets + i, b->srcOffsets + i, onFail);
3282     }
3283     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
3284     if (!((2) == (2))) {
3285         onFail("a->dstOffsets (Error: Lengths not equal)");
3286     };
3287     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3288         checkEqual_VkOffset3D(a->dstOffsets + i, b->dstOffsets + i, onFail);
3289     }
3290 }
3291 
checkEqual_VkImageCopy(const VkImageCopy * a,const VkImageCopy * b,OnFailCompareFunc onFail)3292 void checkEqual_VkImageCopy(const VkImageCopy* a, const VkImageCopy* b, OnFailCompareFunc onFail) {
3293     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
3294     checkEqual_VkOffset3D(&a->srcOffset, &b->srcOffset, onFail);
3295     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
3296     checkEqual_VkOffset3D(&a->dstOffset, &b->dstOffset, onFail);
3297     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
3298 }
3299 
checkEqual_VkImageResolve(const VkImageResolve * a,const VkImageResolve * b,OnFailCompareFunc onFail)3300 void checkEqual_VkImageResolve(const VkImageResolve* a, const VkImageResolve* b,
3301                                OnFailCompareFunc onFail) {
3302     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
3303     checkEqual_VkOffset3D(&a->srcOffset, &b->srcOffset, onFail);
3304     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
3305     checkEqual_VkOffset3D(&a->dstOffset, &b->dstOffset, onFail);
3306     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
3307 }
3308 
checkEqual_VkRenderPassBeginInfo(const VkRenderPassBeginInfo * a,const VkRenderPassBeginInfo * b,OnFailCompareFunc onFail)3309 void checkEqual_VkRenderPassBeginInfo(const VkRenderPassBeginInfo* a,
3310                                       const VkRenderPassBeginInfo* b, OnFailCompareFunc onFail) {
3311     if (!((a->sType) == (b->sType))) {
3312         onFail("a->sType (Error: Value not equal)");
3313     };
3314     if (a->pNext) {
3315         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3316     }
3317     if (!((a->renderPass) == (b->renderPass))) {
3318         onFail("a->renderPass (Error: Value not equal)");
3319     };
3320     if (!((a->framebuffer) == (b->framebuffer))) {
3321         onFail("a->framebuffer (Error: Value not equal)");
3322     };
3323     checkEqual_VkRect2D(&a->renderArea, &b->renderArea, onFail);
3324     if (!((a->clearValueCount) == (b->clearValueCount))) {
3325         onFail("a->clearValueCount (Error: Value not equal)");
3326     };
3327     if (!((!(a->pClearValues) && !(b->pClearValues)) || ((a->pClearValues) && (b->pClearValues)))) {
3328         onFail("a->pClearValues (Error: Mismatch in optional field)");
3329     };
3330     if (a->pClearValues && b->pClearValues) {
3331         if ((a->pClearValues) && (b->pClearValues)) {
3332             if (!((a->clearValueCount) == (b->clearValueCount))) {
3333                 onFail("a->pClearValues (Error: Lengths not equal)");
3334             };
3335             if ((a->clearValueCount) == (b->clearValueCount)) {
3336                 if (a) {
3337                     for (uint32_t i = 0; i < (uint32_t)a->clearValueCount; ++i) {
3338                         checkEqual_VkClearValue(a->pClearValues + i, b->pClearValues + i, onFail);
3339                     }
3340                 }
3341             }
3342         }
3343     }
3344 }
3345 
3346 #endif
3347 #ifdef VK_VERSION_1_1
checkEqual_VkPhysicalDeviceSubgroupProperties(const VkPhysicalDeviceSubgroupProperties * a,const VkPhysicalDeviceSubgroupProperties * b,OnFailCompareFunc onFail)3348 void checkEqual_VkPhysicalDeviceSubgroupProperties(const VkPhysicalDeviceSubgroupProperties* a,
3349                                                    const VkPhysicalDeviceSubgroupProperties* b,
3350                                                    OnFailCompareFunc onFail) {
3351     if (!((a->sType) == (b->sType))) {
3352         onFail("a->sType (Error: Value not equal)");
3353     };
3354     if (a->pNext) {
3355         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3356     }
3357     if (!((a->subgroupSize) == (b->subgroupSize))) {
3358         onFail("a->subgroupSize (Error: Value not equal)");
3359     };
3360     if (!((a->supportedStages) == (b->supportedStages))) {
3361         onFail("a->supportedStages (Error: Value not equal)");
3362     };
3363     if (!((a->supportedOperations) == (b->supportedOperations))) {
3364         onFail("a->supportedOperations (Error: Value not equal)");
3365     };
3366     if (!((a->quadOperationsInAllStages) == (b->quadOperationsInAllStages))) {
3367         onFail("a->quadOperationsInAllStages (Error: Value not equal)");
3368     };
3369 }
3370 
checkEqual_VkBindBufferMemoryInfo(const VkBindBufferMemoryInfo * a,const VkBindBufferMemoryInfo * b,OnFailCompareFunc onFail)3371 void checkEqual_VkBindBufferMemoryInfo(const VkBindBufferMemoryInfo* a,
3372                                        const VkBindBufferMemoryInfo* b, OnFailCompareFunc onFail) {
3373     if (!((a->sType) == (b->sType))) {
3374         onFail("a->sType (Error: Value not equal)");
3375     };
3376     if (a->pNext) {
3377         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3378     }
3379     if (!((a->buffer) == (b->buffer))) {
3380         onFail("a->buffer (Error: Value not equal)");
3381     };
3382     if (!((a->memory) == (b->memory))) {
3383         onFail("a->memory (Error: Value not equal)");
3384     };
3385     if (!((a->memoryOffset) == (b->memoryOffset))) {
3386         onFail("a->memoryOffset (Error: Value not equal)");
3387     };
3388 }
3389 
checkEqual_VkBindImageMemoryInfo(const VkBindImageMemoryInfo * a,const VkBindImageMemoryInfo * b,OnFailCompareFunc onFail)3390 void checkEqual_VkBindImageMemoryInfo(const VkBindImageMemoryInfo* a,
3391                                       const VkBindImageMemoryInfo* b, OnFailCompareFunc onFail) {
3392     if (!((a->sType) == (b->sType))) {
3393         onFail("a->sType (Error: Value not equal)");
3394     };
3395     if (a->pNext) {
3396         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3397     }
3398     if (!((a->image) == (b->image))) {
3399         onFail("a->image (Error: Value not equal)");
3400     };
3401     if (!((a->memory) == (b->memory))) {
3402         onFail("a->memory (Error: Value not equal)");
3403     };
3404     if (!((a->memoryOffset) == (b->memoryOffset))) {
3405         onFail("a->memoryOffset (Error: Value not equal)");
3406     };
3407 }
3408 
checkEqual_VkPhysicalDevice16BitStorageFeatures(const VkPhysicalDevice16BitStorageFeatures * a,const VkPhysicalDevice16BitStorageFeatures * b,OnFailCompareFunc onFail)3409 void checkEqual_VkPhysicalDevice16BitStorageFeatures(const VkPhysicalDevice16BitStorageFeatures* a,
3410                                                      const VkPhysicalDevice16BitStorageFeatures* b,
3411                                                      OnFailCompareFunc onFail) {
3412     if (!((a->sType) == (b->sType))) {
3413         onFail("a->sType (Error: Value not equal)");
3414     };
3415     if (a->pNext) {
3416         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3417     }
3418     if (!((a->storageBuffer16BitAccess) == (b->storageBuffer16BitAccess))) {
3419         onFail("a->storageBuffer16BitAccess (Error: Value not equal)");
3420     };
3421     if (!((a->uniformAndStorageBuffer16BitAccess) == (b->uniformAndStorageBuffer16BitAccess))) {
3422         onFail("a->uniformAndStorageBuffer16BitAccess (Error: Value not equal)");
3423     };
3424     if (!((a->storagePushConstant16) == (b->storagePushConstant16))) {
3425         onFail("a->storagePushConstant16 (Error: Value not equal)");
3426     };
3427     if (!((a->storageInputOutput16) == (b->storageInputOutput16))) {
3428         onFail("a->storageInputOutput16 (Error: Value not equal)");
3429     };
3430 }
3431 
checkEqual_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements * a,const VkMemoryDedicatedRequirements * b,OnFailCompareFunc onFail)3432 void checkEqual_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements* a,
3433                                               const VkMemoryDedicatedRequirements* b,
3434                                               OnFailCompareFunc onFail) {
3435     if (!((a->sType) == (b->sType))) {
3436         onFail("a->sType (Error: Value not equal)");
3437     };
3438     if (a->pNext) {
3439         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3440     }
3441     if (!((a->prefersDedicatedAllocation) == (b->prefersDedicatedAllocation))) {
3442         onFail("a->prefersDedicatedAllocation (Error: Value not equal)");
3443     };
3444     if (!((a->requiresDedicatedAllocation) == (b->requiresDedicatedAllocation))) {
3445         onFail("a->requiresDedicatedAllocation (Error: Value not equal)");
3446     };
3447 }
3448 
checkEqual_VkMemoryDedicatedAllocateInfo(const VkMemoryDedicatedAllocateInfo * a,const VkMemoryDedicatedAllocateInfo * b,OnFailCompareFunc onFail)3449 void checkEqual_VkMemoryDedicatedAllocateInfo(const VkMemoryDedicatedAllocateInfo* a,
3450                                               const VkMemoryDedicatedAllocateInfo* b,
3451                                               OnFailCompareFunc onFail) {
3452     if (!((a->sType) == (b->sType))) {
3453         onFail("a->sType (Error: Value not equal)");
3454     };
3455     if (a->pNext) {
3456         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3457     }
3458     if (!((a->image) == (b->image))) {
3459         onFail("a->image (Error: Value not equal)");
3460     };
3461     if (!((a->buffer) == (b->buffer))) {
3462         onFail("a->buffer (Error: Value not equal)");
3463     };
3464 }
3465 
checkEqual_VkMemoryAllocateFlagsInfo(const VkMemoryAllocateFlagsInfo * a,const VkMemoryAllocateFlagsInfo * b,OnFailCompareFunc onFail)3466 void checkEqual_VkMemoryAllocateFlagsInfo(const VkMemoryAllocateFlagsInfo* a,
3467                                           const VkMemoryAllocateFlagsInfo* b,
3468                                           OnFailCompareFunc onFail) {
3469     if (!((a->sType) == (b->sType))) {
3470         onFail("a->sType (Error: Value not equal)");
3471     };
3472     if (a->pNext) {
3473         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3474     }
3475     if (!((a->flags) == (b->flags))) {
3476         onFail("a->flags (Error: Value not equal)");
3477     };
3478     if (!((a->deviceMask) == (b->deviceMask))) {
3479         onFail("a->deviceMask (Error: Value not equal)");
3480     };
3481 }
3482 
checkEqual_VkDeviceGroupRenderPassBeginInfo(const VkDeviceGroupRenderPassBeginInfo * a,const VkDeviceGroupRenderPassBeginInfo * b,OnFailCompareFunc onFail)3483 void checkEqual_VkDeviceGroupRenderPassBeginInfo(const VkDeviceGroupRenderPassBeginInfo* a,
3484                                                  const VkDeviceGroupRenderPassBeginInfo* b,
3485                                                  OnFailCompareFunc onFail) {
3486     if (!((a->sType) == (b->sType))) {
3487         onFail("a->sType (Error: Value not equal)");
3488     };
3489     if (a->pNext) {
3490         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3491     }
3492     if (!((a->deviceMask) == (b->deviceMask))) {
3493         onFail("a->deviceMask (Error: Value not equal)");
3494     };
3495     if (!((a->deviceRenderAreaCount) == (b->deviceRenderAreaCount))) {
3496         onFail("a->deviceRenderAreaCount (Error: Value not equal)");
3497     };
3498     if ((a->pDeviceRenderAreas) && (b->pDeviceRenderAreas)) {
3499         if (!((a->deviceRenderAreaCount) == (b->deviceRenderAreaCount))) {
3500             onFail("a->pDeviceRenderAreas (Error: Lengths not equal)");
3501         };
3502         if ((a->deviceRenderAreaCount) == (b->deviceRenderAreaCount)) {
3503             if (a) {
3504                 for (uint32_t i = 0; i < (uint32_t)a->deviceRenderAreaCount; ++i) {
3505                     checkEqual_VkRect2D(a->pDeviceRenderAreas + i, b->pDeviceRenderAreas + i,
3506                                         onFail);
3507                 }
3508             }
3509         }
3510     }
3511 }
3512 
checkEqual_VkDeviceGroupCommandBufferBeginInfo(const VkDeviceGroupCommandBufferBeginInfo * a,const VkDeviceGroupCommandBufferBeginInfo * b,OnFailCompareFunc onFail)3513 void checkEqual_VkDeviceGroupCommandBufferBeginInfo(const VkDeviceGroupCommandBufferBeginInfo* a,
3514                                                     const VkDeviceGroupCommandBufferBeginInfo* b,
3515                                                     OnFailCompareFunc onFail) {
3516     if (!((a->sType) == (b->sType))) {
3517         onFail("a->sType (Error: Value not equal)");
3518     };
3519     if (a->pNext) {
3520         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3521     }
3522     if (!((a->deviceMask) == (b->deviceMask))) {
3523         onFail("a->deviceMask (Error: Value not equal)");
3524     };
3525 }
3526 
checkEqual_VkDeviceGroupSubmitInfo(const VkDeviceGroupSubmitInfo * a,const VkDeviceGroupSubmitInfo * b,OnFailCompareFunc onFail)3527 void checkEqual_VkDeviceGroupSubmitInfo(const VkDeviceGroupSubmitInfo* a,
3528                                         const VkDeviceGroupSubmitInfo* b,
3529                                         OnFailCompareFunc onFail) {
3530     if (!((a->sType) == (b->sType))) {
3531         onFail("a->sType (Error: Value not equal)");
3532     };
3533     if (a->pNext) {
3534         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3535     }
3536     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
3537         onFail("a->waitSemaphoreCount (Error: Value not equal)");
3538     };
3539     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
3540         onFail("a->pWaitSemaphoreDeviceIndices (Error: Lengths not equal)");
3541     };
3542     if (!((memcmp(a->pWaitSemaphoreDeviceIndices, b->pWaitSemaphoreDeviceIndices,
3543                   a->waitSemaphoreCount * sizeof(const uint32_t)) == 0))) {
3544         onFail("a->pWaitSemaphoreDeviceIndices (Error: Unequal dyn array)");
3545     };
3546     if (!((a->commandBufferCount) == (b->commandBufferCount))) {
3547         onFail("a->commandBufferCount (Error: Value not equal)");
3548     };
3549     if (!((a->commandBufferCount) == (b->commandBufferCount))) {
3550         onFail("a->pCommandBufferDeviceMasks (Error: Lengths not equal)");
3551     };
3552     if (!((memcmp(a->pCommandBufferDeviceMasks, b->pCommandBufferDeviceMasks,
3553                   a->commandBufferCount * sizeof(const uint32_t)) == 0))) {
3554         onFail("a->pCommandBufferDeviceMasks (Error: Unequal dyn array)");
3555     };
3556     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
3557         onFail("a->signalSemaphoreCount (Error: Value not equal)");
3558     };
3559     if (!((a->signalSemaphoreCount) == (b->signalSemaphoreCount))) {
3560         onFail("a->pSignalSemaphoreDeviceIndices (Error: Lengths not equal)");
3561     };
3562     if (!((memcmp(a->pSignalSemaphoreDeviceIndices, b->pSignalSemaphoreDeviceIndices,
3563                   a->signalSemaphoreCount * sizeof(const uint32_t)) == 0))) {
3564         onFail("a->pSignalSemaphoreDeviceIndices (Error: Unequal dyn array)");
3565     };
3566 }
3567 
checkEqual_VkDeviceGroupBindSparseInfo(const VkDeviceGroupBindSparseInfo * a,const VkDeviceGroupBindSparseInfo * b,OnFailCompareFunc onFail)3568 void checkEqual_VkDeviceGroupBindSparseInfo(const VkDeviceGroupBindSparseInfo* a,
3569                                             const VkDeviceGroupBindSparseInfo* b,
3570                                             OnFailCompareFunc onFail) {
3571     if (!((a->sType) == (b->sType))) {
3572         onFail("a->sType (Error: Value not equal)");
3573     };
3574     if (a->pNext) {
3575         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3576     }
3577     if (!((a->resourceDeviceIndex) == (b->resourceDeviceIndex))) {
3578         onFail("a->resourceDeviceIndex (Error: Value not equal)");
3579     };
3580     if (!((a->memoryDeviceIndex) == (b->memoryDeviceIndex))) {
3581         onFail("a->memoryDeviceIndex (Error: Value not equal)");
3582     };
3583 }
3584 
checkEqual_VkBindBufferMemoryDeviceGroupInfo(const VkBindBufferMemoryDeviceGroupInfo * a,const VkBindBufferMemoryDeviceGroupInfo * b,OnFailCompareFunc onFail)3585 void checkEqual_VkBindBufferMemoryDeviceGroupInfo(const VkBindBufferMemoryDeviceGroupInfo* a,
3586                                                   const VkBindBufferMemoryDeviceGroupInfo* b,
3587                                                   OnFailCompareFunc onFail) {
3588     if (!((a->sType) == (b->sType))) {
3589         onFail("a->sType (Error: Value not equal)");
3590     };
3591     if (a->pNext) {
3592         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3593     }
3594     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
3595         onFail("a->deviceIndexCount (Error: Value not equal)");
3596     };
3597     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
3598         onFail("a->pDeviceIndices (Error: Lengths not equal)");
3599     };
3600     if (!((memcmp(a->pDeviceIndices, b->pDeviceIndices,
3601                   a->deviceIndexCount * sizeof(const uint32_t)) == 0))) {
3602         onFail("a->pDeviceIndices (Error: Unequal dyn array)");
3603     };
3604 }
3605 
checkEqual_VkBindImageMemoryDeviceGroupInfo(const VkBindImageMemoryDeviceGroupInfo * a,const VkBindImageMemoryDeviceGroupInfo * b,OnFailCompareFunc onFail)3606 void checkEqual_VkBindImageMemoryDeviceGroupInfo(const VkBindImageMemoryDeviceGroupInfo* a,
3607                                                  const VkBindImageMemoryDeviceGroupInfo* b,
3608                                                  OnFailCompareFunc onFail) {
3609     if (!((a->sType) == (b->sType))) {
3610         onFail("a->sType (Error: Value not equal)");
3611     };
3612     if (a->pNext) {
3613         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3614     }
3615     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
3616         onFail("a->deviceIndexCount (Error: Value not equal)");
3617     };
3618     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
3619         onFail("a->pDeviceIndices (Error: Lengths not equal)");
3620     };
3621     if (!((memcmp(a->pDeviceIndices, b->pDeviceIndices,
3622                   a->deviceIndexCount * sizeof(const uint32_t)) == 0))) {
3623         onFail("a->pDeviceIndices (Error: Unequal dyn array)");
3624     };
3625     if (!((a->splitInstanceBindRegionCount) == (b->splitInstanceBindRegionCount))) {
3626         onFail("a->splitInstanceBindRegionCount (Error: Value not equal)");
3627     };
3628     if ((a->pSplitInstanceBindRegions) && (b->pSplitInstanceBindRegions)) {
3629         if (!((a->splitInstanceBindRegionCount) == (b->splitInstanceBindRegionCount))) {
3630             onFail("a->pSplitInstanceBindRegions (Error: Lengths not equal)");
3631         };
3632         if ((a->splitInstanceBindRegionCount) == (b->splitInstanceBindRegionCount)) {
3633             if (a) {
3634                 for (uint32_t i = 0; i < (uint32_t)a->splitInstanceBindRegionCount; ++i) {
3635                     checkEqual_VkRect2D(a->pSplitInstanceBindRegions + i,
3636                                         b->pSplitInstanceBindRegions + i, onFail);
3637                 }
3638             }
3639         }
3640     }
3641 }
3642 
checkEqual_VkPhysicalDeviceGroupProperties(const VkPhysicalDeviceGroupProperties * a,const VkPhysicalDeviceGroupProperties * b,OnFailCompareFunc onFail)3643 void checkEqual_VkPhysicalDeviceGroupProperties(const VkPhysicalDeviceGroupProperties* a,
3644                                                 const VkPhysicalDeviceGroupProperties* b,
3645                                                 OnFailCompareFunc onFail) {
3646     if (!((a->sType) == (b->sType))) {
3647         onFail("a->sType (Error: Value not equal)");
3648     };
3649     if (a->pNext) {
3650         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3651     }
3652     if (!((a->physicalDeviceCount) == (b->physicalDeviceCount))) {
3653         onFail("a->physicalDeviceCount (Error: Value not equal)");
3654     };
3655     if (!((memcmp(a->physicalDevices, b->physicalDevices,
3656                   VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice)) == 0))) {
3657         onFail("a->physicalDevices (Error: Unequal static array)");
3658     };
3659     if (!((a->subsetAllocation) == (b->subsetAllocation))) {
3660         onFail("a->subsetAllocation (Error: Value not equal)");
3661     };
3662 }
3663 
checkEqual_VkDeviceGroupDeviceCreateInfo(const VkDeviceGroupDeviceCreateInfo * a,const VkDeviceGroupDeviceCreateInfo * b,OnFailCompareFunc onFail)3664 void checkEqual_VkDeviceGroupDeviceCreateInfo(const VkDeviceGroupDeviceCreateInfo* a,
3665                                               const VkDeviceGroupDeviceCreateInfo* b,
3666                                               OnFailCompareFunc onFail) {
3667     if (!((a->sType) == (b->sType))) {
3668         onFail("a->sType (Error: Value not equal)");
3669     };
3670     if (a->pNext) {
3671         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3672     }
3673     if (!((a->physicalDeviceCount) == (b->physicalDeviceCount))) {
3674         onFail("a->physicalDeviceCount (Error: Value not equal)");
3675     };
3676     if (!((a->physicalDeviceCount) == (b->physicalDeviceCount))) {
3677         onFail("a->pPhysicalDevices (Error: Lengths not equal)");
3678     };
3679     if (!((memcmp(a->pPhysicalDevices, b->pPhysicalDevices,
3680                   a->physicalDeviceCount * sizeof(const VkPhysicalDevice)) == 0))) {
3681         onFail("a->pPhysicalDevices (Error: Unequal dyn array)");
3682     };
3683 }
3684 
checkEqual_VkBufferMemoryRequirementsInfo2(const VkBufferMemoryRequirementsInfo2 * a,const VkBufferMemoryRequirementsInfo2 * b,OnFailCompareFunc onFail)3685 void checkEqual_VkBufferMemoryRequirementsInfo2(const VkBufferMemoryRequirementsInfo2* a,
3686                                                 const VkBufferMemoryRequirementsInfo2* b,
3687                                                 OnFailCompareFunc onFail) {
3688     if (!((a->sType) == (b->sType))) {
3689         onFail("a->sType (Error: Value not equal)");
3690     };
3691     if (a->pNext) {
3692         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3693     }
3694     if (!((a->buffer) == (b->buffer))) {
3695         onFail("a->buffer (Error: Value not equal)");
3696     };
3697 }
3698 
checkEqual_VkImageMemoryRequirementsInfo2(const VkImageMemoryRequirementsInfo2 * a,const VkImageMemoryRequirementsInfo2 * b,OnFailCompareFunc onFail)3699 void checkEqual_VkImageMemoryRequirementsInfo2(const VkImageMemoryRequirementsInfo2* a,
3700                                                const VkImageMemoryRequirementsInfo2* b,
3701                                                OnFailCompareFunc onFail) {
3702     if (!((a->sType) == (b->sType))) {
3703         onFail("a->sType (Error: Value not equal)");
3704     };
3705     if (a->pNext) {
3706         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3707     }
3708     if (!((a->image) == (b->image))) {
3709         onFail("a->image (Error: Value not equal)");
3710     };
3711 }
3712 
checkEqual_VkImageSparseMemoryRequirementsInfo2(const VkImageSparseMemoryRequirementsInfo2 * a,const VkImageSparseMemoryRequirementsInfo2 * b,OnFailCompareFunc onFail)3713 void checkEqual_VkImageSparseMemoryRequirementsInfo2(const VkImageSparseMemoryRequirementsInfo2* a,
3714                                                      const VkImageSparseMemoryRequirementsInfo2* b,
3715                                                      OnFailCompareFunc onFail) {
3716     if (!((a->sType) == (b->sType))) {
3717         onFail("a->sType (Error: Value not equal)");
3718     };
3719     if (a->pNext) {
3720         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3721     }
3722     if (!((a->image) == (b->image))) {
3723         onFail("a->image (Error: Value not equal)");
3724     };
3725 }
3726 
checkEqual_VkMemoryRequirements2(const VkMemoryRequirements2 * a,const VkMemoryRequirements2 * b,OnFailCompareFunc onFail)3727 void checkEqual_VkMemoryRequirements2(const VkMemoryRequirements2* a,
3728                                       const VkMemoryRequirements2* b, OnFailCompareFunc onFail) {
3729     if (!((a->sType) == (b->sType))) {
3730         onFail("a->sType (Error: Value not equal)");
3731     };
3732     if (a->pNext) {
3733         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3734     }
3735     checkEqual_VkMemoryRequirements(&a->memoryRequirements, &b->memoryRequirements, onFail);
3736 }
3737 
checkEqual_VkSparseImageMemoryRequirements2(const VkSparseImageMemoryRequirements2 * a,const VkSparseImageMemoryRequirements2 * b,OnFailCompareFunc onFail)3738 void checkEqual_VkSparseImageMemoryRequirements2(const VkSparseImageMemoryRequirements2* a,
3739                                                  const VkSparseImageMemoryRequirements2* b,
3740                                                  OnFailCompareFunc onFail) {
3741     if (!((a->sType) == (b->sType))) {
3742         onFail("a->sType (Error: Value not equal)");
3743     };
3744     if (a->pNext) {
3745         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3746     }
3747     checkEqual_VkSparseImageMemoryRequirements(&a->memoryRequirements, &b->memoryRequirements,
3748                                                onFail);
3749 }
3750 
checkEqual_VkPhysicalDeviceFeatures2(const VkPhysicalDeviceFeatures2 * a,const VkPhysicalDeviceFeatures2 * b,OnFailCompareFunc onFail)3751 void checkEqual_VkPhysicalDeviceFeatures2(const VkPhysicalDeviceFeatures2* a,
3752                                           const VkPhysicalDeviceFeatures2* b,
3753                                           OnFailCompareFunc onFail) {
3754     if (!((a->sType) == (b->sType))) {
3755         onFail("a->sType (Error: Value not equal)");
3756     };
3757     if (a->pNext) {
3758         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3759     }
3760     checkEqual_VkPhysicalDeviceFeatures(&a->features, &b->features, onFail);
3761 }
3762 
checkEqual_VkPhysicalDeviceProperties2(const VkPhysicalDeviceProperties2 * a,const VkPhysicalDeviceProperties2 * b,OnFailCompareFunc onFail)3763 void checkEqual_VkPhysicalDeviceProperties2(const VkPhysicalDeviceProperties2* a,
3764                                             const VkPhysicalDeviceProperties2* b,
3765                                             OnFailCompareFunc onFail) {
3766     if (!((a->sType) == (b->sType))) {
3767         onFail("a->sType (Error: Value not equal)");
3768     };
3769     if (a->pNext) {
3770         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3771     }
3772     checkEqual_VkPhysicalDeviceProperties(&a->properties, &b->properties, onFail);
3773 }
3774 
checkEqual_VkFormatProperties2(const VkFormatProperties2 * a,const VkFormatProperties2 * b,OnFailCompareFunc onFail)3775 void checkEqual_VkFormatProperties2(const VkFormatProperties2* a, const VkFormatProperties2* b,
3776                                     OnFailCompareFunc onFail) {
3777     if (!((a->sType) == (b->sType))) {
3778         onFail("a->sType (Error: Value not equal)");
3779     };
3780     if (a->pNext) {
3781         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3782     }
3783     checkEqual_VkFormatProperties(&a->formatProperties, &b->formatProperties, onFail);
3784 }
3785 
checkEqual_VkImageFormatProperties2(const VkImageFormatProperties2 * a,const VkImageFormatProperties2 * b,OnFailCompareFunc onFail)3786 void checkEqual_VkImageFormatProperties2(const VkImageFormatProperties2* a,
3787                                          const VkImageFormatProperties2* b,
3788                                          OnFailCompareFunc onFail) {
3789     if (!((a->sType) == (b->sType))) {
3790         onFail("a->sType (Error: Value not equal)");
3791     };
3792     if (a->pNext) {
3793         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3794     }
3795     checkEqual_VkImageFormatProperties(&a->imageFormatProperties, &b->imageFormatProperties,
3796                                        onFail);
3797 }
3798 
checkEqual_VkPhysicalDeviceImageFormatInfo2(const VkPhysicalDeviceImageFormatInfo2 * a,const VkPhysicalDeviceImageFormatInfo2 * b,OnFailCompareFunc onFail)3799 void checkEqual_VkPhysicalDeviceImageFormatInfo2(const VkPhysicalDeviceImageFormatInfo2* a,
3800                                                  const VkPhysicalDeviceImageFormatInfo2* b,
3801                                                  OnFailCompareFunc onFail) {
3802     if (!((a->sType) == (b->sType))) {
3803         onFail("a->sType (Error: Value not equal)");
3804     };
3805     if (a->pNext) {
3806         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3807     }
3808     if (!((a->format) == (b->format))) {
3809         onFail("a->format (Error: Value not equal)");
3810     };
3811     if (!((a->type) == (b->type))) {
3812         onFail("a->type (Error: Value not equal)");
3813     };
3814     if (!((a->tiling) == (b->tiling))) {
3815         onFail("a->tiling (Error: Value not equal)");
3816     };
3817     if (!((a->usage) == (b->usage))) {
3818         onFail("a->usage (Error: Value not equal)");
3819     };
3820     if (!((a->flags) == (b->flags))) {
3821         onFail("a->flags (Error: Value not equal)");
3822     };
3823 }
3824 
checkEqual_VkQueueFamilyProperties2(const VkQueueFamilyProperties2 * a,const VkQueueFamilyProperties2 * b,OnFailCompareFunc onFail)3825 void checkEqual_VkQueueFamilyProperties2(const VkQueueFamilyProperties2* a,
3826                                          const VkQueueFamilyProperties2* b,
3827                                          OnFailCompareFunc onFail) {
3828     if (!((a->sType) == (b->sType))) {
3829         onFail("a->sType (Error: Value not equal)");
3830     };
3831     if (a->pNext) {
3832         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3833     }
3834     checkEqual_VkQueueFamilyProperties(&a->queueFamilyProperties, &b->queueFamilyProperties,
3835                                        onFail);
3836 }
3837 
checkEqual_VkPhysicalDeviceMemoryProperties2(const VkPhysicalDeviceMemoryProperties2 * a,const VkPhysicalDeviceMemoryProperties2 * b,OnFailCompareFunc onFail)3838 void checkEqual_VkPhysicalDeviceMemoryProperties2(const VkPhysicalDeviceMemoryProperties2* a,
3839                                                   const VkPhysicalDeviceMemoryProperties2* b,
3840                                                   OnFailCompareFunc onFail) {
3841     if (!((a->sType) == (b->sType))) {
3842         onFail("a->sType (Error: Value not equal)");
3843     };
3844     if (a->pNext) {
3845         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3846     }
3847     checkEqual_VkPhysicalDeviceMemoryProperties(&a->memoryProperties, &b->memoryProperties, onFail);
3848 }
3849 
checkEqual_VkSparseImageFormatProperties2(const VkSparseImageFormatProperties2 * a,const VkSparseImageFormatProperties2 * b,OnFailCompareFunc onFail)3850 void checkEqual_VkSparseImageFormatProperties2(const VkSparseImageFormatProperties2* a,
3851                                                const VkSparseImageFormatProperties2* b,
3852                                                OnFailCompareFunc onFail) {
3853     if (!((a->sType) == (b->sType))) {
3854         onFail("a->sType (Error: Value not equal)");
3855     };
3856     if (a->pNext) {
3857         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3858     }
3859     checkEqual_VkSparseImageFormatProperties(&a->properties, &b->properties, onFail);
3860 }
3861 
checkEqual_VkPhysicalDeviceSparseImageFormatInfo2(const VkPhysicalDeviceSparseImageFormatInfo2 * a,const VkPhysicalDeviceSparseImageFormatInfo2 * b,OnFailCompareFunc onFail)3862 void checkEqual_VkPhysicalDeviceSparseImageFormatInfo2(
3863     const VkPhysicalDeviceSparseImageFormatInfo2* a,
3864     const VkPhysicalDeviceSparseImageFormatInfo2* b, OnFailCompareFunc onFail) {
3865     if (!((a->sType) == (b->sType))) {
3866         onFail("a->sType (Error: Value not equal)");
3867     };
3868     if (a->pNext) {
3869         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3870     }
3871     if (!((a->format) == (b->format))) {
3872         onFail("a->format (Error: Value not equal)");
3873     };
3874     if (!((a->type) == (b->type))) {
3875         onFail("a->type (Error: Value not equal)");
3876     };
3877     if (!((a->samples) == (b->samples))) {
3878         onFail("a->samples (Error: Value not equal)");
3879     };
3880     if (!((a->usage) == (b->usage))) {
3881         onFail("a->usage (Error: Value not equal)");
3882     };
3883     if (!((a->tiling) == (b->tiling))) {
3884         onFail("a->tiling (Error: Value not equal)");
3885     };
3886 }
3887 
checkEqual_VkPhysicalDevicePointClippingProperties(const VkPhysicalDevicePointClippingProperties * a,const VkPhysicalDevicePointClippingProperties * b,OnFailCompareFunc onFail)3888 void checkEqual_VkPhysicalDevicePointClippingProperties(
3889     const VkPhysicalDevicePointClippingProperties* a,
3890     const VkPhysicalDevicePointClippingProperties* b, OnFailCompareFunc onFail) {
3891     if (!((a->sType) == (b->sType))) {
3892         onFail("a->sType (Error: Value not equal)");
3893     };
3894     if (a->pNext) {
3895         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3896     }
3897     if (!((a->pointClippingBehavior) == (b->pointClippingBehavior))) {
3898         onFail("a->pointClippingBehavior (Error: Value not equal)");
3899     };
3900 }
3901 
checkEqual_VkInputAttachmentAspectReference(const VkInputAttachmentAspectReference * a,const VkInputAttachmentAspectReference * b,OnFailCompareFunc onFail)3902 void checkEqual_VkInputAttachmentAspectReference(const VkInputAttachmentAspectReference* a,
3903                                                  const VkInputAttachmentAspectReference* b,
3904                                                  OnFailCompareFunc onFail) {
3905     if (!((a->subpass) == (b->subpass))) {
3906         onFail("a->subpass (Error: Value not equal)");
3907     };
3908     if (!((a->inputAttachmentIndex) == (b->inputAttachmentIndex))) {
3909         onFail("a->inputAttachmentIndex (Error: Value not equal)");
3910     };
3911     if (!((a->aspectMask) == (b->aspectMask))) {
3912         onFail("a->aspectMask (Error: Value not equal)");
3913     };
3914 }
3915 
checkEqual_VkRenderPassInputAttachmentAspectCreateInfo(const VkRenderPassInputAttachmentAspectCreateInfo * a,const VkRenderPassInputAttachmentAspectCreateInfo * b,OnFailCompareFunc onFail)3916 void checkEqual_VkRenderPassInputAttachmentAspectCreateInfo(
3917     const VkRenderPassInputAttachmentAspectCreateInfo* a,
3918     const VkRenderPassInputAttachmentAspectCreateInfo* b, OnFailCompareFunc onFail) {
3919     if (!((a->sType) == (b->sType))) {
3920         onFail("a->sType (Error: Value not equal)");
3921     };
3922     if (a->pNext) {
3923         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3924     }
3925     if (!((a->aspectReferenceCount) == (b->aspectReferenceCount))) {
3926         onFail("a->aspectReferenceCount (Error: Value not equal)");
3927     };
3928     if ((a->pAspectReferences) && (b->pAspectReferences)) {
3929         if (!((a->aspectReferenceCount) == (b->aspectReferenceCount))) {
3930             onFail("a->pAspectReferences (Error: Lengths not equal)");
3931         };
3932         if ((a->aspectReferenceCount) == (b->aspectReferenceCount)) {
3933             if (a) {
3934                 for (uint32_t i = 0; i < (uint32_t)a->aspectReferenceCount; ++i) {
3935                     checkEqual_VkInputAttachmentAspectReference(a->pAspectReferences + i,
3936                                                                 b->pAspectReferences + i, onFail);
3937                 }
3938             }
3939         }
3940     }
3941 }
3942 
checkEqual_VkImageViewUsageCreateInfo(const VkImageViewUsageCreateInfo * a,const VkImageViewUsageCreateInfo * b,OnFailCompareFunc onFail)3943 void checkEqual_VkImageViewUsageCreateInfo(const VkImageViewUsageCreateInfo* a,
3944                                            const VkImageViewUsageCreateInfo* b,
3945                                            OnFailCompareFunc onFail) {
3946     if (!((a->sType) == (b->sType))) {
3947         onFail("a->sType (Error: Value not equal)");
3948     };
3949     if (a->pNext) {
3950         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3951     }
3952     if (!((a->usage) == (b->usage))) {
3953         onFail("a->usage (Error: Value not equal)");
3954     };
3955 }
3956 
checkEqual_VkPipelineTessellationDomainOriginStateCreateInfo(const VkPipelineTessellationDomainOriginStateCreateInfo * a,const VkPipelineTessellationDomainOriginStateCreateInfo * b,OnFailCompareFunc onFail)3957 void checkEqual_VkPipelineTessellationDomainOriginStateCreateInfo(
3958     const VkPipelineTessellationDomainOriginStateCreateInfo* a,
3959     const VkPipelineTessellationDomainOriginStateCreateInfo* b, OnFailCompareFunc onFail) {
3960     if (!((a->sType) == (b->sType))) {
3961         onFail("a->sType (Error: Value not equal)");
3962     };
3963     if (a->pNext) {
3964         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3965     }
3966     if (!((a->domainOrigin) == (b->domainOrigin))) {
3967         onFail("a->domainOrigin (Error: Value not equal)");
3968     };
3969 }
3970 
checkEqual_VkRenderPassMultiviewCreateInfo(const VkRenderPassMultiviewCreateInfo * a,const VkRenderPassMultiviewCreateInfo * b,OnFailCompareFunc onFail)3971 void checkEqual_VkRenderPassMultiviewCreateInfo(const VkRenderPassMultiviewCreateInfo* a,
3972                                                 const VkRenderPassMultiviewCreateInfo* b,
3973                                                 OnFailCompareFunc onFail) {
3974     if (!((a->sType) == (b->sType))) {
3975         onFail("a->sType (Error: Value not equal)");
3976     };
3977     if (a->pNext) {
3978         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
3979     }
3980     if (!((a->subpassCount) == (b->subpassCount))) {
3981         onFail("a->subpassCount (Error: Value not equal)");
3982     };
3983     if (!((a->subpassCount) == (b->subpassCount))) {
3984         onFail("a->pViewMasks (Error: Lengths not equal)");
3985     };
3986     if (!((memcmp(a->pViewMasks, b->pViewMasks, a->subpassCount * sizeof(const uint32_t)) == 0))) {
3987         onFail("a->pViewMasks (Error: Unequal dyn array)");
3988     };
3989     if (!((a->dependencyCount) == (b->dependencyCount))) {
3990         onFail("a->dependencyCount (Error: Value not equal)");
3991     };
3992     if (!((a->dependencyCount) == (b->dependencyCount))) {
3993         onFail("a->pViewOffsets (Error: Lengths not equal)");
3994     };
3995     if (!((memcmp(a->pViewOffsets, b->pViewOffsets, a->dependencyCount * sizeof(const int32_t)) ==
3996            0))) {
3997         onFail("a->pViewOffsets (Error: Unequal dyn array)");
3998     };
3999     if (!((a->correlationMaskCount) == (b->correlationMaskCount))) {
4000         onFail("a->correlationMaskCount (Error: Value not equal)");
4001     };
4002     if (!((a->correlationMaskCount) == (b->correlationMaskCount))) {
4003         onFail("a->pCorrelationMasks (Error: Lengths not equal)");
4004     };
4005     if (!((memcmp(a->pCorrelationMasks, b->pCorrelationMasks,
4006                   a->correlationMaskCount * sizeof(const uint32_t)) == 0))) {
4007         onFail("a->pCorrelationMasks (Error: Unequal dyn array)");
4008     };
4009 }
4010 
checkEqual_VkPhysicalDeviceMultiviewFeatures(const VkPhysicalDeviceMultiviewFeatures * a,const VkPhysicalDeviceMultiviewFeatures * b,OnFailCompareFunc onFail)4011 void checkEqual_VkPhysicalDeviceMultiviewFeatures(const VkPhysicalDeviceMultiviewFeatures* a,
4012                                                   const VkPhysicalDeviceMultiviewFeatures* b,
4013                                                   OnFailCompareFunc onFail) {
4014     if (!((a->sType) == (b->sType))) {
4015         onFail("a->sType (Error: Value not equal)");
4016     };
4017     if (a->pNext) {
4018         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4019     }
4020     if (!((a->multiview) == (b->multiview))) {
4021         onFail("a->multiview (Error: Value not equal)");
4022     };
4023     if (!((a->multiviewGeometryShader) == (b->multiviewGeometryShader))) {
4024         onFail("a->multiviewGeometryShader (Error: Value not equal)");
4025     };
4026     if (!((a->multiviewTessellationShader) == (b->multiviewTessellationShader))) {
4027         onFail("a->multiviewTessellationShader (Error: Value not equal)");
4028     };
4029 }
4030 
checkEqual_VkPhysicalDeviceMultiviewProperties(const VkPhysicalDeviceMultiviewProperties * a,const VkPhysicalDeviceMultiviewProperties * b,OnFailCompareFunc onFail)4031 void checkEqual_VkPhysicalDeviceMultiviewProperties(const VkPhysicalDeviceMultiviewProperties* a,
4032                                                     const VkPhysicalDeviceMultiviewProperties* b,
4033                                                     OnFailCompareFunc onFail) {
4034     if (!((a->sType) == (b->sType))) {
4035         onFail("a->sType (Error: Value not equal)");
4036     };
4037     if (a->pNext) {
4038         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4039     }
4040     if (!((a->maxMultiviewViewCount) == (b->maxMultiviewViewCount))) {
4041         onFail("a->maxMultiviewViewCount (Error: Value not equal)");
4042     };
4043     if (!((a->maxMultiviewInstanceIndex) == (b->maxMultiviewInstanceIndex))) {
4044         onFail("a->maxMultiviewInstanceIndex (Error: Value not equal)");
4045     };
4046 }
4047 
checkEqual_VkPhysicalDeviceVariablePointersFeatures(const VkPhysicalDeviceVariablePointersFeatures * a,const VkPhysicalDeviceVariablePointersFeatures * b,OnFailCompareFunc onFail)4048 void checkEqual_VkPhysicalDeviceVariablePointersFeatures(
4049     const VkPhysicalDeviceVariablePointersFeatures* a,
4050     const VkPhysicalDeviceVariablePointersFeatures* b, OnFailCompareFunc onFail) {
4051     if (!((a->sType) == (b->sType))) {
4052         onFail("a->sType (Error: Value not equal)");
4053     };
4054     if (a->pNext) {
4055         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4056     }
4057     if (!((a->variablePointersStorageBuffer) == (b->variablePointersStorageBuffer))) {
4058         onFail("a->variablePointersStorageBuffer (Error: Value not equal)");
4059     };
4060     if (!((a->variablePointers) == (b->variablePointers))) {
4061         onFail("a->variablePointers (Error: Value not equal)");
4062     };
4063 }
4064 
checkEqual_VkPhysicalDeviceProtectedMemoryFeatures(const VkPhysicalDeviceProtectedMemoryFeatures * a,const VkPhysicalDeviceProtectedMemoryFeatures * b,OnFailCompareFunc onFail)4065 void checkEqual_VkPhysicalDeviceProtectedMemoryFeatures(
4066     const VkPhysicalDeviceProtectedMemoryFeatures* a,
4067     const VkPhysicalDeviceProtectedMemoryFeatures* b, OnFailCompareFunc onFail) {
4068     if (!((a->sType) == (b->sType))) {
4069         onFail("a->sType (Error: Value not equal)");
4070     };
4071     if (a->pNext) {
4072         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4073     }
4074     if (!((a->protectedMemory) == (b->protectedMemory))) {
4075         onFail("a->protectedMemory (Error: Value not equal)");
4076     };
4077 }
4078 
checkEqual_VkPhysicalDeviceProtectedMemoryProperties(const VkPhysicalDeviceProtectedMemoryProperties * a,const VkPhysicalDeviceProtectedMemoryProperties * b,OnFailCompareFunc onFail)4079 void checkEqual_VkPhysicalDeviceProtectedMemoryProperties(
4080     const VkPhysicalDeviceProtectedMemoryProperties* a,
4081     const VkPhysicalDeviceProtectedMemoryProperties* b, OnFailCompareFunc onFail) {
4082     if (!((a->sType) == (b->sType))) {
4083         onFail("a->sType (Error: Value not equal)");
4084     };
4085     if (a->pNext) {
4086         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4087     }
4088     if (!((a->protectedNoFault) == (b->protectedNoFault))) {
4089         onFail("a->protectedNoFault (Error: Value not equal)");
4090     };
4091 }
4092 
checkEqual_VkDeviceQueueInfo2(const VkDeviceQueueInfo2 * a,const VkDeviceQueueInfo2 * b,OnFailCompareFunc onFail)4093 void checkEqual_VkDeviceQueueInfo2(const VkDeviceQueueInfo2* a, const VkDeviceQueueInfo2* b,
4094                                    OnFailCompareFunc onFail) {
4095     if (!((a->sType) == (b->sType))) {
4096         onFail("a->sType (Error: Value not equal)");
4097     };
4098     if (a->pNext) {
4099         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4100     }
4101     if (!((a->flags) == (b->flags))) {
4102         onFail("a->flags (Error: Value not equal)");
4103     };
4104     if (!((a->queueFamilyIndex) == (b->queueFamilyIndex))) {
4105         onFail("a->queueFamilyIndex (Error: Value not equal)");
4106     };
4107     if (!((a->queueIndex) == (b->queueIndex))) {
4108         onFail("a->queueIndex (Error: Value not equal)");
4109     };
4110 }
4111 
checkEqual_VkProtectedSubmitInfo(const VkProtectedSubmitInfo * a,const VkProtectedSubmitInfo * b,OnFailCompareFunc onFail)4112 void checkEqual_VkProtectedSubmitInfo(const VkProtectedSubmitInfo* a,
4113                                       const VkProtectedSubmitInfo* b, OnFailCompareFunc onFail) {
4114     if (!((a->sType) == (b->sType))) {
4115         onFail("a->sType (Error: Value not equal)");
4116     };
4117     if (a->pNext) {
4118         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4119     }
4120     if (!((a->protectedSubmit) == (b->protectedSubmit))) {
4121         onFail("a->protectedSubmit (Error: Value not equal)");
4122     };
4123 }
4124 
checkEqual_VkSamplerYcbcrConversionCreateInfo(const VkSamplerYcbcrConversionCreateInfo * a,const VkSamplerYcbcrConversionCreateInfo * b,OnFailCompareFunc onFail)4125 void checkEqual_VkSamplerYcbcrConversionCreateInfo(const VkSamplerYcbcrConversionCreateInfo* a,
4126                                                    const VkSamplerYcbcrConversionCreateInfo* b,
4127                                                    OnFailCompareFunc onFail) {
4128     if (!((a->sType) == (b->sType))) {
4129         onFail("a->sType (Error: Value not equal)");
4130     };
4131     if (a->pNext) {
4132         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4133     }
4134     if (!((a->format) == (b->format))) {
4135         onFail("a->format (Error: Value not equal)");
4136     };
4137     if (!((a->ycbcrModel) == (b->ycbcrModel))) {
4138         onFail("a->ycbcrModel (Error: Value not equal)");
4139     };
4140     if (!((a->ycbcrRange) == (b->ycbcrRange))) {
4141         onFail("a->ycbcrRange (Error: Value not equal)");
4142     };
4143     checkEqual_VkComponentMapping(&a->components, &b->components, onFail);
4144     if (!((a->xChromaOffset) == (b->xChromaOffset))) {
4145         onFail("a->xChromaOffset (Error: Value not equal)");
4146     };
4147     if (!((a->yChromaOffset) == (b->yChromaOffset))) {
4148         onFail("a->yChromaOffset (Error: Value not equal)");
4149     };
4150     if (!((a->chromaFilter) == (b->chromaFilter))) {
4151         onFail("a->chromaFilter (Error: Value not equal)");
4152     };
4153     if (!((a->forceExplicitReconstruction) == (b->forceExplicitReconstruction))) {
4154         onFail("a->forceExplicitReconstruction (Error: Value not equal)");
4155     };
4156 }
4157 
checkEqual_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo * a,const VkSamplerYcbcrConversionInfo * b,OnFailCompareFunc onFail)4158 void checkEqual_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo* a,
4159                                              const VkSamplerYcbcrConversionInfo* b,
4160                                              OnFailCompareFunc onFail) {
4161     if (!((a->sType) == (b->sType))) {
4162         onFail("a->sType (Error: Value not equal)");
4163     };
4164     if (a->pNext) {
4165         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4166     }
4167     if (!((a->conversion) == (b->conversion))) {
4168         onFail("a->conversion (Error: Value not equal)");
4169     };
4170 }
4171 
checkEqual_VkBindImagePlaneMemoryInfo(const VkBindImagePlaneMemoryInfo * a,const VkBindImagePlaneMemoryInfo * b,OnFailCompareFunc onFail)4172 void checkEqual_VkBindImagePlaneMemoryInfo(const VkBindImagePlaneMemoryInfo* a,
4173                                            const VkBindImagePlaneMemoryInfo* b,
4174                                            OnFailCompareFunc onFail) {
4175     if (!((a->sType) == (b->sType))) {
4176         onFail("a->sType (Error: Value not equal)");
4177     };
4178     if (a->pNext) {
4179         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4180     }
4181     if (!((a->planeAspect) == (b->planeAspect))) {
4182         onFail("a->planeAspect (Error: Value not equal)");
4183     };
4184 }
4185 
checkEqual_VkImagePlaneMemoryRequirementsInfo(const VkImagePlaneMemoryRequirementsInfo * a,const VkImagePlaneMemoryRequirementsInfo * b,OnFailCompareFunc onFail)4186 void checkEqual_VkImagePlaneMemoryRequirementsInfo(const VkImagePlaneMemoryRequirementsInfo* a,
4187                                                    const VkImagePlaneMemoryRequirementsInfo* b,
4188                                                    OnFailCompareFunc onFail) {
4189     if (!((a->sType) == (b->sType))) {
4190         onFail("a->sType (Error: Value not equal)");
4191     };
4192     if (a->pNext) {
4193         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4194     }
4195     if (!((a->planeAspect) == (b->planeAspect))) {
4196         onFail("a->planeAspect (Error: Value not equal)");
4197     };
4198 }
4199 
checkEqual_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const VkPhysicalDeviceSamplerYcbcrConversionFeatures * a,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * b,OnFailCompareFunc onFail)4200 void checkEqual_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
4201     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* a,
4202     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* b, OnFailCompareFunc onFail) {
4203     if (!((a->sType) == (b->sType))) {
4204         onFail("a->sType (Error: Value not equal)");
4205     };
4206     if (a->pNext) {
4207         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4208     }
4209     if (!((a->samplerYcbcrConversion) == (b->samplerYcbcrConversion))) {
4210         onFail("a->samplerYcbcrConversion (Error: Value not equal)");
4211     };
4212 }
4213 
checkEqual_VkSamplerYcbcrConversionImageFormatProperties(const VkSamplerYcbcrConversionImageFormatProperties * a,const VkSamplerYcbcrConversionImageFormatProperties * b,OnFailCompareFunc onFail)4214 void checkEqual_VkSamplerYcbcrConversionImageFormatProperties(
4215     const VkSamplerYcbcrConversionImageFormatProperties* a,
4216     const VkSamplerYcbcrConversionImageFormatProperties* b, OnFailCompareFunc onFail) {
4217     if (!((a->sType) == (b->sType))) {
4218         onFail("a->sType (Error: Value not equal)");
4219     };
4220     if (a->pNext) {
4221         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4222     }
4223     if (!((a->combinedImageSamplerDescriptorCount) == (b->combinedImageSamplerDescriptorCount))) {
4224         onFail("a->combinedImageSamplerDescriptorCount (Error: Value not equal)");
4225     };
4226 }
4227 
checkEqual_VkDescriptorUpdateTemplateEntry(const VkDescriptorUpdateTemplateEntry * a,const VkDescriptorUpdateTemplateEntry * b,OnFailCompareFunc onFail)4228 void checkEqual_VkDescriptorUpdateTemplateEntry(const VkDescriptorUpdateTemplateEntry* a,
4229                                                 const VkDescriptorUpdateTemplateEntry* b,
4230                                                 OnFailCompareFunc onFail) {
4231     if (!((a->dstBinding) == (b->dstBinding))) {
4232         onFail("a->dstBinding (Error: Value not equal)");
4233     };
4234     if (!((a->dstArrayElement) == (b->dstArrayElement))) {
4235         onFail("a->dstArrayElement (Error: Value not equal)");
4236     };
4237     if (!((a->descriptorCount) == (b->descriptorCount))) {
4238         onFail("a->descriptorCount (Error: Value not equal)");
4239     };
4240     if (!((a->descriptorType) == (b->descriptorType))) {
4241         onFail("a->descriptorType (Error: Value not equal)");
4242     };
4243     if (!((a->offset) == (b->offset))) {
4244         onFail("a->offset (Error: Value not equal)");
4245     };
4246     if (!((a->stride) == (b->stride))) {
4247         onFail("a->stride (Error: Value not equal)");
4248     };
4249 }
4250 
checkEqual_VkDescriptorUpdateTemplateCreateInfo(const VkDescriptorUpdateTemplateCreateInfo * a,const VkDescriptorUpdateTemplateCreateInfo * b,OnFailCompareFunc onFail)4251 void checkEqual_VkDescriptorUpdateTemplateCreateInfo(const VkDescriptorUpdateTemplateCreateInfo* a,
4252                                                      const VkDescriptorUpdateTemplateCreateInfo* b,
4253                                                      OnFailCompareFunc onFail) {
4254     if (!((a->sType) == (b->sType))) {
4255         onFail("a->sType (Error: Value not equal)");
4256     };
4257     if (a->pNext) {
4258         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4259     }
4260     if (!((a->flags) == (b->flags))) {
4261         onFail("a->flags (Error: Value not equal)");
4262     };
4263     if (!((a->descriptorUpdateEntryCount) == (b->descriptorUpdateEntryCount))) {
4264         onFail("a->descriptorUpdateEntryCount (Error: Value not equal)");
4265     };
4266     if ((a->pDescriptorUpdateEntries) && (b->pDescriptorUpdateEntries)) {
4267         if (!((a->descriptorUpdateEntryCount) == (b->descriptorUpdateEntryCount))) {
4268             onFail("a->pDescriptorUpdateEntries (Error: Lengths not equal)");
4269         };
4270         if ((a->descriptorUpdateEntryCount) == (b->descriptorUpdateEntryCount)) {
4271             if (a) {
4272                 for (uint32_t i = 0; i < (uint32_t)a->descriptorUpdateEntryCount; ++i) {
4273                     checkEqual_VkDescriptorUpdateTemplateEntry(
4274                         a->pDescriptorUpdateEntries + i, b->pDescriptorUpdateEntries + i, onFail);
4275                 }
4276             }
4277         }
4278     }
4279     if (!((a->templateType) == (b->templateType))) {
4280         onFail("a->templateType (Error: Value not equal)");
4281     };
4282     if (!((a->descriptorSetLayout) == (b->descriptorSetLayout))) {
4283         onFail("a->descriptorSetLayout (Error: Value not equal)");
4284     };
4285     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
4286         onFail("a->pipelineBindPoint (Error: Value not equal)");
4287     };
4288     if (!((a->pipelineLayout) == (b->pipelineLayout))) {
4289         onFail("a->pipelineLayout (Error: Value not equal)");
4290     };
4291     if (!((a->set) == (b->set))) {
4292         onFail("a->set (Error: Value not equal)");
4293     };
4294 }
4295 
checkEqual_VkExternalMemoryProperties(const VkExternalMemoryProperties * a,const VkExternalMemoryProperties * b,OnFailCompareFunc onFail)4296 void checkEqual_VkExternalMemoryProperties(const VkExternalMemoryProperties* a,
4297                                            const VkExternalMemoryProperties* b,
4298                                            OnFailCompareFunc onFail) {
4299     if (!((a->externalMemoryFeatures) == (b->externalMemoryFeatures))) {
4300         onFail("a->externalMemoryFeatures (Error: Value not equal)");
4301     };
4302     if (!((a->exportFromImportedHandleTypes) == (b->exportFromImportedHandleTypes))) {
4303         onFail("a->exportFromImportedHandleTypes (Error: Value not equal)");
4304     };
4305     if (!((a->compatibleHandleTypes) == (b->compatibleHandleTypes))) {
4306         onFail("a->compatibleHandleTypes (Error: Value not equal)");
4307     };
4308 }
4309 
checkEqual_VkPhysicalDeviceExternalImageFormatInfo(const VkPhysicalDeviceExternalImageFormatInfo * a,const VkPhysicalDeviceExternalImageFormatInfo * b,OnFailCompareFunc onFail)4310 void checkEqual_VkPhysicalDeviceExternalImageFormatInfo(
4311     const VkPhysicalDeviceExternalImageFormatInfo* a,
4312     const VkPhysicalDeviceExternalImageFormatInfo* b, OnFailCompareFunc onFail) {
4313     if (!((a->sType) == (b->sType))) {
4314         onFail("a->sType (Error: Value not equal)");
4315     };
4316     if (a->pNext) {
4317         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4318     }
4319     if (!((a->handleType) == (b->handleType))) {
4320         onFail("a->handleType (Error: Value not equal)");
4321     };
4322 }
4323 
checkEqual_VkExternalImageFormatProperties(const VkExternalImageFormatProperties * a,const VkExternalImageFormatProperties * b,OnFailCompareFunc onFail)4324 void checkEqual_VkExternalImageFormatProperties(const VkExternalImageFormatProperties* a,
4325                                                 const VkExternalImageFormatProperties* b,
4326                                                 OnFailCompareFunc onFail) {
4327     if (!((a->sType) == (b->sType))) {
4328         onFail("a->sType (Error: Value not equal)");
4329     };
4330     if (a->pNext) {
4331         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4332     }
4333     checkEqual_VkExternalMemoryProperties(&a->externalMemoryProperties,
4334                                           &b->externalMemoryProperties, onFail);
4335 }
4336 
checkEqual_VkPhysicalDeviceExternalBufferInfo(const VkPhysicalDeviceExternalBufferInfo * a,const VkPhysicalDeviceExternalBufferInfo * b,OnFailCompareFunc onFail)4337 void checkEqual_VkPhysicalDeviceExternalBufferInfo(const VkPhysicalDeviceExternalBufferInfo* a,
4338                                                    const VkPhysicalDeviceExternalBufferInfo* b,
4339                                                    OnFailCompareFunc onFail) {
4340     if (!((a->sType) == (b->sType))) {
4341         onFail("a->sType (Error: Value not equal)");
4342     };
4343     if (a->pNext) {
4344         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4345     }
4346     if (!((a->flags) == (b->flags))) {
4347         onFail("a->flags (Error: Value not equal)");
4348     };
4349     if (!((a->usage) == (b->usage))) {
4350         onFail("a->usage (Error: Value not equal)");
4351     };
4352     if (!((a->handleType) == (b->handleType))) {
4353         onFail("a->handleType (Error: Value not equal)");
4354     };
4355 }
4356 
checkEqual_VkExternalBufferProperties(const VkExternalBufferProperties * a,const VkExternalBufferProperties * b,OnFailCompareFunc onFail)4357 void checkEqual_VkExternalBufferProperties(const VkExternalBufferProperties* a,
4358                                            const VkExternalBufferProperties* b,
4359                                            OnFailCompareFunc onFail) {
4360     if (!((a->sType) == (b->sType))) {
4361         onFail("a->sType (Error: Value not equal)");
4362     };
4363     if (a->pNext) {
4364         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4365     }
4366     checkEqual_VkExternalMemoryProperties(&a->externalMemoryProperties,
4367                                           &b->externalMemoryProperties, onFail);
4368 }
4369 
checkEqual_VkPhysicalDeviceIDProperties(const VkPhysicalDeviceIDProperties * a,const VkPhysicalDeviceIDProperties * b,OnFailCompareFunc onFail)4370 void checkEqual_VkPhysicalDeviceIDProperties(const VkPhysicalDeviceIDProperties* a,
4371                                              const VkPhysicalDeviceIDProperties* b,
4372                                              OnFailCompareFunc onFail) {
4373     if (!((a->sType) == (b->sType))) {
4374         onFail("a->sType (Error: Value not equal)");
4375     };
4376     if (a->pNext) {
4377         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4378     }
4379     if (!((memcmp(a->deviceUUID, b->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
4380         onFail("a->deviceUUID (Error: Unequal static array)");
4381     };
4382     if (!((memcmp(a->driverUUID, b->driverUUID, VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
4383         onFail("a->driverUUID (Error: Unequal static array)");
4384     };
4385     if (!((memcmp(a->deviceLUID, b->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t)) == 0))) {
4386         onFail("a->deviceLUID (Error: Unequal static array)");
4387     };
4388     if (!((a->deviceNodeMask) == (b->deviceNodeMask))) {
4389         onFail("a->deviceNodeMask (Error: Value not equal)");
4390     };
4391     if (!((a->deviceLUIDValid) == (b->deviceLUIDValid))) {
4392         onFail("a->deviceLUIDValid (Error: Value not equal)");
4393     };
4394 }
4395 
checkEqual_VkExternalMemoryImageCreateInfo(const VkExternalMemoryImageCreateInfo * a,const VkExternalMemoryImageCreateInfo * b,OnFailCompareFunc onFail)4396 void checkEqual_VkExternalMemoryImageCreateInfo(const VkExternalMemoryImageCreateInfo* a,
4397                                                 const VkExternalMemoryImageCreateInfo* b,
4398                                                 OnFailCompareFunc onFail) {
4399     if (!((a->sType) == (b->sType))) {
4400         onFail("a->sType (Error: Value not equal)");
4401     };
4402     if (a->pNext) {
4403         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4404     }
4405     if (!((a->handleTypes) == (b->handleTypes))) {
4406         onFail("a->handleTypes (Error: Value not equal)");
4407     };
4408 }
4409 
checkEqual_VkExternalMemoryBufferCreateInfo(const VkExternalMemoryBufferCreateInfo * a,const VkExternalMemoryBufferCreateInfo * b,OnFailCompareFunc onFail)4410 void checkEqual_VkExternalMemoryBufferCreateInfo(const VkExternalMemoryBufferCreateInfo* a,
4411                                                  const VkExternalMemoryBufferCreateInfo* b,
4412                                                  OnFailCompareFunc onFail) {
4413     if (!((a->sType) == (b->sType))) {
4414         onFail("a->sType (Error: Value not equal)");
4415     };
4416     if (a->pNext) {
4417         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4418     }
4419     if (!((a->handleTypes) == (b->handleTypes))) {
4420         onFail("a->handleTypes (Error: Value not equal)");
4421     };
4422 }
4423 
checkEqual_VkExportMemoryAllocateInfo(const VkExportMemoryAllocateInfo * a,const VkExportMemoryAllocateInfo * b,OnFailCompareFunc onFail)4424 void checkEqual_VkExportMemoryAllocateInfo(const VkExportMemoryAllocateInfo* a,
4425                                            const VkExportMemoryAllocateInfo* b,
4426                                            OnFailCompareFunc onFail) {
4427     if (!((a->sType) == (b->sType))) {
4428         onFail("a->sType (Error: Value not equal)");
4429     };
4430     if (a->pNext) {
4431         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4432     }
4433     if (!((a->handleTypes) == (b->handleTypes))) {
4434         onFail("a->handleTypes (Error: Value not equal)");
4435     };
4436 }
4437 
checkEqual_VkPhysicalDeviceExternalFenceInfo(const VkPhysicalDeviceExternalFenceInfo * a,const VkPhysicalDeviceExternalFenceInfo * b,OnFailCompareFunc onFail)4438 void checkEqual_VkPhysicalDeviceExternalFenceInfo(const VkPhysicalDeviceExternalFenceInfo* a,
4439                                                   const VkPhysicalDeviceExternalFenceInfo* b,
4440                                                   OnFailCompareFunc onFail) {
4441     if (!((a->sType) == (b->sType))) {
4442         onFail("a->sType (Error: Value not equal)");
4443     };
4444     if (a->pNext) {
4445         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4446     }
4447     if (!((a->handleType) == (b->handleType))) {
4448         onFail("a->handleType (Error: Value not equal)");
4449     };
4450 }
4451 
checkEqual_VkExternalFenceProperties(const VkExternalFenceProperties * a,const VkExternalFenceProperties * b,OnFailCompareFunc onFail)4452 void checkEqual_VkExternalFenceProperties(const VkExternalFenceProperties* a,
4453                                           const VkExternalFenceProperties* b,
4454                                           OnFailCompareFunc onFail) {
4455     if (!((a->sType) == (b->sType))) {
4456         onFail("a->sType (Error: Value not equal)");
4457     };
4458     if (a->pNext) {
4459         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4460     }
4461     if (!((a->exportFromImportedHandleTypes) == (b->exportFromImportedHandleTypes))) {
4462         onFail("a->exportFromImportedHandleTypes (Error: Value not equal)");
4463     };
4464     if (!((a->compatibleHandleTypes) == (b->compatibleHandleTypes))) {
4465         onFail("a->compatibleHandleTypes (Error: Value not equal)");
4466     };
4467     if (!((a->externalFenceFeatures) == (b->externalFenceFeatures))) {
4468         onFail("a->externalFenceFeatures (Error: Value not equal)");
4469     };
4470 }
4471 
checkEqual_VkExportFenceCreateInfo(const VkExportFenceCreateInfo * a,const VkExportFenceCreateInfo * b,OnFailCompareFunc onFail)4472 void checkEqual_VkExportFenceCreateInfo(const VkExportFenceCreateInfo* a,
4473                                         const VkExportFenceCreateInfo* b,
4474                                         OnFailCompareFunc onFail) {
4475     if (!((a->sType) == (b->sType))) {
4476         onFail("a->sType (Error: Value not equal)");
4477     };
4478     if (a->pNext) {
4479         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4480     }
4481     if (!((a->handleTypes) == (b->handleTypes))) {
4482         onFail("a->handleTypes (Error: Value not equal)");
4483     };
4484 }
4485 
checkEqual_VkExportSemaphoreCreateInfo(const VkExportSemaphoreCreateInfo * a,const VkExportSemaphoreCreateInfo * b,OnFailCompareFunc onFail)4486 void checkEqual_VkExportSemaphoreCreateInfo(const VkExportSemaphoreCreateInfo* a,
4487                                             const VkExportSemaphoreCreateInfo* b,
4488                                             OnFailCompareFunc onFail) {
4489     if (!((a->sType) == (b->sType))) {
4490         onFail("a->sType (Error: Value not equal)");
4491     };
4492     if (a->pNext) {
4493         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4494     }
4495     if (!((a->handleTypes) == (b->handleTypes))) {
4496         onFail("a->handleTypes (Error: Value not equal)");
4497     };
4498 }
4499 
checkEqual_VkPhysicalDeviceExternalSemaphoreInfo(const VkPhysicalDeviceExternalSemaphoreInfo * a,const VkPhysicalDeviceExternalSemaphoreInfo * b,OnFailCompareFunc onFail)4500 void checkEqual_VkPhysicalDeviceExternalSemaphoreInfo(
4501     const VkPhysicalDeviceExternalSemaphoreInfo* a, const VkPhysicalDeviceExternalSemaphoreInfo* b,
4502     OnFailCompareFunc onFail) {
4503     if (!((a->sType) == (b->sType))) {
4504         onFail("a->sType (Error: Value not equal)");
4505     };
4506     if (a->pNext) {
4507         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4508     }
4509     if (!((a->handleType) == (b->handleType))) {
4510         onFail("a->handleType (Error: Value not equal)");
4511     };
4512 }
4513 
checkEqual_VkExternalSemaphoreProperties(const VkExternalSemaphoreProperties * a,const VkExternalSemaphoreProperties * b,OnFailCompareFunc onFail)4514 void checkEqual_VkExternalSemaphoreProperties(const VkExternalSemaphoreProperties* a,
4515                                               const VkExternalSemaphoreProperties* b,
4516                                               OnFailCompareFunc onFail) {
4517     if (!((a->sType) == (b->sType))) {
4518         onFail("a->sType (Error: Value not equal)");
4519     };
4520     if (a->pNext) {
4521         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4522     }
4523     if (!((a->exportFromImportedHandleTypes) == (b->exportFromImportedHandleTypes))) {
4524         onFail("a->exportFromImportedHandleTypes (Error: Value not equal)");
4525     };
4526     if (!((a->compatibleHandleTypes) == (b->compatibleHandleTypes))) {
4527         onFail("a->compatibleHandleTypes (Error: Value not equal)");
4528     };
4529     if (!((a->externalSemaphoreFeatures) == (b->externalSemaphoreFeatures))) {
4530         onFail("a->externalSemaphoreFeatures (Error: Value not equal)");
4531     };
4532 }
4533 
checkEqual_VkPhysicalDeviceMaintenance3Properties(const VkPhysicalDeviceMaintenance3Properties * a,const VkPhysicalDeviceMaintenance3Properties * b,OnFailCompareFunc onFail)4534 void checkEqual_VkPhysicalDeviceMaintenance3Properties(
4535     const VkPhysicalDeviceMaintenance3Properties* a,
4536     const VkPhysicalDeviceMaintenance3Properties* b, OnFailCompareFunc onFail) {
4537     if (!((a->sType) == (b->sType))) {
4538         onFail("a->sType (Error: Value not equal)");
4539     };
4540     if (a->pNext) {
4541         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4542     }
4543     if (!((a->maxPerSetDescriptors) == (b->maxPerSetDescriptors))) {
4544         onFail("a->maxPerSetDescriptors (Error: Value not equal)");
4545     };
4546     if (!((a->maxMemoryAllocationSize) == (b->maxMemoryAllocationSize))) {
4547         onFail("a->maxMemoryAllocationSize (Error: Value not equal)");
4548     };
4549 }
4550 
checkEqual_VkDescriptorSetLayoutSupport(const VkDescriptorSetLayoutSupport * a,const VkDescriptorSetLayoutSupport * b,OnFailCompareFunc onFail)4551 void checkEqual_VkDescriptorSetLayoutSupport(const VkDescriptorSetLayoutSupport* a,
4552                                              const VkDescriptorSetLayoutSupport* b,
4553                                              OnFailCompareFunc onFail) {
4554     if (!((a->sType) == (b->sType))) {
4555         onFail("a->sType (Error: Value not equal)");
4556     };
4557     if (a->pNext) {
4558         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4559     }
4560     if (!((a->supported) == (b->supported))) {
4561         onFail("a->supported (Error: Value not equal)");
4562     };
4563 }
4564 
checkEqual_VkPhysicalDeviceShaderDrawParametersFeatures(const VkPhysicalDeviceShaderDrawParametersFeatures * a,const VkPhysicalDeviceShaderDrawParametersFeatures * b,OnFailCompareFunc onFail)4565 void checkEqual_VkPhysicalDeviceShaderDrawParametersFeatures(
4566     const VkPhysicalDeviceShaderDrawParametersFeatures* a,
4567     const VkPhysicalDeviceShaderDrawParametersFeatures* b, OnFailCompareFunc onFail) {
4568     if (!((a->sType) == (b->sType))) {
4569         onFail("a->sType (Error: Value not equal)");
4570     };
4571     if (a->pNext) {
4572         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4573     }
4574     if (!((a->shaderDrawParameters) == (b->shaderDrawParameters))) {
4575         onFail("a->shaderDrawParameters (Error: Value not equal)");
4576     };
4577 }
4578 
4579 #endif
4580 #ifdef VK_VERSION_1_2
checkEqual_VkPhysicalDeviceVulkan11Features(const VkPhysicalDeviceVulkan11Features * a,const VkPhysicalDeviceVulkan11Features * b,OnFailCompareFunc onFail)4581 void checkEqual_VkPhysicalDeviceVulkan11Features(const VkPhysicalDeviceVulkan11Features* a,
4582                                                  const VkPhysicalDeviceVulkan11Features* b,
4583                                                  OnFailCompareFunc onFail) {
4584     if (!((a->sType) == (b->sType))) {
4585         onFail("a->sType (Error: Value not equal)");
4586     };
4587     if (a->pNext) {
4588         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4589     }
4590     if (!((a->storageBuffer16BitAccess) == (b->storageBuffer16BitAccess))) {
4591         onFail("a->storageBuffer16BitAccess (Error: Value not equal)");
4592     };
4593     if (!((a->uniformAndStorageBuffer16BitAccess) == (b->uniformAndStorageBuffer16BitAccess))) {
4594         onFail("a->uniformAndStorageBuffer16BitAccess (Error: Value not equal)");
4595     };
4596     if (!((a->storagePushConstant16) == (b->storagePushConstant16))) {
4597         onFail("a->storagePushConstant16 (Error: Value not equal)");
4598     };
4599     if (!((a->storageInputOutput16) == (b->storageInputOutput16))) {
4600         onFail("a->storageInputOutput16 (Error: Value not equal)");
4601     };
4602     if (!((a->multiview) == (b->multiview))) {
4603         onFail("a->multiview (Error: Value not equal)");
4604     };
4605     if (!((a->multiviewGeometryShader) == (b->multiviewGeometryShader))) {
4606         onFail("a->multiviewGeometryShader (Error: Value not equal)");
4607     };
4608     if (!((a->multiviewTessellationShader) == (b->multiviewTessellationShader))) {
4609         onFail("a->multiviewTessellationShader (Error: Value not equal)");
4610     };
4611     if (!((a->variablePointersStorageBuffer) == (b->variablePointersStorageBuffer))) {
4612         onFail("a->variablePointersStorageBuffer (Error: Value not equal)");
4613     };
4614     if (!((a->variablePointers) == (b->variablePointers))) {
4615         onFail("a->variablePointers (Error: Value not equal)");
4616     };
4617     if (!((a->protectedMemory) == (b->protectedMemory))) {
4618         onFail("a->protectedMemory (Error: Value not equal)");
4619     };
4620     if (!((a->samplerYcbcrConversion) == (b->samplerYcbcrConversion))) {
4621         onFail("a->samplerYcbcrConversion (Error: Value not equal)");
4622     };
4623     if (!((a->shaderDrawParameters) == (b->shaderDrawParameters))) {
4624         onFail("a->shaderDrawParameters (Error: Value not equal)");
4625     };
4626 }
4627 
checkEqual_VkPhysicalDeviceVulkan11Properties(const VkPhysicalDeviceVulkan11Properties * a,const VkPhysicalDeviceVulkan11Properties * b,OnFailCompareFunc onFail)4628 void checkEqual_VkPhysicalDeviceVulkan11Properties(const VkPhysicalDeviceVulkan11Properties* a,
4629                                                    const VkPhysicalDeviceVulkan11Properties* b,
4630                                                    OnFailCompareFunc onFail) {
4631     if (!((a->sType) == (b->sType))) {
4632         onFail("a->sType (Error: Value not equal)");
4633     };
4634     if (a->pNext) {
4635         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4636     }
4637     if (!((memcmp(a->deviceUUID, b->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
4638         onFail("a->deviceUUID (Error: Unequal static array)");
4639     };
4640     if (!((memcmp(a->driverUUID, b->driverUUID, VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
4641         onFail("a->driverUUID (Error: Unequal static array)");
4642     };
4643     if (!((memcmp(a->deviceLUID, b->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t)) == 0))) {
4644         onFail("a->deviceLUID (Error: Unequal static array)");
4645     };
4646     if (!((a->deviceNodeMask) == (b->deviceNodeMask))) {
4647         onFail("a->deviceNodeMask (Error: Value not equal)");
4648     };
4649     if (!((a->deviceLUIDValid) == (b->deviceLUIDValid))) {
4650         onFail("a->deviceLUIDValid (Error: Value not equal)");
4651     };
4652     if (!((a->subgroupSize) == (b->subgroupSize))) {
4653         onFail("a->subgroupSize (Error: Value not equal)");
4654     };
4655     if (!((a->subgroupSupportedStages) == (b->subgroupSupportedStages))) {
4656         onFail("a->subgroupSupportedStages (Error: Value not equal)");
4657     };
4658     if (!((a->subgroupSupportedOperations) == (b->subgroupSupportedOperations))) {
4659         onFail("a->subgroupSupportedOperations (Error: Value not equal)");
4660     };
4661     if (!((a->subgroupQuadOperationsInAllStages) == (b->subgroupQuadOperationsInAllStages))) {
4662         onFail("a->subgroupQuadOperationsInAllStages (Error: Value not equal)");
4663     };
4664     if (!((a->pointClippingBehavior) == (b->pointClippingBehavior))) {
4665         onFail("a->pointClippingBehavior (Error: Value not equal)");
4666     };
4667     if (!((a->maxMultiviewViewCount) == (b->maxMultiviewViewCount))) {
4668         onFail("a->maxMultiviewViewCount (Error: Value not equal)");
4669     };
4670     if (!((a->maxMultiviewInstanceIndex) == (b->maxMultiviewInstanceIndex))) {
4671         onFail("a->maxMultiviewInstanceIndex (Error: Value not equal)");
4672     };
4673     if (!((a->protectedNoFault) == (b->protectedNoFault))) {
4674         onFail("a->protectedNoFault (Error: Value not equal)");
4675     };
4676     if (!((a->maxPerSetDescriptors) == (b->maxPerSetDescriptors))) {
4677         onFail("a->maxPerSetDescriptors (Error: Value not equal)");
4678     };
4679     if (!((a->maxMemoryAllocationSize) == (b->maxMemoryAllocationSize))) {
4680         onFail("a->maxMemoryAllocationSize (Error: Value not equal)");
4681     };
4682 }
4683 
checkEqual_VkPhysicalDeviceVulkan12Features(const VkPhysicalDeviceVulkan12Features * a,const VkPhysicalDeviceVulkan12Features * b,OnFailCompareFunc onFail)4684 void checkEqual_VkPhysicalDeviceVulkan12Features(const VkPhysicalDeviceVulkan12Features* a,
4685                                                  const VkPhysicalDeviceVulkan12Features* b,
4686                                                  OnFailCompareFunc onFail) {
4687     if (!((a->sType) == (b->sType))) {
4688         onFail("a->sType (Error: Value not equal)");
4689     };
4690     if (a->pNext) {
4691         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4692     }
4693     if (!((a->samplerMirrorClampToEdge) == (b->samplerMirrorClampToEdge))) {
4694         onFail("a->samplerMirrorClampToEdge (Error: Value not equal)");
4695     };
4696     if (!((a->drawIndirectCount) == (b->drawIndirectCount))) {
4697         onFail("a->drawIndirectCount (Error: Value not equal)");
4698     };
4699     if (!((a->storageBuffer8BitAccess) == (b->storageBuffer8BitAccess))) {
4700         onFail("a->storageBuffer8BitAccess (Error: Value not equal)");
4701     };
4702     if (!((a->uniformAndStorageBuffer8BitAccess) == (b->uniformAndStorageBuffer8BitAccess))) {
4703         onFail("a->uniformAndStorageBuffer8BitAccess (Error: Value not equal)");
4704     };
4705     if (!((a->storagePushConstant8) == (b->storagePushConstant8))) {
4706         onFail("a->storagePushConstant8 (Error: Value not equal)");
4707     };
4708     if (!((a->shaderBufferInt64Atomics) == (b->shaderBufferInt64Atomics))) {
4709         onFail("a->shaderBufferInt64Atomics (Error: Value not equal)");
4710     };
4711     if (!((a->shaderSharedInt64Atomics) == (b->shaderSharedInt64Atomics))) {
4712         onFail("a->shaderSharedInt64Atomics (Error: Value not equal)");
4713     };
4714     if (!((a->shaderFloat16) == (b->shaderFloat16))) {
4715         onFail("a->shaderFloat16 (Error: Value not equal)");
4716     };
4717     if (!((a->shaderInt8) == (b->shaderInt8))) {
4718         onFail("a->shaderInt8 (Error: Value not equal)");
4719     };
4720     if (!((a->descriptorIndexing) == (b->descriptorIndexing))) {
4721         onFail("a->descriptorIndexing (Error: Value not equal)");
4722     };
4723     if (!((a->shaderInputAttachmentArrayDynamicIndexing) ==
4724           (b->shaderInputAttachmentArrayDynamicIndexing))) {
4725         onFail("a->shaderInputAttachmentArrayDynamicIndexing (Error: Value not equal)");
4726     };
4727     if (!((a->shaderUniformTexelBufferArrayDynamicIndexing) ==
4728           (b->shaderUniformTexelBufferArrayDynamicIndexing))) {
4729         onFail("a->shaderUniformTexelBufferArrayDynamicIndexing (Error: Value not equal)");
4730     };
4731     if (!((a->shaderStorageTexelBufferArrayDynamicIndexing) ==
4732           (b->shaderStorageTexelBufferArrayDynamicIndexing))) {
4733         onFail("a->shaderStorageTexelBufferArrayDynamicIndexing (Error: Value not equal)");
4734     };
4735     if (!((a->shaderUniformBufferArrayNonUniformIndexing) ==
4736           (b->shaderUniformBufferArrayNonUniformIndexing))) {
4737         onFail("a->shaderUniformBufferArrayNonUniformIndexing (Error: Value not equal)");
4738     };
4739     if (!((a->shaderSampledImageArrayNonUniformIndexing) ==
4740           (b->shaderSampledImageArrayNonUniformIndexing))) {
4741         onFail("a->shaderSampledImageArrayNonUniformIndexing (Error: Value not equal)");
4742     };
4743     if (!((a->shaderStorageBufferArrayNonUniformIndexing) ==
4744           (b->shaderStorageBufferArrayNonUniformIndexing))) {
4745         onFail("a->shaderStorageBufferArrayNonUniformIndexing (Error: Value not equal)");
4746     };
4747     if (!((a->shaderStorageImageArrayNonUniformIndexing) ==
4748           (b->shaderStorageImageArrayNonUniformIndexing))) {
4749         onFail("a->shaderStorageImageArrayNonUniformIndexing (Error: Value not equal)");
4750     };
4751     if (!((a->shaderInputAttachmentArrayNonUniformIndexing) ==
4752           (b->shaderInputAttachmentArrayNonUniformIndexing))) {
4753         onFail("a->shaderInputAttachmentArrayNonUniformIndexing (Error: Value not equal)");
4754     };
4755     if (!((a->shaderUniformTexelBufferArrayNonUniformIndexing) ==
4756           (b->shaderUniformTexelBufferArrayNonUniformIndexing))) {
4757         onFail("a->shaderUniformTexelBufferArrayNonUniformIndexing (Error: Value not equal)");
4758     };
4759     if (!((a->shaderStorageTexelBufferArrayNonUniformIndexing) ==
4760           (b->shaderStorageTexelBufferArrayNonUniformIndexing))) {
4761         onFail("a->shaderStorageTexelBufferArrayNonUniformIndexing (Error: Value not equal)");
4762     };
4763     if (!((a->descriptorBindingUniformBufferUpdateAfterBind) ==
4764           (b->descriptorBindingUniformBufferUpdateAfterBind))) {
4765         onFail("a->descriptorBindingUniformBufferUpdateAfterBind (Error: Value not equal)");
4766     };
4767     if (!((a->descriptorBindingSampledImageUpdateAfterBind) ==
4768           (b->descriptorBindingSampledImageUpdateAfterBind))) {
4769         onFail("a->descriptorBindingSampledImageUpdateAfterBind (Error: Value not equal)");
4770     };
4771     if (!((a->descriptorBindingStorageImageUpdateAfterBind) ==
4772           (b->descriptorBindingStorageImageUpdateAfterBind))) {
4773         onFail("a->descriptorBindingStorageImageUpdateAfterBind (Error: Value not equal)");
4774     };
4775     if (!((a->descriptorBindingStorageBufferUpdateAfterBind) ==
4776           (b->descriptorBindingStorageBufferUpdateAfterBind))) {
4777         onFail("a->descriptorBindingStorageBufferUpdateAfterBind (Error: Value not equal)");
4778     };
4779     if (!((a->descriptorBindingUniformTexelBufferUpdateAfterBind) ==
4780           (b->descriptorBindingUniformTexelBufferUpdateAfterBind))) {
4781         onFail("a->descriptorBindingUniformTexelBufferUpdateAfterBind (Error: Value not equal)");
4782     };
4783     if (!((a->descriptorBindingStorageTexelBufferUpdateAfterBind) ==
4784           (b->descriptorBindingStorageTexelBufferUpdateAfterBind))) {
4785         onFail("a->descriptorBindingStorageTexelBufferUpdateAfterBind (Error: Value not equal)");
4786     };
4787     if (!((a->descriptorBindingUpdateUnusedWhilePending) ==
4788           (b->descriptorBindingUpdateUnusedWhilePending))) {
4789         onFail("a->descriptorBindingUpdateUnusedWhilePending (Error: Value not equal)");
4790     };
4791     if (!((a->descriptorBindingPartiallyBound) == (b->descriptorBindingPartiallyBound))) {
4792         onFail("a->descriptorBindingPartiallyBound (Error: Value not equal)");
4793     };
4794     if (!((a->descriptorBindingVariableDescriptorCount) ==
4795           (b->descriptorBindingVariableDescriptorCount))) {
4796         onFail("a->descriptorBindingVariableDescriptorCount (Error: Value not equal)");
4797     };
4798     if (!((a->runtimeDescriptorArray) == (b->runtimeDescriptorArray))) {
4799         onFail("a->runtimeDescriptorArray (Error: Value not equal)");
4800     };
4801     if (!((a->samplerFilterMinmax) == (b->samplerFilterMinmax))) {
4802         onFail("a->samplerFilterMinmax (Error: Value not equal)");
4803     };
4804     if (!((a->scalarBlockLayout) == (b->scalarBlockLayout))) {
4805         onFail("a->scalarBlockLayout (Error: Value not equal)");
4806     };
4807     if (!((a->imagelessFramebuffer) == (b->imagelessFramebuffer))) {
4808         onFail("a->imagelessFramebuffer (Error: Value not equal)");
4809     };
4810     if (!((a->uniformBufferStandardLayout) == (b->uniformBufferStandardLayout))) {
4811         onFail("a->uniformBufferStandardLayout (Error: Value not equal)");
4812     };
4813     if (!((a->shaderSubgroupExtendedTypes) == (b->shaderSubgroupExtendedTypes))) {
4814         onFail("a->shaderSubgroupExtendedTypes (Error: Value not equal)");
4815     };
4816     if (!((a->separateDepthStencilLayouts) == (b->separateDepthStencilLayouts))) {
4817         onFail("a->separateDepthStencilLayouts (Error: Value not equal)");
4818     };
4819     if (!((a->hostQueryReset) == (b->hostQueryReset))) {
4820         onFail("a->hostQueryReset (Error: Value not equal)");
4821     };
4822     if (!((a->timelineSemaphore) == (b->timelineSemaphore))) {
4823         onFail("a->timelineSemaphore (Error: Value not equal)");
4824     };
4825     if (!((a->bufferDeviceAddress) == (b->bufferDeviceAddress))) {
4826         onFail("a->bufferDeviceAddress (Error: Value not equal)");
4827     };
4828     if (!((a->bufferDeviceAddressCaptureReplay) == (b->bufferDeviceAddressCaptureReplay))) {
4829         onFail("a->bufferDeviceAddressCaptureReplay (Error: Value not equal)");
4830     };
4831     if (!((a->bufferDeviceAddressMultiDevice) == (b->bufferDeviceAddressMultiDevice))) {
4832         onFail("a->bufferDeviceAddressMultiDevice (Error: Value not equal)");
4833     };
4834     if (!((a->vulkanMemoryModel) == (b->vulkanMemoryModel))) {
4835         onFail("a->vulkanMemoryModel (Error: Value not equal)");
4836     };
4837     if (!((a->vulkanMemoryModelDeviceScope) == (b->vulkanMemoryModelDeviceScope))) {
4838         onFail("a->vulkanMemoryModelDeviceScope (Error: Value not equal)");
4839     };
4840     if (!((a->vulkanMemoryModelAvailabilityVisibilityChains) ==
4841           (b->vulkanMemoryModelAvailabilityVisibilityChains))) {
4842         onFail("a->vulkanMemoryModelAvailabilityVisibilityChains (Error: Value not equal)");
4843     };
4844     if (!((a->shaderOutputViewportIndex) == (b->shaderOutputViewportIndex))) {
4845         onFail("a->shaderOutputViewportIndex (Error: Value not equal)");
4846     };
4847     if (!((a->shaderOutputLayer) == (b->shaderOutputLayer))) {
4848         onFail("a->shaderOutputLayer (Error: Value not equal)");
4849     };
4850     if (!((a->subgroupBroadcastDynamicId) == (b->subgroupBroadcastDynamicId))) {
4851         onFail("a->subgroupBroadcastDynamicId (Error: Value not equal)");
4852     };
4853 }
4854 
checkEqual_VkConformanceVersion(const VkConformanceVersion * a,const VkConformanceVersion * b,OnFailCompareFunc onFail)4855 void checkEqual_VkConformanceVersion(const VkConformanceVersion* a, const VkConformanceVersion* b,
4856                                      OnFailCompareFunc onFail) {
4857     if (!((a->major) == (b->major))) {
4858         onFail("a->major (Error: Value not equal)");
4859     };
4860     if (!((a->minor) == (b->minor))) {
4861         onFail("a->minor (Error: Value not equal)");
4862     };
4863     if (!((a->subminor) == (b->subminor))) {
4864         onFail("a->subminor (Error: Value not equal)");
4865     };
4866     if (!((a->patch) == (b->patch))) {
4867         onFail("a->patch (Error: Value not equal)");
4868     };
4869 }
4870 
checkEqual_VkPhysicalDeviceVulkan12Properties(const VkPhysicalDeviceVulkan12Properties * a,const VkPhysicalDeviceVulkan12Properties * b,OnFailCompareFunc onFail)4871 void checkEqual_VkPhysicalDeviceVulkan12Properties(const VkPhysicalDeviceVulkan12Properties* a,
4872                                                    const VkPhysicalDeviceVulkan12Properties* b,
4873                                                    OnFailCompareFunc onFail) {
4874     if (!((a->sType) == (b->sType))) {
4875         onFail("a->sType (Error: Value not equal)");
4876     };
4877     if (a->pNext) {
4878         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
4879     }
4880     if (!((a->driverID) == (b->driverID))) {
4881         onFail("a->driverID (Error: Value not equal)");
4882     };
4883     if (!((memcmp(a->driverName, b->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char)) == 0))) {
4884         onFail("a->driverName (Error: Unequal static array)");
4885     };
4886     if (!((memcmp(a->driverInfo, b->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char)) == 0))) {
4887         onFail("a->driverInfo (Error: Unequal static array)");
4888     };
4889     checkEqual_VkConformanceVersion(&a->conformanceVersion, &b->conformanceVersion, onFail);
4890     if (!((a->denormBehaviorIndependence) == (b->denormBehaviorIndependence))) {
4891         onFail("a->denormBehaviorIndependence (Error: Value not equal)");
4892     };
4893     if (!((a->roundingModeIndependence) == (b->roundingModeIndependence))) {
4894         onFail("a->roundingModeIndependence (Error: Value not equal)");
4895     };
4896     if (!((a->shaderSignedZeroInfNanPreserveFloat16) ==
4897           (b->shaderSignedZeroInfNanPreserveFloat16))) {
4898         onFail("a->shaderSignedZeroInfNanPreserveFloat16 (Error: Value not equal)");
4899     };
4900     if (!((a->shaderSignedZeroInfNanPreserveFloat32) ==
4901           (b->shaderSignedZeroInfNanPreserveFloat32))) {
4902         onFail("a->shaderSignedZeroInfNanPreserveFloat32 (Error: Value not equal)");
4903     };
4904     if (!((a->shaderSignedZeroInfNanPreserveFloat64) ==
4905           (b->shaderSignedZeroInfNanPreserveFloat64))) {
4906         onFail("a->shaderSignedZeroInfNanPreserveFloat64 (Error: Value not equal)");
4907     };
4908     if (!((a->shaderDenormPreserveFloat16) == (b->shaderDenormPreserveFloat16))) {
4909         onFail("a->shaderDenormPreserveFloat16 (Error: Value not equal)");
4910     };
4911     if (!((a->shaderDenormPreserveFloat32) == (b->shaderDenormPreserveFloat32))) {
4912         onFail("a->shaderDenormPreserveFloat32 (Error: Value not equal)");
4913     };
4914     if (!((a->shaderDenormPreserveFloat64) == (b->shaderDenormPreserveFloat64))) {
4915         onFail("a->shaderDenormPreserveFloat64 (Error: Value not equal)");
4916     };
4917     if (!((a->shaderDenormFlushToZeroFloat16) == (b->shaderDenormFlushToZeroFloat16))) {
4918         onFail("a->shaderDenormFlushToZeroFloat16 (Error: Value not equal)");
4919     };
4920     if (!((a->shaderDenormFlushToZeroFloat32) == (b->shaderDenormFlushToZeroFloat32))) {
4921         onFail("a->shaderDenormFlushToZeroFloat32 (Error: Value not equal)");
4922     };
4923     if (!((a->shaderDenormFlushToZeroFloat64) == (b->shaderDenormFlushToZeroFloat64))) {
4924         onFail("a->shaderDenormFlushToZeroFloat64 (Error: Value not equal)");
4925     };
4926     if (!((a->shaderRoundingModeRTEFloat16) == (b->shaderRoundingModeRTEFloat16))) {
4927         onFail("a->shaderRoundingModeRTEFloat16 (Error: Value not equal)");
4928     };
4929     if (!((a->shaderRoundingModeRTEFloat32) == (b->shaderRoundingModeRTEFloat32))) {
4930         onFail("a->shaderRoundingModeRTEFloat32 (Error: Value not equal)");
4931     };
4932     if (!((a->shaderRoundingModeRTEFloat64) == (b->shaderRoundingModeRTEFloat64))) {
4933         onFail("a->shaderRoundingModeRTEFloat64 (Error: Value not equal)");
4934     };
4935     if (!((a->shaderRoundingModeRTZFloat16) == (b->shaderRoundingModeRTZFloat16))) {
4936         onFail("a->shaderRoundingModeRTZFloat16 (Error: Value not equal)");
4937     };
4938     if (!((a->shaderRoundingModeRTZFloat32) == (b->shaderRoundingModeRTZFloat32))) {
4939         onFail("a->shaderRoundingModeRTZFloat32 (Error: Value not equal)");
4940     };
4941     if (!((a->shaderRoundingModeRTZFloat64) == (b->shaderRoundingModeRTZFloat64))) {
4942         onFail("a->shaderRoundingModeRTZFloat64 (Error: Value not equal)");
4943     };
4944     if (!((a->maxUpdateAfterBindDescriptorsInAllPools) ==
4945           (b->maxUpdateAfterBindDescriptorsInAllPools))) {
4946         onFail("a->maxUpdateAfterBindDescriptorsInAllPools (Error: Value not equal)");
4947     };
4948     if (!((a->shaderUniformBufferArrayNonUniformIndexingNative) ==
4949           (b->shaderUniformBufferArrayNonUniformIndexingNative))) {
4950         onFail("a->shaderUniformBufferArrayNonUniformIndexingNative (Error: Value not equal)");
4951     };
4952     if (!((a->shaderSampledImageArrayNonUniformIndexingNative) ==
4953           (b->shaderSampledImageArrayNonUniformIndexingNative))) {
4954         onFail("a->shaderSampledImageArrayNonUniformIndexingNative (Error: Value not equal)");
4955     };
4956     if (!((a->shaderStorageBufferArrayNonUniformIndexingNative) ==
4957           (b->shaderStorageBufferArrayNonUniformIndexingNative))) {
4958         onFail("a->shaderStorageBufferArrayNonUniformIndexingNative (Error: Value not equal)");
4959     };
4960     if (!((a->shaderStorageImageArrayNonUniformIndexingNative) ==
4961           (b->shaderStorageImageArrayNonUniformIndexingNative))) {
4962         onFail("a->shaderStorageImageArrayNonUniformIndexingNative (Error: Value not equal)");
4963     };
4964     if (!((a->shaderInputAttachmentArrayNonUniformIndexingNative) ==
4965           (b->shaderInputAttachmentArrayNonUniformIndexingNative))) {
4966         onFail("a->shaderInputAttachmentArrayNonUniformIndexingNative (Error: Value not equal)");
4967     };
4968     if (!((a->robustBufferAccessUpdateAfterBind) == (b->robustBufferAccessUpdateAfterBind))) {
4969         onFail("a->robustBufferAccessUpdateAfterBind (Error: Value not equal)");
4970     };
4971     if (!((a->quadDivergentImplicitLod) == (b->quadDivergentImplicitLod))) {
4972         onFail("a->quadDivergentImplicitLod (Error: Value not equal)");
4973     };
4974     if (!((a->maxPerStageDescriptorUpdateAfterBindSamplers) ==
4975           (b->maxPerStageDescriptorUpdateAfterBindSamplers))) {
4976         onFail("a->maxPerStageDescriptorUpdateAfterBindSamplers (Error: Value not equal)");
4977     };
4978     if (!((a->maxPerStageDescriptorUpdateAfterBindUniformBuffers) ==
4979           (b->maxPerStageDescriptorUpdateAfterBindUniformBuffers))) {
4980         onFail("a->maxPerStageDescriptorUpdateAfterBindUniformBuffers (Error: Value not equal)");
4981     };
4982     if (!((a->maxPerStageDescriptorUpdateAfterBindStorageBuffers) ==
4983           (b->maxPerStageDescriptorUpdateAfterBindStorageBuffers))) {
4984         onFail("a->maxPerStageDescriptorUpdateAfterBindStorageBuffers (Error: Value not equal)");
4985     };
4986     if (!((a->maxPerStageDescriptorUpdateAfterBindSampledImages) ==
4987           (b->maxPerStageDescriptorUpdateAfterBindSampledImages))) {
4988         onFail("a->maxPerStageDescriptorUpdateAfterBindSampledImages (Error: Value not equal)");
4989     };
4990     if (!((a->maxPerStageDescriptorUpdateAfterBindStorageImages) ==
4991           (b->maxPerStageDescriptorUpdateAfterBindStorageImages))) {
4992         onFail("a->maxPerStageDescriptorUpdateAfterBindStorageImages (Error: Value not equal)");
4993     };
4994     if (!((a->maxPerStageDescriptorUpdateAfterBindInputAttachments) ==
4995           (b->maxPerStageDescriptorUpdateAfterBindInputAttachments))) {
4996         onFail("a->maxPerStageDescriptorUpdateAfterBindInputAttachments (Error: Value not equal)");
4997     };
4998     if (!((a->maxPerStageUpdateAfterBindResources) == (b->maxPerStageUpdateAfterBindResources))) {
4999         onFail("a->maxPerStageUpdateAfterBindResources (Error: Value not equal)");
5000     };
5001     if (!((a->maxDescriptorSetUpdateAfterBindSamplers) ==
5002           (b->maxDescriptorSetUpdateAfterBindSamplers))) {
5003         onFail("a->maxDescriptorSetUpdateAfterBindSamplers (Error: Value not equal)");
5004     };
5005     if (!((a->maxDescriptorSetUpdateAfterBindUniformBuffers) ==
5006           (b->maxDescriptorSetUpdateAfterBindUniformBuffers))) {
5007         onFail("a->maxDescriptorSetUpdateAfterBindUniformBuffers (Error: Value not equal)");
5008     };
5009     if (!((a->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic) ==
5010           (b->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic))) {
5011         onFail("a->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic (Error: Value not equal)");
5012     };
5013     if (!((a->maxDescriptorSetUpdateAfterBindStorageBuffers) ==
5014           (b->maxDescriptorSetUpdateAfterBindStorageBuffers))) {
5015         onFail("a->maxDescriptorSetUpdateAfterBindStorageBuffers (Error: Value not equal)");
5016     };
5017     if (!((a->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic) ==
5018           (b->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic))) {
5019         onFail("a->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic (Error: Value not equal)");
5020     };
5021     if (!((a->maxDescriptorSetUpdateAfterBindSampledImages) ==
5022           (b->maxDescriptorSetUpdateAfterBindSampledImages))) {
5023         onFail("a->maxDescriptorSetUpdateAfterBindSampledImages (Error: Value not equal)");
5024     };
5025     if (!((a->maxDescriptorSetUpdateAfterBindStorageImages) ==
5026           (b->maxDescriptorSetUpdateAfterBindStorageImages))) {
5027         onFail("a->maxDescriptorSetUpdateAfterBindStorageImages (Error: Value not equal)");
5028     };
5029     if (!((a->maxDescriptorSetUpdateAfterBindInputAttachments) ==
5030           (b->maxDescriptorSetUpdateAfterBindInputAttachments))) {
5031         onFail("a->maxDescriptorSetUpdateAfterBindInputAttachments (Error: Value not equal)");
5032     };
5033     if (!((a->supportedDepthResolveModes) == (b->supportedDepthResolveModes))) {
5034         onFail("a->supportedDepthResolveModes (Error: Value not equal)");
5035     };
5036     if (!((a->supportedStencilResolveModes) == (b->supportedStencilResolveModes))) {
5037         onFail("a->supportedStencilResolveModes (Error: Value not equal)");
5038     };
5039     if (!((a->independentResolveNone) == (b->independentResolveNone))) {
5040         onFail("a->independentResolveNone (Error: Value not equal)");
5041     };
5042     if (!((a->independentResolve) == (b->independentResolve))) {
5043         onFail("a->independentResolve (Error: Value not equal)");
5044     };
5045     if (!((a->filterMinmaxSingleComponentFormats) == (b->filterMinmaxSingleComponentFormats))) {
5046         onFail("a->filterMinmaxSingleComponentFormats (Error: Value not equal)");
5047     };
5048     if (!((a->filterMinmaxImageComponentMapping) == (b->filterMinmaxImageComponentMapping))) {
5049         onFail("a->filterMinmaxImageComponentMapping (Error: Value not equal)");
5050     };
5051     if (!((a->maxTimelineSemaphoreValueDifference) == (b->maxTimelineSemaphoreValueDifference))) {
5052         onFail("a->maxTimelineSemaphoreValueDifference (Error: Value not equal)");
5053     };
5054     if (!((a->framebufferIntegerColorSampleCounts) == (b->framebufferIntegerColorSampleCounts))) {
5055         onFail("a->framebufferIntegerColorSampleCounts (Error: Value not equal)");
5056     };
5057 }
5058 
checkEqual_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo * a,const VkImageFormatListCreateInfo * b,OnFailCompareFunc onFail)5059 void checkEqual_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo* a,
5060                                             const VkImageFormatListCreateInfo* b,
5061                                             OnFailCompareFunc onFail) {
5062     if (!((a->sType) == (b->sType))) {
5063         onFail("a->sType (Error: Value not equal)");
5064     };
5065     if (a->pNext) {
5066         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5067     }
5068     if (!((a->viewFormatCount) == (b->viewFormatCount))) {
5069         onFail("a->viewFormatCount (Error: Value not equal)");
5070     };
5071     if (!((a->viewFormatCount) == (b->viewFormatCount))) {
5072         onFail("a->pViewFormats (Error: Lengths not equal)");
5073     };
5074     if (!((memcmp(a->pViewFormats, b->pViewFormats, a->viewFormatCount * sizeof(const VkFormat)) ==
5075            0))) {
5076         onFail("a->pViewFormats (Error: Unequal dyn array)");
5077     };
5078 }
5079 
checkEqual_VkAttachmentDescription2(const VkAttachmentDescription2 * a,const VkAttachmentDescription2 * b,OnFailCompareFunc onFail)5080 void checkEqual_VkAttachmentDescription2(const VkAttachmentDescription2* a,
5081                                          const VkAttachmentDescription2* b,
5082                                          OnFailCompareFunc onFail) {
5083     if (!((a->sType) == (b->sType))) {
5084         onFail("a->sType (Error: Value not equal)");
5085     };
5086     if (a->pNext) {
5087         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5088     }
5089     if (!((a->flags) == (b->flags))) {
5090         onFail("a->flags (Error: Value not equal)");
5091     };
5092     if (!((a->format) == (b->format))) {
5093         onFail("a->format (Error: Value not equal)");
5094     };
5095     if (!((a->samples) == (b->samples))) {
5096         onFail("a->samples (Error: Value not equal)");
5097     };
5098     if (!((a->loadOp) == (b->loadOp))) {
5099         onFail("a->loadOp (Error: Value not equal)");
5100     };
5101     if (!((a->storeOp) == (b->storeOp))) {
5102         onFail("a->storeOp (Error: Value not equal)");
5103     };
5104     if (!((a->stencilLoadOp) == (b->stencilLoadOp))) {
5105         onFail("a->stencilLoadOp (Error: Value not equal)");
5106     };
5107     if (!((a->stencilStoreOp) == (b->stencilStoreOp))) {
5108         onFail("a->stencilStoreOp (Error: Value not equal)");
5109     };
5110     if (!((a->initialLayout) == (b->initialLayout))) {
5111         onFail("a->initialLayout (Error: Value not equal)");
5112     };
5113     if (!((a->finalLayout) == (b->finalLayout))) {
5114         onFail("a->finalLayout (Error: Value not equal)");
5115     };
5116 }
5117 
checkEqual_VkAttachmentReference2(const VkAttachmentReference2 * a,const VkAttachmentReference2 * b,OnFailCompareFunc onFail)5118 void checkEqual_VkAttachmentReference2(const VkAttachmentReference2* a,
5119                                        const VkAttachmentReference2* b, OnFailCompareFunc onFail) {
5120     if (!((a->sType) == (b->sType))) {
5121         onFail("a->sType (Error: Value not equal)");
5122     };
5123     if (a->pNext) {
5124         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5125     }
5126     if (!((a->attachment) == (b->attachment))) {
5127         onFail("a->attachment (Error: Value not equal)");
5128     };
5129     if (!((a->layout) == (b->layout))) {
5130         onFail("a->layout (Error: Value not equal)");
5131     };
5132     if (!((a->aspectMask) == (b->aspectMask))) {
5133         onFail("a->aspectMask (Error: Value not equal)");
5134     };
5135 }
5136 
checkEqual_VkSubpassDescription2(const VkSubpassDescription2 * a,const VkSubpassDescription2 * b,OnFailCompareFunc onFail)5137 void checkEqual_VkSubpassDescription2(const VkSubpassDescription2* a,
5138                                       const VkSubpassDescription2* b, OnFailCompareFunc onFail) {
5139     if (!((a->sType) == (b->sType))) {
5140         onFail("a->sType (Error: Value not equal)");
5141     };
5142     if (a->pNext) {
5143         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5144     }
5145     if (!((a->flags) == (b->flags))) {
5146         onFail("a->flags (Error: Value not equal)");
5147     };
5148     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
5149         onFail("a->pipelineBindPoint (Error: Value not equal)");
5150     };
5151     if (!((a->viewMask) == (b->viewMask))) {
5152         onFail("a->viewMask (Error: Value not equal)");
5153     };
5154     if (!((a->inputAttachmentCount) == (b->inputAttachmentCount))) {
5155         onFail("a->inputAttachmentCount (Error: Value not equal)");
5156     };
5157     if ((a->pInputAttachments) && (b->pInputAttachments)) {
5158         if (!((a->inputAttachmentCount) == (b->inputAttachmentCount))) {
5159             onFail("a->pInputAttachments (Error: Lengths not equal)");
5160         };
5161         if ((a->inputAttachmentCount) == (b->inputAttachmentCount)) {
5162             if (a) {
5163                 for (uint32_t i = 0; i < (uint32_t)a->inputAttachmentCount; ++i) {
5164                     checkEqual_VkAttachmentReference2(a->pInputAttachments + i,
5165                                                       b->pInputAttachments + i, onFail);
5166                 }
5167             }
5168         }
5169     }
5170     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
5171         onFail("a->colorAttachmentCount (Error: Value not equal)");
5172     };
5173     if ((a->pColorAttachments) && (b->pColorAttachments)) {
5174         if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
5175             onFail("a->pColorAttachments (Error: Lengths not equal)");
5176         };
5177         if ((a->colorAttachmentCount) == (b->colorAttachmentCount)) {
5178             if (a) {
5179                 for (uint32_t i = 0; i < (uint32_t)a->colorAttachmentCount; ++i) {
5180                     checkEqual_VkAttachmentReference2(a->pColorAttachments + i,
5181                                                       b->pColorAttachments + i, onFail);
5182                 }
5183             }
5184         }
5185     }
5186     if (!((!(a->pResolveAttachments) && !(b->pResolveAttachments)) ||
5187           ((a->pResolveAttachments) && (b->pResolveAttachments)))) {
5188         onFail("a->pResolveAttachments (Error: Mismatch in optional field)");
5189     };
5190     if (a->pResolveAttachments && b->pResolveAttachments) {
5191         if ((a->pResolveAttachments) && (b->pResolveAttachments)) {
5192             if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
5193                 onFail("a->pResolveAttachments (Error: Lengths not equal)");
5194             };
5195             if ((a->colorAttachmentCount) == (b->colorAttachmentCount)) {
5196                 if (a) {
5197                     for (uint32_t i = 0; i < (uint32_t)a->colorAttachmentCount; ++i) {
5198                         checkEqual_VkAttachmentReference2(a->pResolveAttachments + i,
5199                                                           b->pResolveAttachments + i, onFail);
5200                     }
5201                 }
5202             }
5203         }
5204     }
5205     if (!((!(a->pDepthStencilAttachment) && !(b->pDepthStencilAttachment)) ||
5206           ((a->pDepthStencilAttachment) && (b->pDepthStencilAttachment)))) {
5207         onFail("a->pDepthStencilAttachment (Error: Mismatch in optional field)");
5208     };
5209     if (a->pDepthStencilAttachment && b->pDepthStencilAttachment) {
5210         if ((a->pDepthStencilAttachment) && (b->pDepthStencilAttachment)) {
5211             checkEqual_VkAttachmentReference2(a->pDepthStencilAttachment,
5212                                               b->pDepthStencilAttachment, onFail);
5213         }
5214     }
5215     if (!((a->preserveAttachmentCount) == (b->preserveAttachmentCount))) {
5216         onFail("a->preserveAttachmentCount (Error: Value not equal)");
5217     };
5218     if (!((a->preserveAttachmentCount) == (b->preserveAttachmentCount))) {
5219         onFail("a->pPreserveAttachments (Error: Lengths not equal)");
5220     };
5221     if (!((memcmp(a->pPreserveAttachments, b->pPreserveAttachments,
5222                   a->preserveAttachmentCount * sizeof(const uint32_t)) == 0))) {
5223         onFail("a->pPreserveAttachments (Error: Unequal dyn array)");
5224     };
5225 }
5226 
checkEqual_VkSubpassDependency2(const VkSubpassDependency2 * a,const VkSubpassDependency2 * b,OnFailCompareFunc onFail)5227 void checkEqual_VkSubpassDependency2(const VkSubpassDependency2* a, const VkSubpassDependency2* b,
5228                                      OnFailCompareFunc onFail) {
5229     if (!((a->sType) == (b->sType))) {
5230         onFail("a->sType (Error: Value not equal)");
5231     };
5232     if (a->pNext) {
5233         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5234     }
5235     if (!((a->srcSubpass) == (b->srcSubpass))) {
5236         onFail("a->srcSubpass (Error: Value not equal)");
5237     };
5238     if (!((a->dstSubpass) == (b->dstSubpass))) {
5239         onFail("a->dstSubpass (Error: Value not equal)");
5240     };
5241     if (!((a->srcStageMask) == (b->srcStageMask))) {
5242         onFail("a->srcStageMask (Error: Value not equal)");
5243     };
5244     if (!((a->dstStageMask) == (b->dstStageMask))) {
5245         onFail("a->dstStageMask (Error: Value not equal)");
5246     };
5247     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
5248         onFail("a->srcAccessMask (Error: Value not equal)");
5249     };
5250     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
5251         onFail("a->dstAccessMask (Error: Value not equal)");
5252     };
5253     if (!((a->dependencyFlags) == (b->dependencyFlags))) {
5254         onFail("a->dependencyFlags (Error: Value not equal)");
5255     };
5256     if (!((a->viewOffset) == (b->viewOffset))) {
5257         onFail("a->viewOffset (Error: Value not equal)");
5258     };
5259 }
5260 
checkEqual_VkRenderPassCreateInfo2(const VkRenderPassCreateInfo2 * a,const VkRenderPassCreateInfo2 * b,OnFailCompareFunc onFail)5261 void checkEqual_VkRenderPassCreateInfo2(const VkRenderPassCreateInfo2* a,
5262                                         const VkRenderPassCreateInfo2* b,
5263                                         OnFailCompareFunc onFail) {
5264     if (!((a->sType) == (b->sType))) {
5265         onFail("a->sType (Error: Value not equal)");
5266     };
5267     if (a->pNext) {
5268         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5269     }
5270     if (!((a->flags) == (b->flags))) {
5271         onFail("a->flags (Error: Value not equal)");
5272     };
5273     if (!((a->attachmentCount) == (b->attachmentCount))) {
5274         onFail("a->attachmentCount (Error: Value not equal)");
5275     };
5276     if ((a->pAttachments) && (b->pAttachments)) {
5277         if (!((a->attachmentCount) == (b->attachmentCount))) {
5278             onFail("a->pAttachments (Error: Lengths not equal)");
5279         };
5280         if ((a->attachmentCount) == (b->attachmentCount)) {
5281             if (a) {
5282                 for (uint32_t i = 0; i < (uint32_t)a->attachmentCount; ++i) {
5283                     checkEqual_VkAttachmentDescription2(a->pAttachments + i, b->pAttachments + i,
5284                                                         onFail);
5285                 }
5286             }
5287         }
5288     }
5289     if (!((a->subpassCount) == (b->subpassCount))) {
5290         onFail("a->subpassCount (Error: Value not equal)");
5291     };
5292     if ((a->pSubpasses) && (b->pSubpasses)) {
5293         if (!((a->subpassCount) == (b->subpassCount))) {
5294             onFail("a->pSubpasses (Error: Lengths not equal)");
5295         };
5296         if ((a->subpassCount) == (b->subpassCount)) {
5297             if (a) {
5298                 for (uint32_t i = 0; i < (uint32_t)a->subpassCount; ++i) {
5299                     checkEqual_VkSubpassDescription2(a->pSubpasses + i, b->pSubpasses + i, onFail);
5300                 }
5301             }
5302         }
5303     }
5304     if (!((a->dependencyCount) == (b->dependencyCount))) {
5305         onFail("a->dependencyCount (Error: Value not equal)");
5306     };
5307     if ((a->pDependencies) && (b->pDependencies)) {
5308         if (!((a->dependencyCount) == (b->dependencyCount))) {
5309             onFail("a->pDependencies (Error: Lengths not equal)");
5310         };
5311         if ((a->dependencyCount) == (b->dependencyCount)) {
5312             if (a) {
5313                 for (uint32_t i = 0; i < (uint32_t)a->dependencyCount; ++i) {
5314                     checkEqual_VkSubpassDependency2(a->pDependencies + i, b->pDependencies + i,
5315                                                     onFail);
5316                 }
5317             }
5318         }
5319     }
5320     if (!((a->correlatedViewMaskCount) == (b->correlatedViewMaskCount))) {
5321         onFail("a->correlatedViewMaskCount (Error: Value not equal)");
5322     };
5323     if (!((a->correlatedViewMaskCount) == (b->correlatedViewMaskCount))) {
5324         onFail("a->pCorrelatedViewMasks (Error: Lengths not equal)");
5325     };
5326     if (!((memcmp(a->pCorrelatedViewMasks, b->pCorrelatedViewMasks,
5327                   a->correlatedViewMaskCount * sizeof(const uint32_t)) == 0))) {
5328         onFail("a->pCorrelatedViewMasks (Error: Unequal dyn array)");
5329     };
5330 }
5331 
checkEqual_VkSubpassBeginInfo(const VkSubpassBeginInfo * a,const VkSubpassBeginInfo * b,OnFailCompareFunc onFail)5332 void checkEqual_VkSubpassBeginInfo(const VkSubpassBeginInfo* a, const VkSubpassBeginInfo* b,
5333                                    OnFailCompareFunc onFail) {
5334     if (!((a->sType) == (b->sType))) {
5335         onFail("a->sType (Error: Value not equal)");
5336     };
5337     if (a->pNext) {
5338         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5339     }
5340     if (!((a->contents) == (b->contents))) {
5341         onFail("a->contents (Error: Value not equal)");
5342     };
5343 }
5344 
checkEqual_VkSubpassEndInfo(const VkSubpassEndInfo * a,const VkSubpassEndInfo * b,OnFailCompareFunc onFail)5345 void checkEqual_VkSubpassEndInfo(const VkSubpassEndInfo* a, const VkSubpassEndInfo* b,
5346                                  OnFailCompareFunc onFail) {
5347     if (!((a->sType) == (b->sType))) {
5348         onFail("a->sType (Error: Value not equal)");
5349     };
5350     if (a->pNext) {
5351         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5352     }
5353 }
5354 
checkEqual_VkPhysicalDevice8BitStorageFeatures(const VkPhysicalDevice8BitStorageFeatures * a,const VkPhysicalDevice8BitStorageFeatures * b,OnFailCompareFunc onFail)5355 void checkEqual_VkPhysicalDevice8BitStorageFeatures(const VkPhysicalDevice8BitStorageFeatures* a,
5356                                                     const VkPhysicalDevice8BitStorageFeatures* b,
5357                                                     OnFailCompareFunc onFail) {
5358     if (!((a->sType) == (b->sType))) {
5359         onFail("a->sType (Error: Value not equal)");
5360     };
5361     if (a->pNext) {
5362         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5363     }
5364     if (!((a->storageBuffer8BitAccess) == (b->storageBuffer8BitAccess))) {
5365         onFail("a->storageBuffer8BitAccess (Error: Value not equal)");
5366     };
5367     if (!((a->uniformAndStorageBuffer8BitAccess) == (b->uniformAndStorageBuffer8BitAccess))) {
5368         onFail("a->uniformAndStorageBuffer8BitAccess (Error: Value not equal)");
5369     };
5370     if (!((a->storagePushConstant8) == (b->storagePushConstant8))) {
5371         onFail("a->storagePushConstant8 (Error: Value not equal)");
5372     };
5373 }
5374 
checkEqual_VkPhysicalDeviceDriverProperties(const VkPhysicalDeviceDriverProperties * a,const VkPhysicalDeviceDriverProperties * b,OnFailCompareFunc onFail)5375 void checkEqual_VkPhysicalDeviceDriverProperties(const VkPhysicalDeviceDriverProperties* a,
5376                                                  const VkPhysicalDeviceDriverProperties* b,
5377                                                  OnFailCompareFunc onFail) {
5378     if (!((a->sType) == (b->sType))) {
5379         onFail("a->sType (Error: Value not equal)");
5380     };
5381     if (a->pNext) {
5382         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5383     }
5384     if (!((a->driverID) == (b->driverID))) {
5385         onFail("a->driverID (Error: Value not equal)");
5386     };
5387     if (!((memcmp(a->driverName, b->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char)) == 0))) {
5388         onFail("a->driverName (Error: Unequal static array)");
5389     };
5390     if (!((memcmp(a->driverInfo, b->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char)) == 0))) {
5391         onFail("a->driverInfo (Error: Unequal static array)");
5392     };
5393     checkEqual_VkConformanceVersion(&a->conformanceVersion, &b->conformanceVersion, onFail);
5394 }
5395 
checkEqual_VkPhysicalDeviceShaderAtomicInt64Features(const VkPhysicalDeviceShaderAtomicInt64Features * a,const VkPhysicalDeviceShaderAtomicInt64Features * b,OnFailCompareFunc onFail)5396 void checkEqual_VkPhysicalDeviceShaderAtomicInt64Features(
5397     const VkPhysicalDeviceShaderAtomicInt64Features* a,
5398     const VkPhysicalDeviceShaderAtomicInt64Features* b, OnFailCompareFunc onFail) {
5399     if (!((a->sType) == (b->sType))) {
5400         onFail("a->sType (Error: Value not equal)");
5401     };
5402     if (a->pNext) {
5403         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5404     }
5405     if (!((a->shaderBufferInt64Atomics) == (b->shaderBufferInt64Atomics))) {
5406         onFail("a->shaderBufferInt64Atomics (Error: Value not equal)");
5407     };
5408     if (!((a->shaderSharedInt64Atomics) == (b->shaderSharedInt64Atomics))) {
5409         onFail("a->shaderSharedInt64Atomics (Error: Value not equal)");
5410     };
5411 }
5412 
checkEqual_VkPhysicalDeviceShaderFloat16Int8Features(const VkPhysicalDeviceShaderFloat16Int8Features * a,const VkPhysicalDeviceShaderFloat16Int8Features * b,OnFailCompareFunc onFail)5413 void checkEqual_VkPhysicalDeviceShaderFloat16Int8Features(
5414     const VkPhysicalDeviceShaderFloat16Int8Features* a,
5415     const VkPhysicalDeviceShaderFloat16Int8Features* b, OnFailCompareFunc onFail) {
5416     if (!((a->sType) == (b->sType))) {
5417         onFail("a->sType (Error: Value not equal)");
5418     };
5419     if (a->pNext) {
5420         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5421     }
5422     if (!((a->shaderFloat16) == (b->shaderFloat16))) {
5423         onFail("a->shaderFloat16 (Error: Value not equal)");
5424     };
5425     if (!((a->shaderInt8) == (b->shaderInt8))) {
5426         onFail("a->shaderInt8 (Error: Value not equal)");
5427     };
5428 }
5429 
checkEqual_VkPhysicalDeviceFloatControlsProperties(const VkPhysicalDeviceFloatControlsProperties * a,const VkPhysicalDeviceFloatControlsProperties * b,OnFailCompareFunc onFail)5430 void checkEqual_VkPhysicalDeviceFloatControlsProperties(
5431     const VkPhysicalDeviceFloatControlsProperties* a,
5432     const VkPhysicalDeviceFloatControlsProperties* b, OnFailCompareFunc onFail) {
5433     if (!((a->sType) == (b->sType))) {
5434         onFail("a->sType (Error: Value not equal)");
5435     };
5436     if (a->pNext) {
5437         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5438     }
5439     if (!((a->denormBehaviorIndependence) == (b->denormBehaviorIndependence))) {
5440         onFail("a->denormBehaviorIndependence (Error: Value not equal)");
5441     };
5442     if (!((a->roundingModeIndependence) == (b->roundingModeIndependence))) {
5443         onFail("a->roundingModeIndependence (Error: Value not equal)");
5444     };
5445     if (!((a->shaderSignedZeroInfNanPreserveFloat16) ==
5446           (b->shaderSignedZeroInfNanPreserveFloat16))) {
5447         onFail("a->shaderSignedZeroInfNanPreserveFloat16 (Error: Value not equal)");
5448     };
5449     if (!((a->shaderSignedZeroInfNanPreserveFloat32) ==
5450           (b->shaderSignedZeroInfNanPreserveFloat32))) {
5451         onFail("a->shaderSignedZeroInfNanPreserveFloat32 (Error: Value not equal)");
5452     };
5453     if (!((a->shaderSignedZeroInfNanPreserveFloat64) ==
5454           (b->shaderSignedZeroInfNanPreserveFloat64))) {
5455         onFail("a->shaderSignedZeroInfNanPreserveFloat64 (Error: Value not equal)");
5456     };
5457     if (!((a->shaderDenormPreserveFloat16) == (b->shaderDenormPreserveFloat16))) {
5458         onFail("a->shaderDenormPreserveFloat16 (Error: Value not equal)");
5459     };
5460     if (!((a->shaderDenormPreserveFloat32) == (b->shaderDenormPreserveFloat32))) {
5461         onFail("a->shaderDenormPreserveFloat32 (Error: Value not equal)");
5462     };
5463     if (!((a->shaderDenormPreserveFloat64) == (b->shaderDenormPreserveFloat64))) {
5464         onFail("a->shaderDenormPreserveFloat64 (Error: Value not equal)");
5465     };
5466     if (!((a->shaderDenormFlushToZeroFloat16) == (b->shaderDenormFlushToZeroFloat16))) {
5467         onFail("a->shaderDenormFlushToZeroFloat16 (Error: Value not equal)");
5468     };
5469     if (!((a->shaderDenormFlushToZeroFloat32) == (b->shaderDenormFlushToZeroFloat32))) {
5470         onFail("a->shaderDenormFlushToZeroFloat32 (Error: Value not equal)");
5471     };
5472     if (!((a->shaderDenormFlushToZeroFloat64) == (b->shaderDenormFlushToZeroFloat64))) {
5473         onFail("a->shaderDenormFlushToZeroFloat64 (Error: Value not equal)");
5474     };
5475     if (!((a->shaderRoundingModeRTEFloat16) == (b->shaderRoundingModeRTEFloat16))) {
5476         onFail("a->shaderRoundingModeRTEFloat16 (Error: Value not equal)");
5477     };
5478     if (!((a->shaderRoundingModeRTEFloat32) == (b->shaderRoundingModeRTEFloat32))) {
5479         onFail("a->shaderRoundingModeRTEFloat32 (Error: Value not equal)");
5480     };
5481     if (!((a->shaderRoundingModeRTEFloat64) == (b->shaderRoundingModeRTEFloat64))) {
5482         onFail("a->shaderRoundingModeRTEFloat64 (Error: Value not equal)");
5483     };
5484     if (!((a->shaderRoundingModeRTZFloat16) == (b->shaderRoundingModeRTZFloat16))) {
5485         onFail("a->shaderRoundingModeRTZFloat16 (Error: Value not equal)");
5486     };
5487     if (!((a->shaderRoundingModeRTZFloat32) == (b->shaderRoundingModeRTZFloat32))) {
5488         onFail("a->shaderRoundingModeRTZFloat32 (Error: Value not equal)");
5489     };
5490     if (!((a->shaderRoundingModeRTZFloat64) == (b->shaderRoundingModeRTZFloat64))) {
5491         onFail("a->shaderRoundingModeRTZFloat64 (Error: Value not equal)");
5492     };
5493 }
5494 
checkEqual_VkDescriptorSetLayoutBindingFlagsCreateInfo(const VkDescriptorSetLayoutBindingFlagsCreateInfo * a,const VkDescriptorSetLayoutBindingFlagsCreateInfo * b,OnFailCompareFunc onFail)5495 void checkEqual_VkDescriptorSetLayoutBindingFlagsCreateInfo(
5496     const VkDescriptorSetLayoutBindingFlagsCreateInfo* a,
5497     const VkDescriptorSetLayoutBindingFlagsCreateInfo* b, OnFailCompareFunc onFail) {
5498     if (!((a->sType) == (b->sType))) {
5499         onFail("a->sType (Error: Value not equal)");
5500     };
5501     if (a->pNext) {
5502         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5503     }
5504     if (!((a->bindingCount) == (b->bindingCount))) {
5505         onFail("a->bindingCount (Error: Value not equal)");
5506     };
5507     if (!((!(a->pBindingFlags) && !(b->pBindingFlags)) ||
5508           ((a->pBindingFlags) && (b->pBindingFlags)))) {
5509         onFail("a->pBindingFlags (Error: Mismatch in optional field)");
5510     };
5511     if (a->pBindingFlags && b->pBindingFlags) {
5512         if (!((a->bindingCount) == (b->bindingCount))) {
5513             onFail("a->pBindingFlags (Error: Lengths not equal)");
5514         };
5515         if (!((memcmp(a->pBindingFlags, b->pBindingFlags,
5516                       a->bindingCount * sizeof(const VkDescriptorBindingFlags)) == 0))) {
5517             onFail("a->pBindingFlags (Error: Unequal dyn array)");
5518         };
5519     }
5520 }
5521 
checkEqual_VkPhysicalDeviceDescriptorIndexingFeatures(const VkPhysicalDeviceDescriptorIndexingFeatures * a,const VkPhysicalDeviceDescriptorIndexingFeatures * b,OnFailCompareFunc onFail)5522 void checkEqual_VkPhysicalDeviceDescriptorIndexingFeatures(
5523     const VkPhysicalDeviceDescriptorIndexingFeatures* a,
5524     const VkPhysicalDeviceDescriptorIndexingFeatures* b, OnFailCompareFunc onFail) {
5525     if (!((a->sType) == (b->sType))) {
5526         onFail("a->sType (Error: Value not equal)");
5527     };
5528     if (a->pNext) {
5529         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5530     }
5531     if (!((a->shaderInputAttachmentArrayDynamicIndexing) ==
5532           (b->shaderInputAttachmentArrayDynamicIndexing))) {
5533         onFail("a->shaderInputAttachmentArrayDynamicIndexing (Error: Value not equal)");
5534     };
5535     if (!((a->shaderUniformTexelBufferArrayDynamicIndexing) ==
5536           (b->shaderUniformTexelBufferArrayDynamicIndexing))) {
5537         onFail("a->shaderUniformTexelBufferArrayDynamicIndexing (Error: Value not equal)");
5538     };
5539     if (!((a->shaderStorageTexelBufferArrayDynamicIndexing) ==
5540           (b->shaderStorageTexelBufferArrayDynamicIndexing))) {
5541         onFail("a->shaderStorageTexelBufferArrayDynamicIndexing (Error: Value not equal)");
5542     };
5543     if (!((a->shaderUniformBufferArrayNonUniformIndexing) ==
5544           (b->shaderUniformBufferArrayNonUniformIndexing))) {
5545         onFail("a->shaderUniformBufferArrayNonUniformIndexing (Error: Value not equal)");
5546     };
5547     if (!((a->shaderSampledImageArrayNonUniformIndexing) ==
5548           (b->shaderSampledImageArrayNonUniformIndexing))) {
5549         onFail("a->shaderSampledImageArrayNonUniformIndexing (Error: Value not equal)");
5550     };
5551     if (!((a->shaderStorageBufferArrayNonUniformIndexing) ==
5552           (b->shaderStorageBufferArrayNonUniformIndexing))) {
5553         onFail("a->shaderStorageBufferArrayNonUniformIndexing (Error: Value not equal)");
5554     };
5555     if (!((a->shaderStorageImageArrayNonUniformIndexing) ==
5556           (b->shaderStorageImageArrayNonUniformIndexing))) {
5557         onFail("a->shaderStorageImageArrayNonUniformIndexing (Error: Value not equal)");
5558     };
5559     if (!((a->shaderInputAttachmentArrayNonUniformIndexing) ==
5560           (b->shaderInputAttachmentArrayNonUniformIndexing))) {
5561         onFail("a->shaderInputAttachmentArrayNonUniformIndexing (Error: Value not equal)");
5562     };
5563     if (!((a->shaderUniformTexelBufferArrayNonUniformIndexing) ==
5564           (b->shaderUniformTexelBufferArrayNonUniformIndexing))) {
5565         onFail("a->shaderUniformTexelBufferArrayNonUniformIndexing (Error: Value not equal)");
5566     };
5567     if (!((a->shaderStorageTexelBufferArrayNonUniformIndexing) ==
5568           (b->shaderStorageTexelBufferArrayNonUniformIndexing))) {
5569         onFail("a->shaderStorageTexelBufferArrayNonUniformIndexing (Error: Value not equal)");
5570     };
5571     if (!((a->descriptorBindingUniformBufferUpdateAfterBind) ==
5572           (b->descriptorBindingUniformBufferUpdateAfterBind))) {
5573         onFail("a->descriptorBindingUniformBufferUpdateAfterBind (Error: Value not equal)");
5574     };
5575     if (!((a->descriptorBindingSampledImageUpdateAfterBind) ==
5576           (b->descriptorBindingSampledImageUpdateAfterBind))) {
5577         onFail("a->descriptorBindingSampledImageUpdateAfterBind (Error: Value not equal)");
5578     };
5579     if (!((a->descriptorBindingStorageImageUpdateAfterBind) ==
5580           (b->descriptorBindingStorageImageUpdateAfterBind))) {
5581         onFail("a->descriptorBindingStorageImageUpdateAfterBind (Error: Value not equal)");
5582     };
5583     if (!((a->descriptorBindingStorageBufferUpdateAfterBind) ==
5584           (b->descriptorBindingStorageBufferUpdateAfterBind))) {
5585         onFail("a->descriptorBindingStorageBufferUpdateAfterBind (Error: Value not equal)");
5586     };
5587     if (!((a->descriptorBindingUniformTexelBufferUpdateAfterBind) ==
5588           (b->descriptorBindingUniformTexelBufferUpdateAfterBind))) {
5589         onFail("a->descriptorBindingUniformTexelBufferUpdateAfterBind (Error: Value not equal)");
5590     };
5591     if (!((a->descriptorBindingStorageTexelBufferUpdateAfterBind) ==
5592           (b->descriptorBindingStorageTexelBufferUpdateAfterBind))) {
5593         onFail("a->descriptorBindingStorageTexelBufferUpdateAfterBind (Error: Value not equal)");
5594     };
5595     if (!((a->descriptorBindingUpdateUnusedWhilePending) ==
5596           (b->descriptorBindingUpdateUnusedWhilePending))) {
5597         onFail("a->descriptorBindingUpdateUnusedWhilePending (Error: Value not equal)");
5598     };
5599     if (!((a->descriptorBindingPartiallyBound) == (b->descriptorBindingPartiallyBound))) {
5600         onFail("a->descriptorBindingPartiallyBound (Error: Value not equal)");
5601     };
5602     if (!((a->descriptorBindingVariableDescriptorCount) ==
5603           (b->descriptorBindingVariableDescriptorCount))) {
5604         onFail("a->descriptorBindingVariableDescriptorCount (Error: Value not equal)");
5605     };
5606     if (!((a->runtimeDescriptorArray) == (b->runtimeDescriptorArray))) {
5607         onFail("a->runtimeDescriptorArray (Error: Value not equal)");
5608     };
5609 }
5610 
checkEqual_VkPhysicalDeviceDescriptorIndexingProperties(const VkPhysicalDeviceDescriptorIndexingProperties * a,const VkPhysicalDeviceDescriptorIndexingProperties * b,OnFailCompareFunc onFail)5611 void checkEqual_VkPhysicalDeviceDescriptorIndexingProperties(
5612     const VkPhysicalDeviceDescriptorIndexingProperties* a,
5613     const VkPhysicalDeviceDescriptorIndexingProperties* b, OnFailCompareFunc onFail) {
5614     if (!((a->sType) == (b->sType))) {
5615         onFail("a->sType (Error: Value not equal)");
5616     };
5617     if (a->pNext) {
5618         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5619     }
5620     if (!((a->maxUpdateAfterBindDescriptorsInAllPools) ==
5621           (b->maxUpdateAfterBindDescriptorsInAllPools))) {
5622         onFail("a->maxUpdateAfterBindDescriptorsInAllPools (Error: Value not equal)");
5623     };
5624     if (!((a->shaderUniformBufferArrayNonUniformIndexingNative) ==
5625           (b->shaderUniformBufferArrayNonUniformIndexingNative))) {
5626         onFail("a->shaderUniformBufferArrayNonUniformIndexingNative (Error: Value not equal)");
5627     };
5628     if (!((a->shaderSampledImageArrayNonUniformIndexingNative) ==
5629           (b->shaderSampledImageArrayNonUniformIndexingNative))) {
5630         onFail("a->shaderSampledImageArrayNonUniformIndexingNative (Error: Value not equal)");
5631     };
5632     if (!((a->shaderStorageBufferArrayNonUniformIndexingNative) ==
5633           (b->shaderStorageBufferArrayNonUniformIndexingNative))) {
5634         onFail("a->shaderStorageBufferArrayNonUniformIndexingNative (Error: Value not equal)");
5635     };
5636     if (!((a->shaderStorageImageArrayNonUniformIndexingNative) ==
5637           (b->shaderStorageImageArrayNonUniformIndexingNative))) {
5638         onFail("a->shaderStorageImageArrayNonUniformIndexingNative (Error: Value not equal)");
5639     };
5640     if (!((a->shaderInputAttachmentArrayNonUniformIndexingNative) ==
5641           (b->shaderInputAttachmentArrayNonUniformIndexingNative))) {
5642         onFail("a->shaderInputAttachmentArrayNonUniformIndexingNative (Error: Value not equal)");
5643     };
5644     if (!((a->robustBufferAccessUpdateAfterBind) == (b->robustBufferAccessUpdateAfterBind))) {
5645         onFail("a->robustBufferAccessUpdateAfterBind (Error: Value not equal)");
5646     };
5647     if (!((a->quadDivergentImplicitLod) == (b->quadDivergentImplicitLod))) {
5648         onFail("a->quadDivergentImplicitLod (Error: Value not equal)");
5649     };
5650     if (!((a->maxPerStageDescriptorUpdateAfterBindSamplers) ==
5651           (b->maxPerStageDescriptorUpdateAfterBindSamplers))) {
5652         onFail("a->maxPerStageDescriptorUpdateAfterBindSamplers (Error: Value not equal)");
5653     };
5654     if (!((a->maxPerStageDescriptorUpdateAfterBindUniformBuffers) ==
5655           (b->maxPerStageDescriptorUpdateAfterBindUniformBuffers))) {
5656         onFail("a->maxPerStageDescriptorUpdateAfterBindUniformBuffers (Error: Value not equal)");
5657     };
5658     if (!((a->maxPerStageDescriptorUpdateAfterBindStorageBuffers) ==
5659           (b->maxPerStageDescriptorUpdateAfterBindStorageBuffers))) {
5660         onFail("a->maxPerStageDescriptorUpdateAfterBindStorageBuffers (Error: Value not equal)");
5661     };
5662     if (!((a->maxPerStageDescriptorUpdateAfterBindSampledImages) ==
5663           (b->maxPerStageDescriptorUpdateAfterBindSampledImages))) {
5664         onFail("a->maxPerStageDescriptorUpdateAfterBindSampledImages (Error: Value not equal)");
5665     };
5666     if (!((a->maxPerStageDescriptorUpdateAfterBindStorageImages) ==
5667           (b->maxPerStageDescriptorUpdateAfterBindStorageImages))) {
5668         onFail("a->maxPerStageDescriptorUpdateAfterBindStorageImages (Error: Value not equal)");
5669     };
5670     if (!((a->maxPerStageDescriptorUpdateAfterBindInputAttachments) ==
5671           (b->maxPerStageDescriptorUpdateAfterBindInputAttachments))) {
5672         onFail("a->maxPerStageDescriptorUpdateAfterBindInputAttachments (Error: Value not equal)");
5673     };
5674     if (!((a->maxPerStageUpdateAfterBindResources) == (b->maxPerStageUpdateAfterBindResources))) {
5675         onFail("a->maxPerStageUpdateAfterBindResources (Error: Value not equal)");
5676     };
5677     if (!((a->maxDescriptorSetUpdateAfterBindSamplers) ==
5678           (b->maxDescriptorSetUpdateAfterBindSamplers))) {
5679         onFail("a->maxDescriptorSetUpdateAfterBindSamplers (Error: Value not equal)");
5680     };
5681     if (!((a->maxDescriptorSetUpdateAfterBindUniformBuffers) ==
5682           (b->maxDescriptorSetUpdateAfterBindUniformBuffers))) {
5683         onFail("a->maxDescriptorSetUpdateAfterBindUniformBuffers (Error: Value not equal)");
5684     };
5685     if (!((a->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic) ==
5686           (b->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic))) {
5687         onFail("a->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic (Error: Value not equal)");
5688     };
5689     if (!((a->maxDescriptorSetUpdateAfterBindStorageBuffers) ==
5690           (b->maxDescriptorSetUpdateAfterBindStorageBuffers))) {
5691         onFail("a->maxDescriptorSetUpdateAfterBindStorageBuffers (Error: Value not equal)");
5692     };
5693     if (!((a->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic) ==
5694           (b->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic))) {
5695         onFail("a->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic (Error: Value not equal)");
5696     };
5697     if (!((a->maxDescriptorSetUpdateAfterBindSampledImages) ==
5698           (b->maxDescriptorSetUpdateAfterBindSampledImages))) {
5699         onFail("a->maxDescriptorSetUpdateAfterBindSampledImages (Error: Value not equal)");
5700     };
5701     if (!((a->maxDescriptorSetUpdateAfterBindStorageImages) ==
5702           (b->maxDescriptorSetUpdateAfterBindStorageImages))) {
5703         onFail("a->maxDescriptorSetUpdateAfterBindStorageImages (Error: Value not equal)");
5704     };
5705     if (!((a->maxDescriptorSetUpdateAfterBindInputAttachments) ==
5706           (b->maxDescriptorSetUpdateAfterBindInputAttachments))) {
5707         onFail("a->maxDescriptorSetUpdateAfterBindInputAttachments (Error: Value not equal)");
5708     };
5709 }
5710 
checkEqual_VkDescriptorSetVariableDescriptorCountAllocateInfo(const VkDescriptorSetVariableDescriptorCountAllocateInfo * a,const VkDescriptorSetVariableDescriptorCountAllocateInfo * b,OnFailCompareFunc onFail)5711 void checkEqual_VkDescriptorSetVariableDescriptorCountAllocateInfo(
5712     const VkDescriptorSetVariableDescriptorCountAllocateInfo* a,
5713     const VkDescriptorSetVariableDescriptorCountAllocateInfo* b, OnFailCompareFunc onFail) {
5714     if (!((a->sType) == (b->sType))) {
5715         onFail("a->sType (Error: Value not equal)");
5716     };
5717     if (a->pNext) {
5718         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5719     }
5720     if (!((a->descriptorSetCount) == (b->descriptorSetCount))) {
5721         onFail("a->descriptorSetCount (Error: Value not equal)");
5722     };
5723     if (!((a->descriptorSetCount) == (b->descriptorSetCount))) {
5724         onFail("a->pDescriptorCounts (Error: Lengths not equal)");
5725     };
5726     if (!((memcmp(a->pDescriptorCounts, b->pDescriptorCounts,
5727                   a->descriptorSetCount * sizeof(const uint32_t)) == 0))) {
5728         onFail("a->pDescriptorCounts (Error: Unequal dyn array)");
5729     };
5730 }
5731 
checkEqual_VkDescriptorSetVariableDescriptorCountLayoutSupport(const VkDescriptorSetVariableDescriptorCountLayoutSupport * a,const VkDescriptorSetVariableDescriptorCountLayoutSupport * b,OnFailCompareFunc onFail)5732 void checkEqual_VkDescriptorSetVariableDescriptorCountLayoutSupport(
5733     const VkDescriptorSetVariableDescriptorCountLayoutSupport* a,
5734     const VkDescriptorSetVariableDescriptorCountLayoutSupport* b, OnFailCompareFunc onFail) {
5735     if (!((a->sType) == (b->sType))) {
5736         onFail("a->sType (Error: Value not equal)");
5737     };
5738     if (a->pNext) {
5739         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5740     }
5741     if (!((a->maxVariableDescriptorCount) == (b->maxVariableDescriptorCount))) {
5742         onFail("a->maxVariableDescriptorCount (Error: Value not equal)");
5743     };
5744 }
5745 
checkEqual_VkSubpassDescriptionDepthStencilResolve(const VkSubpassDescriptionDepthStencilResolve * a,const VkSubpassDescriptionDepthStencilResolve * b,OnFailCompareFunc onFail)5746 void checkEqual_VkSubpassDescriptionDepthStencilResolve(
5747     const VkSubpassDescriptionDepthStencilResolve* a,
5748     const VkSubpassDescriptionDepthStencilResolve* b, OnFailCompareFunc onFail) {
5749     if (!((a->sType) == (b->sType))) {
5750         onFail("a->sType (Error: Value not equal)");
5751     };
5752     if (a->pNext) {
5753         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5754     }
5755     if (!((a->depthResolveMode) == (b->depthResolveMode))) {
5756         onFail("a->depthResolveMode (Error: Value not equal)");
5757     };
5758     if (!((a->stencilResolveMode) == (b->stencilResolveMode))) {
5759         onFail("a->stencilResolveMode (Error: Value not equal)");
5760     };
5761     if (!((!(a->pDepthStencilResolveAttachment) && !(b->pDepthStencilResolveAttachment)) ||
5762           ((a->pDepthStencilResolveAttachment) && (b->pDepthStencilResolveAttachment)))) {
5763         onFail("a->pDepthStencilResolveAttachment (Error: Mismatch in optional field)");
5764     };
5765     if (a->pDepthStencilResolveAttachment && b->pDepthStencilResolveAttachment) {
5766         if ((a->pDepthStencilResolveAttachment) && (b->pDepthStencilResolveAttachment)) {
5767             checkEqual_VkAttachmentReference2(a->pDepthStencilResolveAttachment,
5768                                               b->pDepthStencilResolveAttachment, onFail);
5769         }
5770     }
5771 }
5772 
checkEqual_VkPhysicalDeviceDepthStencilResolveProperties(const VkPhysicalDeviceDepthStencilResolveProperties * a,const VkPhysicalDeviceDepthStencilResolveProperties * b,OnFailCompareFunc onFail)5773 void checkEqual_VkPhysicalDeviceDepthStencilResolveProperties(
5774     const VkPhysicalDeviceDepthStencilResolveProperties* a,
5775     const VkPhysicalDeviceDepthStencilResolveProperties* b, OnFailCompareFunc onFail) {
5776     if (!((a->sType) == (b->sType))) {
5777         onFail("a->sType (Error: Value not equal)");
5778     };
5779     if (a->pNext) {
5780         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5781     }
5782     if (!((a->supportedDepthResolveModes) == (b->supportedDepthResolveModes))) {
5783         onFail("a->supportedDepthResolveModes (Error: Value not equal)");
5784     };
5785     if (!((a->supportedStencilResolveModes) == (b->supportedStencilResolveModes))) {
5786         onFail("a->supportedStencilResolveModes (Error: Value not equal)");
5787     };
5788     if (!((a->independentResolveNone) == (b->independentResolveNone))) {
5789         onFail("a->independentResolveNone (Error: Value not equal)");
5790     };
5791     if (!((a->independentResolve) == (b->independentResolve))) {
5792         onFail("a->independentResolve (Error: Value not equal)");
5793     };
5794 }
5795 
checkEqual_VkPhysicalDeviceScalarBlockLayoutFeatures(const VkPhysicalDeviceScalarBlockLayoutFeatures * a,const VkPhysicalDeviceScalarBlockLayoutFeatures * b,OnFailCompareFunc onFail)5796 void checkEqual_VkPhysicalDeviceScalarBlockLayoutFeatures(
5797     const VkPhysicalDeviceScalarBlockLayoutFeatures* a,
5798     const VkPhysicalDeviceScalarBlockLayoutFeatures* b, OnFailCompareFunc onFail) {
5799     if (!((a->sType) == (b->sType))) {
5800         onFail("a->sType (Error: Value not equal)");
5801     };
5802     if (a->pNext) {
5803         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5804     }
5805     if (!((a->scalarBlockLayout) == (b->scalarBlockLayout))) {
5806         onFail("a->scalarBlockLayout (Error: Value not equal)");
5807     };
5808 }
5809 
checkEqual_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo * a,const VkImageStencilUsageCreateInfo * b,OnFailCompareFunc onFail)5810 void checkEqual_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo* a,
5811                                               const VkImageStencilUsageCreateInfo* b,
5812                                               OnFailCompareFunc onFail) {
5813     if (!((a->sType) == (b->sType))) {
5814         onFail("a->sType (Error: Value not equal)");
5815     };
5816     if (a->pNext) {
5817         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5818     }
5819     if (!((a->stencilUsage) == (b->stencilUsage))) {
5820         onFail("a->stencilUsage (Error: Value not equal)");
5821     };
5822 }
5823 
checkEqual_VkSamplerReductionModeCreateInfo(const VkSamplerReductionModeCreateInfo * a,const VkSamplerReductionModeCreateInfo * b,OnFailCompareFunc onFail)5824 void checkEqual_VkSamplerReductionModeCreateInfo(const VkSamplerReductionModeCreateInfo* a,
5825                                                  const VkSamplerReductionModeCreateInfo* b,
5826                                                  OnFailCompareFunc onFail) {
5827     if (!((a->sType) == (b->sType))) {
5828         onFail("a->sType (Error: Value not equal)");
5829     };
5830     if (a->pNext) {
5831         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5832     }
5833     if (!((a->reductionMode) == (b->reductionMode))) {
5834         onFail("a->reductionMode (Error: Value not equal)");
5835     };
5836 }
5837 
checkEqual_VkPhysicalDeviceSamplerFilterMinmaxProperties(const VkPhysicalDeviceSamplerFilterMinmaxProperties * a,const VkPhysicalDeviceSamplerFilterMinmaxProperties * b,OnFailCompareFunc onFail)5838 void checkEqual_VkPhysicalDeviceSamplerFilterMinmaxProperties(
5839     const VkPhysicalDeviceSamplerFilterMinmaxProperties* a,
5840     const VkPhysicalDeviceSamplerFilterMinmaxProperties* b, OnFailCompareFunc onFail) {
5841     if (!((a->sType) == (b->sType))) {
5842         onFail("a->sType (Error: Value not equal)");
5843     };
5844     if (a->pNext) {
5845         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5846     }
5847     if (!((a->filterMinmaxSingleComponentFormats) == (b->filterMinmaxSingleComponentFormats))) {
5848         onFail("a->filterMinmaxSingleComponentFormats (Error: Value not equal)");
5849     };
5850     if (!((a->filterMinmaxImageComponentMapping) == (b->filterMinmaxImageComponentMapping))) {
5851         onFail("a->filterMinmaxImageComponentMapping (Error: Value not equal)");
5852     };
5853 }
5854 
checkEqual_VkPhysicalDeviceVulkanMemoryModelFeatures(const VkPhysicalDeviceVulkanMemoryModelFeatures * a,const VkPhysicalDeviceVulkanMemoryModelFeatures * b,OnFailCompareFunc onFail)5855 void checkEqual_VkPhysicalDeviceVulkanMemoryModelFeatures(
5856     const VkPhysicalDeviceVulkanMemoryModelFeatures* a,
5857     const VkPhysicalDeviceVulkanMemoryModelFeatures* b, OnFailCompareFunc onFail) {
5858     if (!((a->sType) == (b->sType))) {
5859         onFail("a->sType (Error: Value not equal)");
5860     };
5861     if (a->pNext) {
5862         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5863     }
5864     if (!((a->vulkanMemoryModel) == (b->vulkanMemoryModel))) {
5865         onFail("a->vulkanMemoryModel (Error: Value not equal)");
5866     };
5867     if (!((a->vulkanMemoryModelDeviceScope) == (b->vulkanMemoryModelDeviceScope))) {
5868         onFail("a->vulkanMemoryModelDeviceScope (Error: Value not equal)");
5869     };
5870     if (!((a->vulkanMemoryModelAvailabilityVisibilityChains) ==
5871           (b->vulkanMemoryModelAvailabilityVisibilityChains))) {
5872         onFail("a->vulkanMemoryModelAvailabilityVisibilityChains (Error: Value not equal)");
5873     };
5874 }
5875 
checkEqual_VkPhysicalDeviceImagelessFramebufferFeatures(const VkPhysicalDeviceImagelessFramebufferFeatures * a,const VkPhysicalDeviceImagelessFramebufferFeatures * b,OnFailCompareFunc onFail)5876 void checkEqual_VkPhysicalDeviceImagelessFramebufferFeatures(
5877     const VkPhysicalDeviceImagelessFramebufferFeatures* a,
5878     const VkPhysicalDeviceImagelessFramebufferFeatures* b, OnFailCompareFunc onFail) {
5879     if (!((a->sType) == (b->sType))) {
5880         onFail("a->sType (Error: Value not equal)");
5881     };
5882     if (a->pNext) {
5883         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5884     }
5885     if (!((a->imagelessFramebuffer) == (b->imagelessFramebuffer))) {
5886         onFail("a->imagelessFramebuffer (Error: Value not equal)");
5887     };
5888 }
5889 
checkEqual_VkFramebufferAttachmentImageInfo(const VkFramebufferAttachmentImageInfo * a,const VkFramebufferAttachmentImageInfo * b,OnFailCompareFunc onFail)5890 void checkEqual_VkFramebufferAttachmentImageInfo(const VkFramebufferAttachmentImageInfo* a,
5891                                                  const VkFramebufferAttachmentImageInfo* b,
5892                                                  OnFailCompareFunc onFail) {
5893     if (!((a->sType) == (b->sType))) {
5894         onFail("a->sType (Error: Value not equal)");
5895     };
5896     if (a->pNext) {
5897         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5898     }
5899     if (!((a->flags) == (b->flags))) {
5900         onFail("a->flags (Error: Value not equal)");
5901     };
5902     if (!((a->usage) == (b->usage))) {
5903         onFail("a->usage (Error: Value not equal)");
5904     };
5905     if (!((a->width) == (b->width))) {
5906         onFail("a->width (Error: Value not equal)");
5907     };
5908     if (!((a->height) == (b->height))) {
5909         onFail("a->height (Error: Value not equal)");
5910     };
5911     if (!((a->layerCount) == (b->layerCount))) {
5912         onFail("a->layerCount (Error: Value not equal)");
5913     };
5914     if (!((a->viewFormatCount) == (b->viewFormatCount))) {
5915         onFail("a->viewFormatCount (Error: Value not equal)");
5916     };
5917     if (!((a->viewFormatCount) == (b->viewFormatCount))) {
5918         onFail("a->pViewFormats (Error: Lengths not equal)");
5919     };
5920     if (!((memcmp(a->pViewFormats, b->pViewFormats, a->viewFormatCount * sizeof(const VkFormat)) ==
5921            0))) {
5922         onFail("a->pViewFormats (Error: Unequal dyn array)");
5923     };
5924 }
5925 
checkEqual_VkFramebufferAttachmentsCreateInfo(const VkFramebufferAttachmentsCreateInfo * a,const VkFramebufferAttachmentsCreateInfo * b,OnFailCompareFunc onFail)5926 void checkEqual_VkFramebufferAttachmentsCreateInfo(const VkFramebufferAttachmentsCreateInfo* a,
5927                                                    const VkFramebufferAttachmentsCreateInfo* b,
5928                                                    OnFailCompareFunc onFail) {
5929     if (!((a->sType) == (b->sType))) {
5930         onFail("a->sType (Error: Value not equal)");
5931     };
5932     if (a->pNext) {
5933         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5934     }
5935     if (!((a->attachmentImageInfoCount) == (b->attachmentImageInfoCount))) {
5936         onFail("a->attachmentImageInfoCount (Error: Value not equal)");
5937     };
5938     if ((a->pAttachmentImageInfos) && (b->pAttachmentImageInfos)) {
5939         if (!((a->attachmentImageInfoCount) == (b->attachmentImageInfoCount))) {
5940             onFail("a->pAttachmentImageInfos (Error: Lengths not equal)");
5941         };
5942         if ((a->attachmentImageInfoCount) == (b->attachmentImageInfoCount)) {
5943             if (a) {
5944                 for (uint32_t i = 0; i < (uint32_t)a->attachmentImageInfoCount; ++i) {
5945                     checkEqual_VkFramebufferAttachmentImageInfo(
5946                         a->pAttachmentImageInfos + i, b->pAttachmentImageInfos + i, onFail);
5947                 }
5948             }
5949         }
5950     }
5951 }
5952 
checkEqual_VkRenderPassAttachmentBeginInfo(const VkRenderPassAttachmentBeginInfo * a,const VkRenderPassAttachmentBeginInfo * b,OnFailCompareFunc onFail)5953 void checkEqual_VkRenderPassAttachmentBeginInfo(const VkRenderPassAttachmentBeginInfo* a,
5954                                                 const VkRenderPassAttachmentBeginInfo* b,
5955                                                 OnFailCompareFunc onFail) {
5956     if (!((a->sType) == (b->sType))) {
5957         onFail("a->sType (Error: Value not equal)");
5958     };
5959     if (a->pNext) {
5960         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5961     }
5962     if (!((a->attachmentCount) == (b->attachmentCount))) {
5963         onFail("a->attachmentCount (Error: Value not equal)");
5964     };
5965     if (!((a->attachmentCount) == (b->attachmentCount))) {
5966         onFail("a->pAttachments (Error: Lengths not equal)");
5967     };
5968     if (!((memcmp(a->pAttachments, b->pAttachments,
5969                   a->attachmentCount * sizeof(const VkImageView)) == 0))) {
5970         onFail("a->pAttachments (Error: Unequal dyn array)");
5971     };
5972 }
5973 
checkEqual_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * a,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * b,OnFailCompareFunc onFail)5974 void checkEqual_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
5975     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* a,
5976     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* b, OnFailCompareFunc onFail) {
5977     if (!((a->sType) == (b->sType))) {
5978         onFail("a->sType (Error: Value not equal)");
5979     };
5980     if (a->pNext) {
5981         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5982     }
5983     if (!((a->uniformBufferStandardLayout) == (b->uniformBufferStandardLayout))) {
5984         onFail("a->uniformBufferStandardLayout (Error: Value not equal)");
5985     };
5986 }
5987 
checkEqual_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * a,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * b,OnFailCompareFunc onFail)5988 void checkEqual_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
5989     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* a,
5990     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* b, OnFailCompareFunc onFail) {
5991     if (!((a->sType) == (b->sType))) {
5992         onFail("a->sType (Error: Value not equal)");
5993     };
5994     if (a->pNext) {
5995         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
5996     }
5997     if (!((a->shaderSubgroupExtendedTypes) == (b->shaderSubgroupExtendedTypes))) {
5998         onFail("a->shaderSubgroupExtendedTypes (Error: Value not equal)");
5999     };
6000 }
6001 
checkEqual_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * a,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * b,OnFailCompareFunc onFail)6002 void checkEqual_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
6003     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* a,
6004     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* b, OnFailCompareFunc onFail) {
6005     if (!((a->sType) == (b->sType))) {
6006         onFail("a->sType (Error: Value not equal)");
6007     };
6008     if (a->pNext) {
6009         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6010     }
6011     if (!((a->separateDepthStencilLayouts) == (b->separateDepthStencilLayouts))) {
6012         onFail("a->separateDepthStencilLayouts (Error: Value not equal)");
6013     };
6014 }
6015 
checkEqual_VkAttachmentReferenceStencilLayout(const VkAttachmentReferenceStencilLayout * a,const VkAttachmentReferenceStencilLayout * b,OnFailCompareFunc onFail)6016 void checkEqual_VkAttachmentReferenceStencilLayout(const VkAttachmentReferenceStencilLayout* a,
6017                                                    const VkAttachmentReferenceStencilLayout* b,
6018                                                    OnFailCompareFunc onFail) {
6019     if (!((a->sType) == (b->sType))) {
6020         onFail("a->sType (Error: Value not equal)");
6021     };
6022     if (a->pNext) {
6023         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6024     }
6025     if (!((a->stencilLayout) == (b->stencilLayout))) {
6026         onFail("a->stencilLayout (Error: Value not equal)");
6027     };
6028 }
6029 
checkEqual_VkAttachmentDescriptionStencilLayout(const VkAttachmentDescriptionStencilLayout * a,const VkAttachmentDescriptionStencilLayout * b,OnFailCompareFunc onFail)6030 void checkEqual_VkAttachmentDescriptionStencilLayout(const VkAttachmentDescriptionStencilLayout* a,
6031                                                      const VkAttachmentDescriptionStencilLayout* b,
6032                                                      OnFailCompareFunc onFail) {
6033     if (!((a->sType) == (b->sType))) {
6034         onFail("a->sType (Error: Value not equal)");
6035     };
6036     if (a->pNext) {
6037         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6038     }
6039     if (!((a->stencilInitialLayout) == (b->stencilInitialLayout))) {
6040         onFail("a->stencilInitialLayout (Error: Value not equal)");
6041     };
6042     if (!((a->stencilFinalLayout) == (b->stencilFinalLayout))) {
6043         onFail("a->stencilFinalLayout (Error: Value not equal)");
6044     };
6045 }
6046 
checkEqual_VkPhysicalDeviceHostQueryResetFeatures(const VkPhysicalDeviceHostQueryResetFeatures * a,const VkPhysicalDeviceHostQueryResetFeatures * b,OnFailCompareFunc onFail)6047 void checkEqual_VkPhysicalDeviceHostQueryResetFeatures(
6048     const VkPhysicalDeviceHostQueryResetFeatures* a,
6049     const VkPhysicalDeviceHostQueryResetFeatures* b, OnFailCompareFunc onFail) {
6050     if (!((a->sType) == (b->sType))) {
6051         onFail("a->sType (Error: Value not equal)");
6052     };
6053     if (a->pNext) {
6054         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6055     }
6056     if (!((a->hostQueryReset) == (b->hostQueryReset))) {
6057         onFail("a->hostQueryReset (Error: Value not equal)");
6058     };
6059 }
6060 
checkEqual_VkPhysicalDeviceTimelineSemaphoreFeatures(const VkPhysicalDeviceTimelineSemaphoreFeatures * a,const VkPhysicalDeviceTimelineSemaphoreFeatures * b,OnFailCompareFunc onFail)6061 void checkEqual_VkPhysicalDeviceTimelineSemaphoreFeatures(
6062     const VkPhysicalDeviceTimelineSemaphoreFeatures* a,
6063     const VkPhysicalDeviceTimelineSemaphoreFeatures* b, OnFailCompareFunc onFail) {
6064     if (!((a->sType) == (b->sType))) {
6065         onFail("a->sType (Error: Value not equal)");
6066     };
6067     if (a->pNext) {
6068         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6069     }
6070     if (!((a->timelineSemaphore) == (b->timelineSemaphore))) {
6071         onFail("a->timelineSemaphore (Error: Value not equal)");
6072     };
6073 }
6074 
checkEqual_VkPhysicalDeviceTimelineSemaphoreProperties(const VkPhysicalDeviceTimelineSemaphoreProperties * a,const VkPhysicalDeviceTimelineSemaphoreProperties * b,OnFailCompareFunc onFail)6075 void checkEqual_VkPhysicalDeviceTimelineSemaphoreProperties(
6076     const VkPhysicalDeviceTimelineSemaphoreProperties* a,
6077     const VkPhysicalDeviceTimelineSemaphoreProperties* b, OnFailCompareFunc onFail) {
6078     if (!((a->sType) == (b->sType))) {
6079         onFail("a->sType (Error: Value not equal)");
6080     };
6081     if (a->pNext) {
6082         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6083     }
6084     if (!((a->maxTimelineSemaphoreValueDifference) == (b->maxTimelineSemaphoreValueDifference))) {
6085         onFail("a->maxTimelineSemaphoreValueDifference (Error: Value not equal)");
6086     };
6087 }
6088 
checkEqual_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo * a,const VkSemaphoreTypeCreateInfo * b,OnFailCompareFunc onFail)6089 void checkEqual_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo* a,
6090                                           const VkSemaphoreTypeCreateInfo* b,
6091                                           OnFailCompareFunc onFail) {
6092     if (!((a->sType) == (b->sType))) {
6093         onFail("a->sType (Error: Value not equal)");
6094     };
6095     if (a->pNext) {
6096         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6097     }
6098     if (!((a->semaphoreType) == (b->semaphoreType))) {
6099         onFail("a->semaphoreType (Error: Value not equal)");
6100     };
6101     if (!((a->initialValue) == (b->initialValue))) {
6102         onFail("a->initialValue (Error: Value not equal)");
6103     };
6104 }
6105 
checkEqual_VkTimelineSemaphoreSubmitInfo(const VkTimelineSemaphoreSubmitInfo * a,const VkTimelineSemaphoreSubmitInfo * b,OnFailCompareFunc onFail)6106 void checkEqual_VkTimelineSemaphoreSubmitInfo(const VkTimelineSemaphoreSubmitInfo* a,
6107                                               const VkTimelineSemaphoreSubmitInfo* b,
6108                                               OnFailCompareFunc onFail) {
6109     if (!((a->sType) == (b->sType))) {
6110         onFail("a->sType (Error: Value not equal)");
6111     };
6112     if (a->pNext) {
6113         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6114     }
6115     if (!((a->waitSemaphoreValueCount) == (b->waitSemaphoreValueCount))) {
6116         onFail("a->waitSemaphoreValueCount (Error: Value not equal)");
6117     };
6118     if (!((!(a->pWaitSemaphoreValues) && !(b->pWaitSemaphoreValues)) ||
6119           ((a->pWaitSemaphoreValues) && (b->pWaitSemaphoreValues)))) {
6120         onFail("a->pWaitSemaphoreValues (Error: Mismatch in optional field)");
6121     };
6122     if (a->pWaitSemaphoreValues && b->pWaitSemaphoreValues) {
6123         if (!((a->waitSemaphoreValueCount) == (b->waitSemaphoreValueCount))) {
6124             onFail("a->pWaitSemaphoreValues (Error: Lengths not equal)");
6125         };
6126         if (!((memcmp(a->pWaitSemaphoreValues, b->pWaitSemaphoreValues,
6127                       a->waitSemaphoreValueCount * sizeof(const uint64_t)) == 0))) {
6128             onFail("a->pWaitSemaphoreValues (Error: Unequal dyn array)");
6129         };
6130     }
6131     if (!((a->signalSemaphoreValueCount) == (b->signalSemaphoreValueCount))) {
6132         onFail("a->signalSemaphoreValueCount (Error: Value not equal)");
6133     };
6134     if (!((!(a->pSignalSemaphoreValues) && !(b->pSignalSemaphoreValues)) ||
6135           ((a->pSignalSemaphoreValues) && (b->pSignalSemaphoreValues)))) {
6136         onFail("a->pSignalSemaphoreValues (Error: Mismatch in optional field)");
6137     };
6138     if (a->pSignalSemaphoreValues && b->pSignalSemaphoreValues) {
6139         if (!((a->signalSemaphoreValueCount) == (b->signalSemaphoreValueCount))) {
6140             onFail("a->pSignalSemaphoreValues (Error: Lengths not equal)");
6141         };
6142         if (!((memcmp(a->pSignalSemaphoreValues, b->pSignalSemaphoreValues,
6143                       a->signalSemaphoreValueCount * sizeof(const uint64_t)) == 0))) {
6144             onFail("a->pSignalSemaphoreValues (Error: Unequal dyn array)");
6145         };
6146     }
6147 }
6148 
checkEqual_VkSemaphoreWaitInfo(const VkSemaphoreWaitInfo * a,const VkSemaphoreWaitInfo * b,OnFailCompareFunc onFail)6149 void checkEqual_VkSemaphoreWaitInfo(const VkSemaphoreWaitInfo* a, const VkSemaphoreWaitInfo* b,
6150                                     OnFailCompareFunc onFail) {
6151     if (!((a->sType) == (b->sType))) {
6152         onFail("a->sType (Error: Value not equal)");
6153     };
6154     if (a->pNext) {
6155         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6156     }
6157     if (!((a->flags) == (b->flags))) {
6158         onFail("a->flags (Error: Value not equal)");
6159     };
6160     if (!((a->semaphoreCount) == (b->semaphoreCount))) {
6161         onFail("a->semaphoreCount (Error: Value not equal)");
6162     };
6163     if (!((a->semaphoreCount) == (b->semaphoreCount))) {
6164         onFail("a->pSemaphores (Error: Lengths not equal)");
6165     };
6166     if (!((memcmp(a->pSemaphores, b->pSemaphores, a->semaphoreCount * sizeof(const VkSemaphore)) ==
6167            0))) {
6168         onFail("a->pSemaphores (Error: Unequal dyn array)");
6169     };
6170     if (!((a->semaphoreCount) == (b->semaphoreCount))) {
6171         onFail("a->pValues (Error: Lengths not equal)");
6172     };
6173     if (!((memcmp(a->pValues, b->pValues, a->semaphoreCount * sizeof(const uint64_t)) == 0))) {
6174         onFail("a->pValues (Error: Unequal dyn array)");
6175     };
6176 }
6177 
checkEqual_VkSemaphoreSignalInfo(const VkSemaphoreSignalInfo * a,const VkSemaphoreSignalInfo * b,OnFailCompareFunc onFail)6178 void checkEqual_VkSemaphoreSignalInfo(const VkSemaphoreSignalInfo* a,
6179                                       const VkSemaphoreSignalInfo* b, OnFailCompareFunc onFail) {
6180     if (!((a->sType) == (b->sType))) {
6181         onFail("a->sType (Error: Value not equal)");
6182     };
6183     if (a->pNext) {
6184         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6185     }
6186     if (!((a->semaphore) == (b->semaphore))) {
6187         onFail("a->semaphore (Error: Value not equal)");
6188     };
6189     if (!((a->value) == (b->value))) {
6190         onFail("a->value (Error: Value not equal)");
6191     };
6192 }
6193 
checkEqual_VkPhysicalDeviceBufferDeviceAddressFeatures(const VkPhysicalDeviceBufferDeviceAddressFeatures * a,const VkPhysicalDeviceBufferDeviceAddressFeatures * b,OnFailCompareFunc onFail)6194 void checkEqual_VkPhysicalDeviceBufferDeviceAddressFeatures(
6195     const VkPhysicalDeviceBufferDeviceAddressFeatures* a,
6196     const VkPhysicalDeviceBufferDeviceAddressFeatures* b, OnFailCompareFunc onFail) {
6197     if (!((a->sType) == (b->sType))) {
6198         onFail("a->sType (Error: Value not equal)");
6199     };
6200     if (a->pNext) {
6201         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6202     }
6203     if (!((a->bufferDeviceAddress) == (b->bufferDeviceAddress))) {
6204         onFail("a->bufferDeviceAddress (Error: Value not equal)");
6205     };
6206     if (!((a->bufferDeviceAddressCaptureReplay) == (b->bufferDeviceAddressCaptureReplay))) {
6207         onFail("a->bufferDeviceAddressCaptureReplay (Error: Value not equal)");
6208     };
6209     if (!((a->bufferDeviceAddressMultiDevice) == (b->bufferDeviceAddressMultiDevice))) {
6210         onFail("a->bufferDeviceAddressMultiDevice (Error: Value not equal)");
6211     };
6212 }
6213 
checkEqual_VkBufferDeviceAddressInfo(const VkBufferDeviceAddressInfo * a,const VkBufferDeviceAddressInfo * b,OnFailCompareFunc onFail)6214 void checkEqual_VkBufferDeviceAddressInfo(const VkBufferDeviceAddressInfo* a,
6215                                           const VkBufferDeviceAddressInfo* b,
6216                                           OnFailCompareFunc onFail) {
6217     if (!((a->sType) == (b->sType))) {
6218         onFail("a->sType (Error: Value not equal)");
6219     };
6220     if (a->pNext) {
6221         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6222     }
6223     if (!((a->buffer) == (b->buffer))) {
6224         onFail("a->buffer (Error: Value not equal)");
6225     };
6226 }
6227 
checkEqual_VkBufferOpaqueCaptureAddressCreateInfo(const VkBufferOpaqueCaptureAddressCreateInfo * a,const VkBufferOpaqueCaptureAddressCreateInfo * b,OnFailCompareFunc onFail)6228 void checkEqual_VkBufferOpaqueCaptureAddressCreateInfo(
6229     const VkBufferOpaqueCaptureAddressCreateInfo* a,
6230     const VkBufferOpaqueCaptureAddressCreateInfo* b, OnFailCompareFunc onFail) {
6231     if (!((a->sType) == (b->sType))) {
6232         onFail("a->sType (Error: Value not equal)");
6233     };
6234     if (a->pNext) {
6235         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6236     }
6237     if (!((a->opaqueCaptureAddress) == (b->opaqueCaptureAddress))) {
6238         onFail("a->opaqueCaptureAddress (Error: Value not equal)");
6239     };
6240 }
6241 
checkEqual_VkMemoryOpaqueCaptureAddressAllocateInfo(const VkMemoryOpaqueCaptureAddressAllocateInfo * a,const VkMemoryOpaqueCaptureAddressAllocateInfo * b,OnFailCompareFunc onFail)6242 void checkEqual_VkMemoryOpaqueCaptureAddressAllocateInfo(
6243     const VkMemoryOpaqueCaptureAddressAllocateInfo* a,
6244     const VkMemoryOpaqueCaptureAddressAllocateInfo* b, OnFailCompareFunc onFail) {
6245     if (!((a->sType) == (b->sType))) {
6246         onFail("a->sType (Error: Value not equal)");
6247     };
6248     if (a->pNext) {
6249         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6250     }
6251     if (!((a->opaqueCaptureAddress) == (b->opaqueCaptureAddress))) {
6252         onFail("a->opaqueCaptureAddress (Error: Value not equal)");
6253     };
6254 }
6255 
checkEqual_VkDeviceMemoryOpaqueCaptureAddressInfo(const VkDeviceMemoryOpaqueCaptureAddressInfo * a,const VkDeviceMemoryOpaqueCaptureAddressInfo * b,OnFailCompareFunc onFail)6256 void checkEqual_VkDeviceMemoryOpaqueCaptureAddressInfo(
6257     const VkDeviceMemoryOpaqueCaptureAddressInfo* a,
6258     const VkDeviceMemoryOpaqueCaptureAddressInfo* b, OnFailCompareFunc onFail) {
6259     if (!((a->sType) == (b->sType))) {
6260         onFail("a->sType (Error: Value not equal)");
6261     };
6262     if (a->pNext) {
6263         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6264     }
6265     if (!((a->memory) == (b->memory))) {
6266         onFail("a->memory (Error: Value not equal)");
6267     };
6268 }
6269 
6270 #endif
6271 #ifdef VK_VERSION_1_3
checkEqual_VkPhysicalDeviceVulkan13Features(const VkPhysicalDeviceVulkan13Features * a,const VkPhysicalDeviceVulkan13Features * b,OnFailCompareFunc onFail)6272 void checkEqual_VkPhysicalDeviceVulkan13Features(const VkPhysicalDeviceVulkan13Features* a,
6273                                                  const VkPhysicalDeviceVulkan13Features* b,
6274                                                  OnFailCompareFunc onFail) {
6275     if (!((a->sType) == (b->sType))) {
6276         onFail("a->sType (Error: Value not equal)");
6277     };
6278     if (a->pNext) {
6279         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6280     }
6281     if (!((a->robustImageAccess) == (b->robustImageAccess))) {
6282         onFail("a->robustImageAccess (Error: Value not equal)");
6283     };
6284     if (!((a->inlineUniformBlock) == (b->inlineUniformBlock))) {
6285         onFail("a->inlineUniformBlock (Error: Value not equal)");
6286     };
6287     if (!((a->descriptorBindingInlineUniformBlockUpdateAfterBind) ==
6288           (b->descriptorBindingInlineUniformBlockUpdateAfterBind))) {
6289         onFail("a->descriptorBindingInlineUniformBlockUpdateAfterBind (Error: Value not equal)");
6290     };
6291     if (!((a->pipelineCreationCacheControl) == (b->pipelineCreationCacheControl))) {
6292         onFail("a->pipelineCreationCacheControl (Error: Value not equal)");
6293     };
6294     if (!((a->privateData) == (b->privateData))) {
6295         onFail("a->privateData (Error: Value not equal)");
6296     };
6297     if (!((a->shaderDemoteToHelperInvocation) == (b->shaderDemoteToHelperInvocation))) {
6298         onFail("a->shaderDemoteToHelperInvocation (Error: Value not equal)");
6299     };
6300     if (!((a->shaderTerminateInvocation) == (b->shaderTerminateInvocation))) {
6301         onFail("a->shaderTerminateInvocation (Error: Value not equal)");
6302     };
6303     if (!((a->subgroupSizeControl) == (b->subgroupSizeControl))) {
6304         onFail("a->subgroupSizeControl (Error: Value not equal)");
6305     };
6306     if (!((a->computeFullSubgroups) == (b->computeFullSubgroups))) {
6307         onFail("a->computeFullSubgroups (Error: Value not equal)");
6308     };
6309     if (!((a->synchronization2) == (b->synchronization2))) {
6310         onFail("a->synchronization2 (Error: Value not equal)");
6311     };
6312     if (!((a->textureCompressionASTC_HDR) == (b->textureCompressionASTC_HDR))) {
6313         onFail("a->textureCompressionASTC_HDR (Error: Value not equal)");
6314     };
6315     if (!((a->shaderZeroInitializeWorkgroupMemory) == (b->shaderZeroInitializeWorkgroupMemory))) {
6316         onFail("a->shaderZeroInitializeWorkgroupMemory (Error: Value not equal)");
6317     };
6318     if (!((a->dynamicRendering) == (b->dynamicRendering))) {
6319         onFail("a->dynamicRendering (Error: Value not equal)");
6320     };
6321     if (!((a->shaderIntegerDotProduct) == (b->shaderIntegerDotProduct))) {
6322         onFail("a->shaderIntegerDotProduct (Error: Value not equal)");
6323     };
6324     if (!((a->maintenance4) == (b->maintenance4))) {
6325         onFail("a->maintenance4 (Error: Value not equal)");
6326     };
6327 }
6328 
checkEqual_VkPhysicalDeviceVulkan13Properties(const VkPhysicalDeviceVulkan13Properties * a,const VkPhysicalDeviceVulkan13Properties * b,OnFailCompareFunc onFail)6329 void checkEqual_VkPhysicalDeviceVulkan13Properties(const VkPhysicalDeviceVulkan13Properties* a,
6330                                                    const VkPhysicalDeviceVulkan13Properties* b,
6331                                                    OnFailCompareFunc onFail) {
6332     if (!((a->sType) == (b->sType))) {
6333         onFail("a->sType (Error: Value not equal)");
6334     };
6335     if (a->pNext) {
6336         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6337     }
6338     if (!((a->minSubgroupSize) == (b->minSubgroupSize))) {
6339         onFail("a->minSubgroupSize (Error: Value not equal)");
6340     };
6341     if (!((a->maxSubgroupSize) == (b->maxSubgroupSize))) {
6342         onFail("a->maxSubgroupSize (Error: Value not equal)");
6343     };
6344     if (!((a->maxComputeWorkgroupSubgroups) == (b->maxComputeWorkgroupSubgroups))) {
6345         onFail("a->maxComputeWorkgroupSubgroups (Error: Value not equal)");
6346     };
6347     if (!((a->requiredSubgroupSizeStages) == (b->requiredSubgroupSizeStages))) {
6348         onFail("a->requiredSubgroupSizeStages (Error: Value not equal)");
6349     };
6350     if (!((a->maxInlineUniformBlockSize) == (b->maxInlineUniformBlockSize))) {
6351         onFail("a->maxInlineUniformBlockSize (Error: Value not equal)");
6352     };
6353     if (!((a->maxPerStageDescriptorInlineUniformBlocks) ==
6354           (b->maxPerStageDescriptorInlineUniformBlocks))) {
6355         onFail("a->maxPerStageDescriptorInlineUniformBlocks (Error: Value not equal)");
6356     };
6357     if (!((a->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks) ==
6358           (b->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks))) {
6359         onFail(
6360             "a->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks (Error: Value not equal)");
6361     };
6362     if (!((a->maxDescriptorSetInlineUniformBlocks) == (b->maxDescriptorSetInlineUniformBlocks))) {
6363         onFail("a->maxDescriptorSetInlineUniformBlocks (Error: Value not equal)");
6364     };
6365     if (!((a->maxDescriptorSetUpdateAfterBindInlineUniformBlocks) ==
6366           (b->maxDescriptorSetUpdateAfterBindInlineUniformBlocks))) {
6367         onFail("a->maxDescriptorSetUpdateAfterBindInlineUniformBlocks (Error: Value not equal)");
6368     };
6369     if (!((a->maxInlineUniformTotalSize) == (b->maxInlineUniformTotalSize))) {
6370         onFail("a->maxInlineUniformTotalSize (Error: Value not equal)");
6371     };
6372     if (!((a->integerDotProduct8BitUnsignedAccelerated) ==
6373           (b->integerDotProduct8BitUnsignedAccelerated))) {
6374         onFail("a->integerDotProduct8BitUnsignedAccelerated (Error: Value not equal)");
6375     };
6376     if (!((a->integerDotProduct8BitSignedAccelerated) ==
6377           (b->integerDotProduct8BitSignedAccelerated))) {
6378         onFail("a->integerDotProduct8BitSignedAccelerated (Error: Value not equal)");
6379     };
6380     if (!((a->integerDotProduct8BitMixedSignednessAccelerated) ==
6381           (b->integerDotProduct8BitMixedSignednessAccelerated))) {
6382         onFail("a->integerDotProduct8BitMixedSignednessAccelerated (Error: Value not equal)");
6383     };
6384     if (!((a->integerDotProduct4x8BitPackedUnsignedAccelerated) ==
6385           (b->integerDotProduct4x8BitPackedUnsignedAccelerated))) {
6386         onFail("a->integerDotProduct4x8BitPackedUnsignedAccelerated (Error: Value not equal)");
6387     };
6388     if (!((a->integerDotProduct4x8BitPackedSignedAccelerated) ==
6389           (b->integerDotProduct4x8BitPackedSignedAccelerated))) {
6390         onFail("a->integerDotProduct4x8BitPackedSignedAccelerated (Error: Value not equal)");
6391     };
6392     if (!((a->integerDotProduct4x8BitPackedMixedSignednessAccelerated) ==
6393           (b->integerDotProduct4x8BitPackedMixedSignednessAccelerated))) {
6394         onFail(
6395             "a->integerDotProduct4x8BitPackedMixedSignednessAccelerated (Error: Value not equal)");
6396     };
6397     if (!((a->integerDotProduct16BitUnsignedAccelerated) ==
6398           (b->integerDotProduct16BitUnsignedAccelerated))) {
6399         onFail("a->integerDotProduct16BitUnsignedAccelerated (Error: Value not equal)");
6400     };
6401     if (!((a->integerDotProduct16BitSignedAccelerated) ==
6402           (b->integerDotProduct16BitSignedAccelerated))) {
6403         onFail("a->integerDotProduct16BitSignedAccelerated (Error: Value not equal)");
6404     };
6405     if (!((a->integerDotProduct16BitMixedSignednessAccelerated) ==
6406           (b->integerDotProduct16BitMixedSignednessAccelerated))) {
6407         onFail("a->integerDotProduct16BitMixedSignednessAccelerated (Error: Value not equal)");
6408     };
6409     if (!((a->integerDotProduct32BitUnsignedAccelerated) ==
6410           (b->integerDotProduct32BitUnsignedAccelerated))) {
6411         onFail("a->integerDotProduct32BitUnsignedAccelerated (Error: Value not equal)");
6412     };
6413     if (!((a->integerDotProduct32BitSignedAccelerated) ==
6414           (b->integerDotProduct32BitSignedAccelerated))) {
6415         onFail("a->integerDotProduct32BitSignedAccelerated (Error: Value not equal)");
6416     };
6417     if (!((a->integerDotProduct32BitMixedSignednessAccelerated) ==
6418           (b->integerDotProduct32BitMixedSignednessAccelerated))) {
6419         onFail("a->integerDotProduct32BitMixedSignednessAccelerated (Error: Value not equal)");
6420     };
6421     if (!((a->integerDotProduct64BitUnsignedAccelerated) ==
6422           (b->integerDotProduct64BitUnsignedAccelerated))) {
6423         onFail("a->integerDotProduct64BitUnsignedAccelerated (Error: Value not equal)");
6424     };
6425     if (!((a->integerDotProduct64BitSignedAccelerated) ==
6426           (b->integerDotProduct64BitSignedAccelerated))) {
6427         onFail("a->integerDotProduct64BitSignedAccelerated (Error: Value not equal)");
6428     };
6429     if (!((a->integerDotProduct64BitMixedSignednessAccelerated) ==
6430           (b->integerDotProduct64BitMixedSignednessAccelerated))) {
6431         onFail("a->integerDotProduct64BitMixedSignednessAccelerated (Error: Value not equal)");
6432     };
6433     if (!((a->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) ==
6434           (b->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))) {
6435         onFail(
6436             "a->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated (Error: Value not "
6437             "equal)");
6438     };
6439     if (!((a->integerDotProductAccumulatingSaturating8BitSignedAccelerated) ==
6440           (b->integerDotProductAccumulatingSaturating8BitSignedAccelerated))) {
6441         onFail(
6442             "a->integerDotProductAccumulatingSaturating8BitSignedAccelerated (Error: Value not "
6443             "equal)");
6444     };
6445     if (!((a->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) ==
6446           (b->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))) {
6447         onFail(
6448             "a->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated (Error: "
6449             "Value not equal)");
6450     };
6451     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) ==
6452           (b->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))) {
6453         onFail(
6454             "a->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated (Error: "
6455             "Value not equal)");
6456     };
6457     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) ==
6458           (b->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))) {
6459         onFail(
6460             "a->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated (Error: Value "
6461             "not equal)");
6462     };
6463     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) ==
6464           (b->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))) {
6465         onFail(
6466             "a->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated "
6467             "(Error: Value not equal)");
6468     };
6469     if (!((a->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) ==
6470           (b->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))) {
6471         onFail(
6472             "a->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated (Error: Value not "
6473             "equal)");
6474     };
6475     if (!((a->integerDotProductAccumulatingSaturating16BitSignedAccelerated) ==
6476           (b->integerDotProductAccumulatingSaturating16BitSignedAccelerated))) {
6477         onFail(
6478             "a->integerDotProductAccumulatingSaturating16BitSignedAccelerated (Error: Value not "
6479             "equal)");
6480     };
6481     if (!((a->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) ==
6482           (b->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))) {
6483         onFail(
6484             "a->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated (Error: "
6485             "Value not equal)");
6486     };
6487     if (!((a->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) ==
6488           (b->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))) {
6489         onFail(
6490             "a->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated (Error: Value not "
6491             "equal)");
6492     };
6493     if (!((a->integerDotProductAccumulatingSaturating32BitSignedAccelerated) ==
6494           (b->integerDotProductAccumulatingSaturating32BitSignedAccelerated))) {
6495         onFail(
6496             "a->integerDotProductAccumulatingSaturating32BitSignedAccelerated (Error: Value not "
6497             "equal)");
6498     };
6499     if (!((a->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) ==
6500           (b->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))) {
6501         onFail(
6502             "a->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated (Error: "
6503             "Value not equal)");
6504     };
6505     if (!((a->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) ==
6506           (b->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))) {
6507         onFail(
6508             "a->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated (Error: Value not "
6509             "equal)");
6510     };
6511     if (!((a->integerDotProductAccumulatingSaturating64BitSignedAccelerated) ==
6512           (b->integerDotProductAccumulatingSaturating64BitSignedAccelerated))) {
6513         onFail(
6514             "a->integerDotProductAccumulatingSaturating64BitSignedAccelerated (Error: Value not "
6515             "equal)");
6516     };
6517     if (!((a->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) ==
6518           (b->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))) {
6519         onFail(
6520             "a->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated (Error: "
6521             "Value not equal)");
6522     };
6523     if (!((a->storageTexelBufferOffsetAlignmentBytes) ==
6524           (b->storageTexelBufferOffsetAlignmentBytes))) {
6525         onFail("a->storageTexelBufferOffsetAlignmentBytes (Error: Value not equal)");
6526     };
6527     if (!((a->storageTexelBufferOffsetSingleTexelAlignment) ==
6528           (b->storageTexelBufferOffsetSingleTexelAlignment))) {
6529         onFail("a->storageTexelBufferOffsetSingleTexelAlignment (Error: Value not equal)");
6530     };
6531     if (!((a->uniformTexelBufferOffsetAlignmentBytes) ==
6532           (b->uniformTexelBufferOffsetAlignmentBytes))) {
6533         onFail("a->uniformTexelBufferOffsetAlignmentBytes (Error: Value not equal)");
6534     };
6535     if (!((a->uniformTexelBufferOffsetSingleTexelAlignment) ==
6536           (b->uniformTexelBufferOffsetSingleTexelAlignment))) {
6537         onFail("a->uniformTexelBufferOffsetSingleTexelAlignment (Error: Value not equal)");
6538     };
6539     if (!((a->maxBufferSize) == (b->maxBufferSize))) {
6540         onFail("a->maxBufferSize (Error: Value not equal)");
6541     };
6542 }
6543 
checkEqual_VkPipelineCreationFeedback(const VkPipelineCreationFeedback * a,const VkPipelineCreationFeedback * b,OnFailCompareFunc onFail)6544 void checkEqual_VkPipelineCreationFeedback(const VkPipelineCreationFeedback* a,
6545                                            const VkPipelineCreationFeedback* b,
6546                                            OnFailCompareFunc onFail) {
6547     if (!((a->flags) == (b->flags))) {
6548         onFail("a->flags (Error: Value not equal)");
6549     };
6550     if (!((a->duration) == (b->duration))) {
6551         onFail("a->duration (Error: Value not equal)");
6552     };
6553 }
6554 
checkEqual_VkPipelineCreationFeedbackCreateInfo(const VkPipelineCreationFeedbackCreateInfo * a,const VkPipelineCreationFeedbackCreateInfo * b,OnFailCompareFunc onFail)6555 void checkEqual_VkPipelineCreationFeedbackCreateInfo(const VkPipelineCreationFeedbackCreateInfo* a,
6556                                                      const VkPipelineCreationFeedbackCreateInfo* b,
6557                                                      OnFailCompareFunc onFail) {
6558     if (!((a->sType) == (b->sType))) {
6559         onFail("a->sType (Error: Value not equal)");
6560     };
6561     if (a->pNext) {
6562         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6563     }
6564     if ((a->pPipelineCreationFeedback) && (b->pPipelineCreationFeedback)) {
6565         checkEqual_VkPipelineCreationFeedback(a->pPipelineCreationFeedback,
6566                                               b->pPipelineCreationFeedback, onFail);
6567     }
6568     if (!((a->pipelineStageCreationFeedbackCount) == (b->pipelineStageCreationFeedbackCount))) {
6569         onFail("a->pipelineStageCreationFeedbackCount (Error: Value not equal)");
6570     };
6571     if ((a->pPipelineStageCreationFeedbacks) && (b->pPipelineStageCreationFeedbacks)) {
6572         if (!((a->pipelineStageCreationFeedbackCount) == (b->pipelineStageCreationFeedbackCount))) {
6573             onFail("a->pPipelineStageCreationFeedbacks (Error: Lengths not equal)");
6574         };
6575         if ((a->pipelineStageCreationFeedbackCount) == (b->pipelineStageCreationFeedbackCount)) {
6576             if (a) {
6577                 for (uint32_t i = 0; i < (uint32_t)a->pipelineStageCreationFeedbackCount; ++i) {
6578                     checkEqual_VkPipelineCreationFeedback(a->pPipelineStageCreationFeedbacks + i,
6579                                                           b->pPipelineStageCreationFeedbacks + i,
6580                                                           onFail);
6581                 }
6582             }
6583         }
6584     }
6585 }
6586 
checkEqual_VkPhysicalDeviceShaderTerminateInvocationFeatures(const VkPhysicalDeviceShaderTerminateInvocationFeatures * a,const VkPhysicalDeviceShaderTerminateInvocationFeatures * b,OnFailCompareFunc onFail)6587 void checkEqual_VkPhysicalDeviceShaderTerminateInvocationFeatures(
6588     const VkPhysicalDeviceShaderTerminateInvocationFeatures* a,
6589     const VkPhysicalDeviceShaderTerminateInvocationFeatures* b, OnFailCompareFunc onFail) {
6590     if (!((a->sType) == (b->sType))) {
6591         onFail("a->sType (Error: Value not equal)");
6592     };
6593     if (a->pNext) {
6594         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6595     }
6596     if (!((a->shaderTerminateInvocation) == (b->shaderTerminateInvocation))) {
6597         onFail("a->shaderTerminateInvocation (Error: Value not equal)");
6598     };
6599 }
6600 
checkEqual_VkPhysicalDeviceToolProperties(const VkPhysicalDeviceToolProperties * a,const VkPhysicalDeviceToolProperties * b,OnFailCompareFunc onFail)6601 void checkEqual_VkPhysicalDeviceToolProperties(const VkPhysicalDeviceToolProperties* a,
6602                                                const VkPhysicalDeviceToolProperties* b,
6603                                                OnFailCompareFunc onFail) {
6604     if (!((a->sType) == (b->sType))) {
6605         onFail("a->sType (Error: Value not equal)");
6606     };
6607     if (a->pNext) {
6608         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6609     }
6610     if (!((memcmp(a->name, b->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)) == 0))) {
6611         onFail("a->name (Error: Unequal static array)");
6612     };
6613     if (!((memcmp(a->version, b->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)) == 0))) {
6614         onFail("a->version (Error: Unequal static array)");
6615     };
6616     if (!((a->purposes) == (b->purposes))) {
6617         onFail("a->purposes (Error: Value not equal)");
6618     };
6619     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
6620         onFail("a->description (Error: Unequal static array)");
6621     };
6622     if (!((memcmp(a->layer, b->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)) == 0))) {
6623         onFail("a->layer (Error: Unequal static array)");
6624     };
6625 }
6626 
checkEqual_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * a,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * b,OnFailCompareFunc onFail)6627 void checkEqual_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
6628     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* a,
6629     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* b, OnFailCompareFunc onFail) {
6630     if (!((a->sType) == (b->sType))) {
6631         onFail("a->sType (Error: Value not equal)");
6632     };
6633     if (a->pNext) {
6634         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6635     }
6636     if (!((a->shaderDemoteToHelperInvocation) == (b->shaderDemoteToHelperInvocation))) {
6637         onFail("a->shaderDemoteToHelperInvocation (Error: Value not equal)");
6638     };
6639 }
6640 
checkEqual_VkPhysicalDevicePrivateDataFeatures(const VkPhysicalDevicePrivateDataFeatures * a,const VkPhysicalDevicePrivateDataFeatures * b,OnFailCompareFunc onFail)6641 void checkEqual_VkPhysicalDevicePrivateDataFeatures(const VkPhysicalDevicePrivateDataFeatures* a,
6642                                                     const VkPhysicalDevicePrivateDataFeatures* b,
6643                                                     OnFailCompareFunc onFail) {
6644     if (!((a->sType) == (b->sType))) {
6645         onFail("a->sType (Error: Value not equal)");
6646     };
6647     if (a->pNext) {
6648         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6649     }
6650     if (!((a->privateData) == (b->privateData))) {
6651         onFail("a->privateData (Error: Value not equal)");
6652     };
6653 }
6654 
checkEqual_VkDevicePrivateDataCreateInfo(const VkDevicePrivateDataCreateInfo * a,const VkDevicePrivateDataCreateInfo * b,OnFailCompareFunc onFail)6655 void checkEqual_VkDevicePrivateDataCreateInfo(const VkDevicePrivateDataCreateInfo* a,
6656                                               const VkDevicePrivateDataCreateInfo* b,
6657                                               OnFailCompareFunc onFail) {
6658     if (!((a->sType) == (b->sType))) {
6659         onFail("a->sType (Error: Value not equal)");
6660     };
6661     if (a->pNext) {
6662         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6663     }
6664     if (!((a->privateDataSlotRequestCount) == (b->privateDataSlotRequestCount))) {
6665         onFail("a->privateDataSlotRequestCount (Error: Value not equal)");
6666     };
6667 }
6668 
checkEqual_VkPrivateDataSlotCreateInfo(const VkPrivateDataSlotCreateInfo * a,const VkPrivateDataSlotCreateInfo * b,OnFailCompareFunc onFail)6669 void checkEqual_VkPrivateDataSlotCreateInfo(const VkPrivateDataSlotCreateInfo* a,
6670                                             const VkPrivateDataSlotCreateInfo* b,
6671                                             OnFailCompareFunc onFail) {
6672     if (!((a->sType) == (b->sType))) {
6673         onFail("a->sType (Error: Value not equal)");
6674     };
6675     if (a->pNext) {
6676         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6677     }
6678     if (!((a->flags) == (b->flags))) {
6679         onFail("a->flags (Error: Value not equal)");
6680     };
6681 }
6682 
checkEqual_VkPhysicalDevicePipelineCreationCacheControlFeatures(const VkPhysicalDevicePipelineCreationCacheControlFeatures * a,const VkPhysicalDevicePipelineCreationCacheControlFeatures * b,OnFailCompareFunc onFail)6683 void checkEqual_VkPhysicalDevicePipelineCreationCacheControlFeatures(
6684     const VkPhysicalDevicePipelineCreationCacheControlFeatures* a,
6685     const VkPhysicalDevicePipelineCreationCacheControlFeatures* b, OnFailCompareFunc onFail) {
6686     if (!((a->sType) == (b->sType))) {
6687         onFail("a->sType (Error: Value not equal)");
6688     };
6689     if (a->pNext) {
6690         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6691     }
6692     if (!((a->pipelineCreationCacheControl) == (b->pipelineCreationCacheControl))) {
6693         onFail("a->pipelineCreationCacheControl (Error: Value not equal)");
6694     };
6695 }
6696 
checkEqual_VkMemoryBarrier2(const VkMemoryBarrier2 * a,const VkMemoryBarrier2 * b,OnFailCompareFunc onFail)6697 void checkEqual_VkMemoryBarrier2(const VkMemoryBarrier2* a, const VkMemoryBarrier2* b,
6698                                  OnFailCompareFunc onFail) {
6699     if (!((a->sType) == (b->sType))) {
6700         onFail("a->sType (Error: Value not equal)");
6701     };
6702     if (a->pNext) {
6703         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6704     }
6705     if (!((a->srcStageMask) == (b->srcStageMask))) {
6706         onFail("a->srcStageMask (Error: Value not equal)");
6707     };
6708     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
6709         onFail("a->srcAccessMask (Error: Value not equal)");
6710     };
6711     if (!((a->dstStageMask) == (b->dstStageMask))) {
6712         onFail("a->dstStageMask (Error: Value not equal)");
6713     };
6714     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
6715         onFail("a->dstAccessMask (Error: Value not equal)");
6716     };
6717 }
6718 
checkEqual_VkBufferMemoryBarrier2(const VkBufferMemoryBarrier2 * a,const VkBufferMemoryBarrier2 * b,OnFailCompareFunc onFail)6719 void checkEqual_VkBufferMemoryBarrier2(const VkBufferMemoryBarrier2* a,
6720                                        const VkBufferMemoryBarrier2* b, OnFailCompareFunc onFail) {
6721     if (!((a->sType) == (b->sType))) {
6722         onFail("a->sType (Error: Value not equal)");
6723     };
6724     if (a->pNext) {
6725         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6726     }
6727     if (!((a->srcStageMask) == (b->srcStageMask))) {
6728         onFail("a->srcStageMask (Error: Value not equal)");
6729     };
6730     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
6731         onFail("a->srcAccessMask (Error: Value not equal)");
6732     };
6733     if (!((a->dstStageMask) == (b->dstStageMask))) {
6734         onFail("a->dstStageMask (Error: Value not equal)");
6735     };
6736     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
6737         onFail("a->dstAccessMask (Error: Value not equal)");
6738     };
6739     if (!((a->srcQueueFamilyIndex) == (b->srcQueueFamilyIndex))) {
6740         onFail("a->srcQueueFamilyIndex (Error: Value not equal)");
6741     };
6742     if (!((a->dstQueueFamilyIndex) == (b->dstQueueFamilyIndex))) {
6743         onFail("a->dstQueueFamilyIndex (Error: Value not equal)");
6744     };
6745     if (!((a->buffer) == (b->buffer))) {
6746         onFail("a->buffer (Error: Value not equal)");
6747     };
6748     if (!((a->offset) == (b->offset))) {
6749         onFail("a->offset (Error: Value not equal)");
6750     };
6751     if (!((a->size) == (b->size))) {
6752         onFail("a->size (Error: Value not equal)");
6753     };
6754 }
6755 
checkEqual_VkImageMemoryBarrier2(const VkImageMemoryBarrier2 * a,const VkImageMemoryBarrier2 * b,OnFailCompareFunc onFail)6756 void checkEqual_VkImageMemoryBarrier2(const VkImageMemoryBarrier2* a,
6757                                       const VkImageMemoryBarrier2* b, OnFailCompareFunc onFail) {
6758     if (!((a->sType) == (b->sType))) {
6759         onFail("a->sType (Error: Value not equal)");
6760     };
6761     if (a->pNext) {
6762         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6763     }
6764     if (!((a->srcStageMask) == (b->srcStageMask))) {
6765         onFail("a->srcStageMask (Error: Value not equal)");
6766     };
6767     if (!((a->srcAccessMask) == (b->srcAccessMask))) {
6768         onFail("a->srcAccessMask (Error: Value not equal)");
6769     };
6770     if (!((a->dstStageMask) == (b->dstStageMask))) {
6771         onFail("a->dstStageMask (Error: Value not equal)");
6772     };
6773     if (!((a->dstAccessMask) == (b->dstAccessMask))) {
6774         onFail("a->dstAccessMask (Error: Value not equal)");
6775     };
6776     if (!((a->oldLayout) == (b->oldLayout))) {
6777         onFail("a->oldLayout (Error: Value not equal)");
6778     };
6779     if (!((a->newLayout) == (b->newLayout))) {
6780         onFail("a->newLayout (Error: Value not equal)");
6781     };
6782     if (!((a->srcQueueFamilyIndex) == (b->srcQueueFamilyIndex))) {
6783         onFail("a->srcQueueFamilyIndex (Error: Value not equal)");
6784     };
6785     if (!((a->dstQueueFamilyIndex) == (b->dstQueueFamilyIndex))) {
6786         onFail("a->dstQueueFamilyIndex (Error: Value not equal)");
6787     };
6788     if (!((a->image) == (b->image))) {
6789         onFail("a->image (Error: Value not equal)");
6790     };
6791     checkEqual_VkImageSubresourceRange(&a->subresourceRange, &b->subresourceRange, onFail);
6792 }
6793 
checkEqual_VkDependencyInfo(const VkDependencyInfo * a,const VkDependencyInfo * b,OnFailCompareFunc onFail)6794 void checkEqual_VkDependencyInfo(const VkDependencyInfo* a, const VkDependencyInfo* b,
6795                                  OnFailCompareFunc onFail) {
6796     if (!((a->sType) == (b->sType))) {
6797         onFail("a->sType (Error: Value not equal)");
6798     };
6799     if (a->pNext) {
6800         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6801     }
6802     if (!((a->dependencyFlags) == (b->dependencyFlags))) {
6803         onFail("a->dependencyFlags (Error: Value not equal)");
6804     };
6805     if (!((a->memoryBarrierCount) == (b->memoryBarrierCount))) {
6806         onFail("a->memoryBarrierCount (Error: Value not equal)");
6807     };
6808     if ((a->pMemoryBarriers) && (b->pMemoryBarriers)) {
6809         if (!((a->memoryBarrierCount) == (b->memoryBarrierCount))) {
6810             onFail("a->pMemoryBarriers (Error: Lengths not equal)");
6811         };
6812         if ((a->memoryBarrierCount) == (b->memoryBarrierCount)) {
6813             if (a) {
6814                 for (uint32_t i = 0; i < (uint32_t)a->memoryBarrierCount; ++i) {
6815                     checkEqual_VkMemoryBarrier2(a->pMemoryBarriers + i, b->pMemoryBarriers + i,
6816                                                 onFail);
6817                 }
6818             }
6819         }
6820     }
6821     if (!((a->bufferMemoryBarrierCount) == (b->bufferMemoryBarrierCount))) {
6822         onFail("a->bufferMemoryBarrierCount (Error: Value not equal)");
6823     };
6824     if ((a->pBufferMemoryBarriers) && (b->pBufferMemoryBarriers)) {
6825         if (!((a->bufferMemoryBarrierCount) == (b->bufferMemoryBarrierCount))) {
6826             onFail("a->pBufferMemoryBarriers (Error: Lengths not equal)");
6827         };
6828         if ((a->bufferMemoryBarrierCount) == (b->bufferMemoryBarrierCount)) {
6829             if (a) {
6830                 for (uint32_t i = 0; i < (uint32_t)a->bufferMemoryBarrierCount; ++i) {
6831                     checkEqual_VkBufferMemoryBarrier2(a->pBufferMemoryBarriers + i,
6832                                                       b->pBufferMemoryBarriers + i, onFail);
6833                 }
6834             }
6835         }
6836     }
6837     if (!((a->imageMemoryBarrierCount) == (b->imageMemoryBarrierCount))) {
6838         onFail("a->imageMemoryBarrierCount (Error: Value not equal)");
6839     };
6840     if ((a->pImageMemoryBarriers) && (b->pImageMemoryBarriers)) {
6841         if (!((a->imageMemoryBarrierCount) == (b->imageMemoryBarrierCount))) {
6842             onFail("a->pImageMemoryBarriers (Error: Lengths not equal)");
6843         };
6844         if ((a->imageMemoryBarrierCount) == (b->imageMemoryBarrierCount)) {
6845             if (a) {
6846                 for (uint32_t i = 0; i < (uint32_t)a->imageMemoryBarrierCount; ++i) {
6847                     checkEqual_VkImageMemoryBarrier2(a->pImageMemoryBarriers + i,
6848                                                      b->pImageMemoryBarriers + i, onFail);
6849                 }
6850             }
6851         }
6852     }
6853 }
6854 
checkEqual_VkSemaphoreSubmitInfo(const VkSemaphoreSubmitInfo * a,const VkSemaphoreSubmitInfo * b,OnFailCompareFunc onFail)6855 void checkEqual_VkSemaphoreSubmitInfo(const VkSemaphoreSubmitInfo* a,
6856                                       const VkSemaphoreSubmitInfo* b, OnFailCompareFunc onFail) {
6857     if (!((a->sType) == (b->sType))) {
6858         onFail("a->sType (Error: Value not equal)");
6859     };
6860     if (a->pNext) {
6861         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6862     }
6863     if (!((a->semaphore) == (b->semaphore))) {
6864         onFail("a->semaphore (Error: Value not equal)");
6865     };
6866     if (!((a->value) == (b->value))) {
6867         onFail("a->value (Error: Value not equal)");
6868     };
6869     if (!((a->stageMask) == (b->stageMask))) {
6870         onFail("a->stageMask (Error: Value not equal)");
6871     };
6872     if (!((a->deviceIndex) == (b->deviceIndex))) {
6873         onFail("a->deviceIndex (Error: Value not equal)");
6874     };
6875 }
6876 
checkEqual_VkCommandBufferSubmitInfo(const VkCommandBufferSubmitInfo * a,const VkCommandBufferSubmitInfo * b,OnFailCompareFunc onFail)6877 void checkEqual_VkCommandBufferSubmitInfo(const VkCommandBufferSubmitInfo* a,
6878                                           const VkCommandBufferSubmitInfo* b,
6879                                           OnFailCompareFunc onFail) {
6880     if (!((a->sType) == (b->sType))) {
6881         onFail("a->sType (Error: Value not equal)");
6882     };
6883     if (a->pNext) {
6884         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6885     }
6886     if (!((a->commandBuffer) == (b->commandBuffer))) {
6887         onFail("a->commandBuffer (Error: Value not equal)");
6888     };
6889     if (!((a->deviceMask) == (b->deviceMask))) {
6890         onFail("a->deviceMask (Error: Value not equal)");
6891     };
6892 }
6893 
checkEqual_VkSubmitInfo2(const VkSubmitInfo2 * a,const VkSubmitInfo2 * b,OnFailCompareFunc onFail)6894 void checkEqual_VkSubmitInfo2(const VkSubmitInfo2* a, const VkSubmitInfo2* b,
6895                               OnFailCompareFunc onFail) {
6896     if (!((a->sType) == (b->sType))) {
6897         onFail("a->sType (Error: Value not equal)");
6898     };
6899     if (a->pNext) {
6900         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6901     }
6902     if (!((a->flags) == (b->flags))) {
6903         onFail("a->flags (Error: Value not equal)");
6904     };
6905     if (!((a->waitSemaphoreInfoCount) == (b->waitSemaphoreInfoCount))) {
6906         onFail("a->waitSemaphoreInfoCount (Error: Value not equal)");
6907     };
6908     if ((a->pWaitSemaphoreInfos) && (b->pWaitSemaphoreInfos)) {
6909         if (!((a->waitSemaphoreInfoCount) == (b->waitSemaphoreInfoCount))) {
6910             onFail("a->pWaitSemaphoreInfos (Error: Lengths not equal)");
6911         };
6912         if ((a->waitSemaphoreInfoCount) == (b->waitSemaphoreInfoCount)) {
6913             if (a) {
6914                 for (uint32_t i = 0; i < (uint32_t)a->waitSemaphoreInfoCount; ++i) {
6915                     checkEqual_VkSemaphoreSubmitInfo(a->pWaitSemaphoreInfos + i,
6916                                                      b->pWaitSemaphoreInfos + i, onFail);
6917                 }
6918             }
6919         }
6920     }
6921     if (!((a->commandBufferInfoCount) == (b->commandBufferInfoCount))) {
6922         onFail("a->commandBufferInfoCount (Error: Value not equal)");
6923     };
6924     if ((a->pCommandBufferInfos) && (b->pCommandBufferInfos)) {
6925         if (!((a->commandBufferInfoCount) == (b->commandBufferInfoCount))) {
6926             onFail("a->pCommandBufferInfos (Error: Lengths not equal)");
6927         };
6928         if ((a->commandBufferInfoCount) == (b->commandBufferInfoCount)) {
6929             if (a) {
6930                 for (uint32_t i = 0; i < (uint32_t)a->commandBufferInfoCount; ++i) {
6931                     checkEqual_VkCommandBufferSubmitInfo(a->pCommandBufferInfos + i,
6932                                                          b->pCommandBufferInfos + i, onFail);
6933                 }
6934             }
6935         }
6936     }
6937     if (!((a->signalSemaphoreInfoCount) == (b->signalSemaphoreInfoCount))) {
6938         onFail("a->signalSemaphoreInfoCount (Error: Value not equal)");
6939     };
6940     if ((a->pSignalSemaphoreInfos) && (b->pSignalSemaphoreInfos)) {
6941         if (!((a->signalSemaphoreInfoCount) == (b->signalSemaphoreInfoCount))) {
6942             onFail("a->pSignalSemaphoreInfos (Error: Lengths not equal)");
6943         };
6944         if ((a->signalSemaphoreInfoCount) == (b->signalSemaphoreInfoCount)) {
6945             if (a) {
6946                 for (uint32_t i = 0; i < (uint32_t)a->signalSemaphoreInfoCount; ++i) {
6947                     checkEqual_VkSemaphoreSubmitInfo(a->pSignalSemaphoreInfos + i,
6948                                                      b->pSignalSemaphoreInfos + i, onFail);
6949                 }
6950             }
6951         }
6952     }
6953 }
6954 
checkEqual_VkPhysicalDeviceSynchronization2Features(const VkPhysicalDeviceSynchronization2Features * a,const VkPhysicalDeviceSynchronization2Features * b,OnFailCompareFunc onFail)6955 void checkEqual_VkPhysicalDeviceSynchronization2Features(
6956     const VkPhysicalDeviceSynchronization2Features* a,
6957     const VkPhysicalDeviceSynchronization2Features* b, OnFailCompareFunc onFail) {
6958     if (!((a->sType) == (b->sType))) {
6959         onFail("a->sType (Error: Value not equal)");
6960     };
6961     if (a->pNext) {
6962         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6963     }
6964     if (!((a->synchronization2) == (b->synchronization2))) {
6965         onFail("a->synchronization2 (Error: Value not equal)");
6966     };
6967 }
6968 
checkEqual_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * a,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * b,OnFailCompareFunc onFail)6969 void checkEqual_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
6970     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* a,
6971     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* b, OnFailCompareFunc onFail) {
6972     if (!((a->sType) == (b->sType))) {
6973         onFail("a->sType (Error: Value not equal)");
6974     };
6975     if (a->pNext) {
6976         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6977     }
6978     if (!((a->shaderZeroInitializeWorkgroupMemory) == (b->shaderZeroInitializeWorkgroupMemory))) {
6979         onFail("a->shaderZeroInitializeWorkgroupMemory (Error: Value not equal)");
6980     };
6981 }
6982 
checkEqual_VkPhysicalDeviceImageRobustnessFeatures(const VkPhysicalDeviceImageRobustnessFeatures * a,const VkPhysicalDeviceImageRobustnessFeatures * b,OnFailCompareFunc onFail)6983 void checkEqual_VkPhysicalDeviceImageRobustnessFeatures(
6984     const VkPhysicalDeviceImageRobustnessFeatures* a,
6985     const VkPhysicalDeviceImageRobustnessFeatures* b, OnFailCompareFunc onFail) {
6986     if (!((a->sType) == (b->sType))) {
6987         onFail("a->sType (Error: Value not equal)");
6988     };
6989     if (a->pNext) {
6990         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
6991     }
6992     if (!((a->robustImageAccess) == (b->robustImageAccess))) {
6993         onFail("a->robustImageAccess (Error: Value not equal)");
6994     };
6995 }
6996 
checkEqual_VkBufferCopy2(const VkBufferCopy2 * a,const VkBufferCopy2 * b,OnFailCompareFunc onFail)6997 void checkEqual_VkBufferCopy2(const VkBufferCopy2* a, const VkBufferCopy2* b,
6998                               OnFailCompareFunc onFail) {
6999     if (!((a->sType) == (b->sType))) {
7000         onFail("a->sType (Error: Value not equal)");
7001     };
7002     if (a->pNext) {
7003         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7004     }
7005     if (!((a->srcOffset) == (b->srcOffset))) {
7006         onFail("a->srcOffset (Error: Value not equal)");
7007     };
7008     if (!((a->dstOffset) == (b->dstOffset))) {
7009         onFail("a->dstOffset (Error: Value not equal)");
7010     };
7011     if (!((a->size) == (b->size))) {
7012         onFail("a->size (Error: Value not equal)");
7013     };
7014 }
7015 
checkEqual_VkCopyBufferInfo2(const VkCopyBufferInfo2 * a,const VkCopyBufferInfo2 * b,OnFailCompareFunc onFail)7016 void checkEqual_VkCopyBufferInfo2(const VkCopyBufferInfo2* a, const VkCopyBufferInfo2* b,
7017                                   OnFailCompareFunc onFail) {
7018     if (!((a->sType) == (b->sType))) {
7019         onFail("a->sType (Error: Value not equal)");
7020     };
7021     if (a->pNext) {
7022         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7023     }
7024     if (!((a->srcBuffer) == (b->srcBuffer))) {
7025         onFail("a->srcBuffer (Error: Value not equal)");
7026     };
7027     if (!((a->dstBuffer) == (b->dstBuffer))) {
7028         onFail("a->dstBuffer (Error: Value not equal)");
7029     };
7030     if (!((a->regionCount) == (b->regionCount))) {
7031         onFail("a->regionCount (Error: Value not equal)");
7032     };
7033     if ((a->pRegions) && (b->pRegions)) {
7034         if (!((a->regionCount) == (b->regionCount))) {
7035             onFail("a->pRegions (Error: Lengths not equal)");
7036         };
7037         if ((a->regionCount) == (b->regionCount)) {
7038             if (a) {
7039                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7040                     checkEqual_VkBufferCopy2(a->pRegions + i, b->pRegions + i, onFail);
7041                 }
7042             }
7043         }
7044     }
7045 }
7046 
checkEqual_VkImageCopy2(const VkImageCopy2 * a,const VkImageCopy2 * b,OnFailCompareFunc onFail)7047 void checkEqual_VkImageCopy2(const VkImageCopy2* a, const VkImageCopy2* b,
7048                              OnFailCompareFunc onFail) {
7049     if (!((a->sType) == (b->sType))) {
7050         onFail("a->sType (Error: Value not equal)");
7051     };
7052     if (a->pNext) {
7053         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7054     }
7055     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
7056     checkEqual_VkOffset3D(&a->srcOffset, &b->srcOffset, onFail);
7057     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
7058     checkEqual_VkOffset3D(&a->dstOffset, &b->dstOffset, onFail);
7059     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
7060 }
7061 
checkEqual_VkCopyImageInfo2(const VkCopyImageInfo2 * a,const VkCopyImageInfo2 * b,OnFailCompareFunc onFail)7062 void checkEqual_VkCopyImageInfo2(const VkCopyImageInfo2* a, const VkCopyImageInfo2* b,
7063                                  OnFailCompareFunc onFail) {
7064     if (!((a->sType) == (b->sType))) {
7065         onFail("a->sType (Error: Value not equal)");
7066     };
7067     if (a->pNext) {
7068         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7069     }
7070     if (!((a->srcImage) == (b->srcImage))) {
7071         onFail("a->srcImage (Error: Value not equal)");
7072     };
7073     if (!((a->srcImageLayout) == (b->srcImageLayout))) {
7074         onFail("a->srcImageLayout (Error: Value not equal)");
7075     };
7076     if (!((a->dstImage) == (b->dstImage))) {
7077         onFail("a->dstImage (Error: Value not equal)");
7078     };
7079     if (!((a->dstImageLayout) == (b->dstImageLayout))) {
7080         onFail("a->dstImageLayout (Error: Value not equal)");
7081     };
7082     if (!((a->regionCount) == (b->regionCount))) {
7083         onFail("a->regionCount (Error: Value not equal)");
7084     };
7085     if ((a->pRegions) && (b->pRegions)) {
7086         if (!((a->regionCount) == (b->regionCount))) {
7087             onFail("a->pRegions (Error: Lengths not equal)");
7088         };
7089         if ((a->regionCount) == (b->regionCount)) {
7090             if (a) {
7091                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7092                     checkEqual_VkImageCopy2(a->pRegions + i, b->pRegions + i, onFail);
7093                 }
7094             }
7095         }
7096     }
7097 }
7098 
checkEqual_VkBufferImageCopy2(const VkBufferImageCopy2 * a,const VkBufferImageCopy2 * b,OnFailCompareFunc onFail)7099 void checkEqual_VkBufferImageCopy2(const VkBufferImageCopy2* a, const VkBufferImageCopy2* b,
7100                                    OnFailCompareFunc onFail) {
7101     if (!((a->sType) == (b->sType))) {
7102         onFail("a->sType (Error: Value not equal)");
7103     };
7104     if (a->pNext) {
7105         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7106     }
7107     if (!((a->bufferOffset) == (b->bufferOffset))) {
7108         onFail("a->bufferOffset (Error: Value not equal)");
7109     };
7110     if (!((a->bufferRowLength) == (b->bufferRowLength))) {
7111         onFail("a->bufferRowLength (Error: Value not equal)");
7112     };
7113     if (!((a->bufferImageHeight) == (b->bufferImageHeight))) {
7114         onFail("a->bufferImageHeight (Error: Value not equal)");
7115     };
7116     checkEqual_VkImageSubresourceLayers(&a->imageSubresource, &b->imageSubresource, onFail);
7117     checkEqual_VkOffset3D(&a->imageOffset, &b->imageOffset, onFail);
7118     checkEqual_VkExtent3D(&a->imageExtent, &b->imageExtent, onFail);
7119 }
7120 
checkEqual_VkCopyBufferToImageInfo2(const VkCopyBufferToImageInfo2 * a,const VkCopyBufferToImageInfo2 * b,OnFailCompareFunc onFail)7121 void checkEqual_VkCopyBufferToImageInfo2(const VkCopyBufferToImageInfo2* a,
7122                                          const VkCopyBufferToImageInfo2* b,
7123                                          OnFailCompareFunc onFail) {
7124     if (!((a->sType) == (b->sType))) {
7125         onFail("a->sType (Error: Value not equal)");
7126     };
7127     if (a->pNext) {
7128         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7129     }
7130     if (!((a->srcBuffer) == (b->srcBuffer))) {
7131         onFail("a->srcBuffer (Error: Value not equal)");
7132     };
7133     if (!((a->dstImage) == (b->dstImage))) {
7134         onFail("a->dstImage (Error: Value not equal)");
7135     };
7136     if (!((a->dstImageLayout) == (b->dstImageLayout))) {
7137         onFail("a->dstImageLayout (Error: Value not equal)");
7138     };
7139     if (!((a->regionCount) == (b->regionCount))) {
7140         onFail("a->regionCount (Error: Value not equal)");
7141     };
7142     if ((a->pRegions) && (b->pRegions)) {
7143         if (!((a->regionCount) == (b->regionCount))) {
7144             onFail("a->pRegions (Error: Lengths not equal)");
7145         };
7146         if ((a->regionCount) == (b->regionCount)) {
7147             if (a) {
7148                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7149                     checkEqual_VkBufferImageCopy2(a->pRegions + i, b->pRegions + i, onFail);
7150                 }
7151             }
7152         }
7153     }
7154 }
7155 
checkEqual_VkCopyImageToBufferInfo2(const VkCopyImageToBufferInfo2 * a,const VkCopyImageToBufferInfo2 * b,OnFailCompareFunc onFail)7156 void checkEqual_VkCopyImageToBufferInfo2(const VkCopyImageToBufferInfo2* a,
7157                                          const VkCopyImageToBufferInfo2* b,
7158                                          OnFailCompareFunc onFail) {
7159     if (!((a->sType) == (b->sType))) {
7160         onFail("a->sType (Error: Value not equal)");
7161     };
7162     if (a->pNext) {
7163         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7164     }
7165     if (!((a->srcImage) == (b->srcImage))) {
7166         onFail("a->srcImage (Error: Value not equal)");
7167     };
7168     if (!((a->srcImageLayout) == (b->srcImageLayout))) {
7169         onFail("a->srcImageLayout (Error: Value not equal)");
7170     };
7171     if (!((a->dstBuffer) == (b->dstBuffer))) {
7172         onFail("a->dstBuffer (Error: Value not equal)");
7173     };
7174     if (!((a->regionCount) == (b->regionCount))) {
7175         onFail("a->regionCount (Error: Value not equal)");
7176     };
7177     if ((a->pRegions) && (b->pRegions)) {
7178         if (!((a->regionCount) == (b->regionCount))) {
7179             onFail("a->pRegions (Error: Lengths not equal)");
7180         };
7181         if ((a->regionCount) == (b->regionCount)) {
7182             if (a) {
7183                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7184                     checkEqual_VkBufferImageCopy2(a->pRegions + i, b->pRegions + i, onFail);
7185                 }
7186             }
7187         }
7188     }
7189 }
7190 
checkEqual_VkImageBlit2(const VkImageBlit2 * a,const VkImageBlit2 * b,OnFailCompareFunc onFail)7191 void checkEqual_VkImageBlit2(const VkImageBlit2* a, const VkImageBlit2* b,
7192                              OnFailCompareFunc onFail) {
7193     if (!((a->sType) == (b->sType))) {
7194         onFail("a->sType (Error: Value not equal)");
7195     };
7196     if (a->pNext) {
7197         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7198     }
7199     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
7200     if (!((2) == (2))) {
7201         onFail("a->srcOffsets (Error: Lengths not equal)");
7202     };
7203     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
7204         checkEqual_VkOffset3D(a->srcOffsets + i, b->srcOffsets + i, onFail);
7205     }
7206     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
7207     if (!((2) == (2))) {
7208         onFail("a->dstOffsets (Error: Lengths not equal)");
7209     };
7210     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
7211         checkEqual_VkOffset3D(a->dstOffsets + i, b->dstOffsets + i, onFail);
7212     }
7213 }
7214 
checkEqual_VkBlitImageInfo2(const VkBlitImageInfo2 * a,const VkBlitImageInfo2 * b,OnFailCompareFunc onFail)7215 void checkEqual_VkBlitImageInfo2(const VkBlitImageInfo2* a, const VkBlitImageInfo2* b,
7216                                  OnFailCompareFunc onFail) {
7217     if (!((a->sType) == (b->sType))) {
7218         onFail("a->sType (Error: Value not equal)");
7219     };
7220     if (a->pNext) {
7221         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7222     }
7223     if (!((a->srcImage) == (b->srcImage))) {
7224         onFail("a->srcImage (Error: Value not equal)");
7225     };
7226     if (!((a->srcImageLayout) == (b->srcImageLayout))) {
7227         onFail("a->srcImageLayout (Error: Value not equal)");
7228     };
7229     if (!((a->dstImage) == (b->dstImage))) {
7230         onFail("a->dstImage (Error: Value not equal)");
7231     };
7232     if (!((a->dstImageLayout) == (b->dstImageLayout))) {
7233         onFail("a->dstImageLayout (Error: Value not equal)");
7234     };
7235     if (!((a->regionCount) == (b->regionCount))) {
7236         onFail("a->regionCount (Error: Value not equal)");
7237     };
7238     if ((a->pRegions) && (b->pRegions)) {
7239         if (!((a->regionCount) == (b->regionCount))) {
7240             onFail("a->pRegions (Error: Lengths not equal)");
7241         };
7242         if ((a->regionCount) == (b->regionCount)) {
7243             if (a) {
7244                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7245                     checkEqual_VkImageBlit2(a->pRegions + i, b->pRegions + i, onFail);
7246                 }
7247             }
7248         }
7249     }
7250     if (!((a->filter) == (b->filter))) {
7251         onFail("a->filter (Error: Value not equal)");
7252     };
7253 }
7254 
checkEqual_VkImageResolve2(const VkImageResolve2 * a,const VkImageResolve2 * b,OnFailCompareFunc onFail)7255 void checkEqual_VkImageResolve2(const VkImageResolve2* a, const VkImageResolve2* b,
7256                                 OnFailCompareFunc onFail) {
7257     if (!((a->sType) == (b->sType))) {
7258         onFail("a->sType (Error: Value not equal)");
7259     };
7260     if (a->pNext) {
7261         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7262     }
7263     checkEqual_VkImageSubresourceLayers(&a->srcSubresource, &b->srcSubresource, onFail);
7264     checkEqual_VkOffset3D(&a->srcOffset, &b->srcOffset, onFail);
7265     checkEqual_VkImageSubresourceLayers(&a->dstSubresource, &b->dstSubresource, onFail);
7266     checkEqual_VkOffset3D(&a->dstOffset, &b->dstOffset, onFail);
7267     checkEqual_VkExtent3D(&a->extent, &b->extent, onFail);
7268 }
7269 
checkEqual_VkResolveImageInfo2(const VkResolveImageInfo2 * a,const VkResolveImageInfo2 * b,OnFailCompareFunc onFail)7270 void checkEqual_VkResolveImageInfo2(const VkResolveImageInfo2* a, const VkResolveImageInfo2* b,
7271                                     OnFailCompareFunc onFail) {
7272     if (!((a->sType) == (b->sType))) {
7273         onFail("a->sType (Error: Value not equal)");
7274     };
7275     if (a->pNext) {
7276         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7277     }
7278     if (!((a->srcImage) == (b->srcImage))) {
7279         onFail("a->srcImage (Error: Value not equal)");
7280     };
7281     if (!((a->srcImageLayout) == (b->srcImageLayout))) {
7282         onFail("a->srcImageLayout (Error: Value not equal)");
7283     };
7284     if (!((a->dstImage) == (b->dstImage))) {
7285         onFail("a->dstImage (Error: Value not equal)");
7286     };
7287     if (!((a->dstImageLayout) == (b->dstImageLayout))) {
7288         onFail("a->dstImageLayout (Error: Value not equal)");
7289     };
7290     if (!((a->regionCount) == (b->regionCount))) {
7291         onFail("a->regionCount (Error: Value not equal)");
7292     };
7293     if ((a->pRegions) && (b->pRegions)) {
7294         if (!((a->regionCount) == (b->regionCount))) {
7295             onFail("a->pRegions (Error: Lengths not equal)");
7296         };
7297         if ((a->regionCount) == (b->regionCount)) {
7298             if (a) {
7299                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
7300                     checkEqual_VkImageResolve2(a->pRegions + i, b->pRegions + i, onFail);
7301                 }
7302             }
7303         }
7304     }
7305 }
7306 
checkEqual_VkPhysicalDeviceSubgroupSizeControlFeatures(const VkPhysicalDeviceSubgroupSizeControlFeatures * a,const VkPhysicalDeviceSubgroupSizeControlFeatures * b,OnFailCompareFunc onFail)7307 void checkEqual_VkPhysicalDeviceSubgroupSizeControlFeatures(
7308     const VkPhysicalDeviceSubgroupSizeControlFeatures* a,
7309     const VkPhysicalDeviceSubgroupSizeControlFeatures* b, OnFailCompareFunc onFail) {
7310     if (!((a->sType) == (b->sType))) {
7311         onFail("a->sType (Error: Value not equal)");
7312     };
7313     if (a->pNext) {
7314         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7315     }
7316     if (!((a->subgroupSizeControl) == (b->subgroupSizeControl))) {
7317         onFail("a->subgroupSizeControl (Error: Value not equal)");
7318     };
7319     if (!((a->computeFullSubgroups) == (b->computeFullSubgroups))) {
7320         onFail("a->computeFullSubgroups (Error: Value not equal)");
7321     };
7322 }
7323 
checkEqual_VkPhysicalDeviceSubgroupSizeControlProperties(const VkPhysicalDeviceSubgroupSizeControlProperties * a,const VkPhysicalDeviceSubgroupSizeControlProperties * b,OnFailCompareFunc onFail)7324 void checkEqual_VkPhysicalDeviceSubgroupSizeControlProperties(
7325     const VkPhysicalDeviceSubgroupSizeControlProperties* a,
7326     const VkPhysicalDeviceSubgroupSizeControlProperties* b, OnFailCompareFunc onFail) {
7327     if (!((a->sType) == (b->sType))) {
7328         onFail("a->sType (Error: Value not equal)");
7329     };
7330     if (a->pNext) {
7331         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7332     }
7333     if (!((a->minSubgroupSize) == (b->minSubgroupSize))) {
7334         onFail("a->minSubgroupSize (Error: Value not equal)");
7335     };
7336     if (!((a->maxSubgroupSize) == (b->maxSubgroupSize))) {
7337         onFail("a->maxSubgroupSize (Error: Value not equal)");
7338     };
7339     if (!((a->maxComputeWorkgroupSubgroups) == (b->maxComputeWorkgroupSubgroups))) {
7340         onFail("a->maxComputeWorkgroupSubgroups (Error: Value not equal)");
7341     };
7342     if (!((a->requiredSubgroupSizeStages) == (b->requiredSubgroupSizeStages))) {
7343         onFail("a->requiredSubgroupSizeStages (Error: Value not equal)");
7344     };
7345 }
7346 
checkEqual_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * a,const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * b,OnFailCompareFunc onFail)7347 void checkEqual_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
7348     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* a,
7349     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* b, OnFailCompareFunc onFail) {
7350     if (!((a->sType) == (b->sType))) {
7351         onFail("a->sType (Error: Value not equal)");
7352     };
7353     if (a->pNext) {
7354         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7355     }
7356     if (!((a->requiredSubgroupSize) == (b->requiredSubgroupSize))) {
7357         onFail("a->requiredSubgroupSize (Error: Value not equal)");
7358     };
7359 }
7360 
checkEqual_VkPhysicalDeviceInlineUniformBlockFeatures(const VkPhysicalDeviceInlineUniformBlockFeatures * a,const VkPhysicalDeviceInlineUniformBlockFeatures * b,OnFailCompareFunc onFail)7361 void checkEqual_VkPhysicalDeviceInlineUniformBlockFeatures(
7362     const VkPhysicalDeviceInlineUniformBlockFeatures* a,
7363     const VkPhysicalDeviceInlineUniformBlockFeatures* b, OnFailCompareFunc onFail) {
7364     if (!((a->sType) == (b->sType))) {
7365         onFail("a->sType (Error: Value not equal)");
7366     };
7367     if (a->pNext) {
7368         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7369     }
7370     if (!((a->inlineUniformBlock) == (b->inlineUniformBlock))) {
7371         onFail("a->inlineUniformBlock (Error: Value not equal)");
7372     };
7373     if (!((a->descriptorBindingInlineUniformBlockUpdateAfterBind) ==
7374           (b->descriptorBindingInlineUniformBlockUpdateAfterBind))) {
7375         onFail("a->descriptorBindingInlineUniformBlockUpdateAfterBind (Error: Value not equal)");
7376     };
7377 }
7378 
checkEqual_VkPhysicalDeviceInlineUniformBlockProperties(const VkPhysicalDeviceInlineUniformBlockProperties * a,const VkPhysicalDeviceInlineUniformBlockProperties * b,OnFailCompareFunc onFail)7379 void checkEqual_VkPhysicalDeviceInlineUniformBlockProperties(
7380     const VkPhysicalDeviceInlineUniformBlockProperties* a,
7381     const VkPhysicalDeviceInlineUniformBlockProperties* b, OnFailCompareFunc onFail) {
7382     if (!((a->sType) == (b->sType))) {
7383         onFail("a->sType (Error: Value not equal)");
7384     };
7385     if (a->pNext) {
7386         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7387     }
7388     if (!((a->maxInlineUniformBlockSize) == (b->maxInlineUniformBlockSize))) {
7389         onFail("a->maxInlineUniformBlockSize (Error: Value not equal)");
7390     };
7391     if (!((a->maxPerStageDescriptorInlineUniformBlocks) ==
7392           (b->maxPerStageDescriptorInlineUniformBlocks))) {
7393         onFail("a->maxPerStageDescriptorInlineUniformBlocks (Error: Value not equal)");
7394     };
7395     if (!((a->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks) ==
7396           (b->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks))) {
7397         onFail(
7398             "a->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks (Error: Value not equal)");
7399     };
7400     if (!((a->maxDescriptorSetInlineUniformBlocks) == (b->maxDescriptorSetInlineUniformBlocks))) {
7401         onFail("a->maxDescriptorSetInlineUniformBlocks (Error: Value not equal)");
7402     };
7403     if (!((a->maxDescriptorSetUpdateAfterBindInlineUniformBlocks) ==
7404           (b->maxDescriptorSetUpdateAfterBindInlineUniformBlocks))) {
7405         onFail("a->maxDescriptorSetUpdateAfterBindInlineUniformBlocks (Error: Value not equal)");
7406     };
7407 }
7408 
checkEqual_VkWriteDescriptorSetInlineUniformBlock(const VkWriteDescriptorSetInlineUniformBlock * a,const VkWriteDescriptorSetInlineUniformBlock * b,OnFailCompareFunc onFail)7409 void checkEqual_VkWriteDescriptorSetInlineUniformBlock(
7410     const VkWriteDescriptorSetInlineUniformBlock* a,
7411     const VkWriteDescriptorSetInlineUniformBlock* b, OnFailCompareFunc onFail) {
7412     if (!((a->sType) == (b->sType))) {
7413         onFail("a->sType (Error: Value not equal)");
7414     };
7415     if (a->pNext) {
7416         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7417     }
7418     if (!((a->dataSize) == (b->dataSize))) {
7419         onFail("a->dataSize (Error: Value not equal)");
7420     };
7421 }
7422 
checkEqual_VkDescriptorPoolInlineUniformBlockCreateInfo(const VkDescriptorPoolInlineUniformBlockCreateInfo * a,const VkDescriptorPoolInlineUniformBlockCreateInfo * b,OnFailCompareFunc onFail)7423 void checkEqual_VkDescriptorPoolInlineUniformBlockCreateInfo(
7424     const VkDescriptorPoolInlineUniformBlockCreateInfo* a,
7425     const VkDescriptorPoolInlineUniformBlockCreateInfo* b, OnFailCompareFunc onFail) {
7426     if (!((a->sType) == (b->sType))) {
7427         onFail("a->sType (Error: Value not equal)");
7428     };
7429     if (a->pNext) {
7430         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7431     }
7432     if (!((a->maxInlineUniformBlockBindings) == (b->maxInlineUniformBlockBindings))) {
7433         onFail("a->maxInlineUniformBlockBindings (Error: Value not equal)");
7434     };
7435 }
7436 
checkEqual_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * a,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * b,OnFailCompareFunc onFail)7437 void checkEqual_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
7438     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* a,
7439     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* b, OnFailCompareFunc onFail) {
7440     if (!((a->sType) == (b->sType))) {
7441         onFail("a->sType (Error: Value not equal)");
7442     };
7443     if (a->pNext) {
7444         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7445     }
7446     if (!((a->textureCompressionASTC_HDR) == (b->textureCompressionASTC_HDR))) {
7447         onFail("a->textureCompressionASTC_HDR (Error: Value not equal)");
7448     };
7449 }
7450 
checkEqual_VkRenderingAttachmentInfo(const VkRenderingAttachmentInfo * a,const VkRenderingAttachmentInfo * b,OnFailCompareFunc onFail)7451 void checkEqual_VkRenderingAttachmentInfo(const VkRenderingAttachmentInfo* a,
7452                                           const VkRenderingAttachmentInfo* b,
7453                                           OnFailCompareFunc onFail) {
7454     if (!((a->sType) == (b->sType))) {
7455         onFail("a->sType (Error: Value not equal)");
7456     };
7457     if (a->pNext) {
7458         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7459     }
7460     if (!((a->imageView) == (b->imageView))) {
7461         onFail("a->imageView (Error: Value not equal)");
7462     };
7463     if (!((a->imageLayout) == (b->imageLayout))) {
7464         onFail("a->imageLayout (Error: Value not equal)");
7465     };
7466     if (!((a->resolveMode) == (b->resolveMode))) {
7467         onFail("a->resolveMode (Error: Value not equal)");
7468     };
7469     if (!((a->resolveImageView) == (b->resolveImageView))) {
7470         onFail("a->resolveImageView (Error: Value not equal)");
7471     };
7472     if (!((a->resolveImageLayout) == (b->resolveImageLayout))) {
7473         onFail("a->resolveImageLayout (Error: Value not equal)");
7474     };
7475     if (!((a->loadOp) == (b->loadOp))) {
7476         onFail("a->loadOp (Error: Value not equal)");
7477     };
7478     if (!((a->storeOp) == (b->storeOp))) {
7479         onFail("a->storeOp (Error: Value not equal)");
7480     };
7481     checkEqual_VkClearValue(&a->clearValue, &b->clearValue, onFail);
7482 }
7483 
checkEqual_VkRenderingInfo(const VkRenderingInfo * a,const VkRenderingInfo * b,OnFailCompareFunc onFail)7484 void checkEqual_VkRenderingInfo(const VkRenderingInfo* a, const VkRenderingInfo* b,
7485                                 OnFailCompareFunc onFail) {
7486     if (!((a->sType) == (b->sType))) {
7487         onFail("a->sType (Error: Value not equal)");
7488     };
7489     if (a->pNext) {
7490         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7491     }
7492     if (!((a->flags) == (b->flags))) {
7493         onFail("a->flags (Error: Value not equal)");
7494     };
7495     checkEqual_VkRect2D(&a->renderArea, &b->renderArea, onFail);
7496     if (!((a->layerCount) == (b->layerCount))) {
7497         onFail("a->layerCount (Error: Value not equal)");
7498     };
7499     if (!((a->viewMask) == (b->viewMask))) {
7500         onFail("a->viewMask (Error: Value not equal)");
7501     };
7502     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7503         onFail("a->colorAttachmentCount (Error: Value not equal)");
7504     };
7505     if ((a->pColorAttachments) && (b->pColorAttachments)) {
7506         if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7507             onFail("a->pColorAttachments (Error: Lengths not equal)");
7508         };
7509         if ((a->colorAttachmentCount) == (b->colorAttachmentCount)) {
7510             if (a) {
7511                 for (uint32_t i = 0; i < (uint32_t)a->colorAttachmentCount; ++i) {
7512                     checkEqual_VkRenderingAttachmentInfo(a->pColorAttachments + i,
7513                                                          b->pColorAttachments + i, onFail);
7514                 }
7515             }
7516         }
7517     }
7518     if (!((!(a->pDepthAttachment) && !(b->pDepthAttachment)) ||
7519           ((a->pDepthAttachment) && (b->pDepthAttachment)))) {
7520         onFail("a->pDepthAttachment (Error: Mismatch in optional field)");
7521     };
7522     if (a->pDepthAttachment && b->pDepthAttachment) {
7523         if ((a->pDepthAttachment) && (b->pDepthAttachment)) {
7524             checkEqual_VkRenderingAttachmentInfo(a->pDepthAttachment, b->pDepthAttachment, onFail);
7525         }
7526     }
7527     if (!((!(a->pStencilAttachment) && !(b->pStencilAttachment)) ||
7528           ((a->pStencilAttachment) && (b->pStencilAttachment)))) {
7529         onFail("a->pStencilAttachment (Error: Mismatch in optional field)");
7530     };
7531     if (a->pStencilAttachment && b->pStencilAttachment) {
7532         if ((a->pStencilAttachment) && (b->pStencilAttachment)) {
7533             checkEqual_VkRenderingAttachmentInfo(a->pStencilAttachment, b->pStencilAttachment,
7534                                                  onFail);
7535         }
7536     }
7537 }
7538 
checkEqual_VkPipelineRenderingCreateInfo(const VkPipelineRenderingCreateInfo * a,const VkPipelineRenderingCreateInfo * b,OnFailCompareFunc onFail)7539 void checkEqual_VkPipelineRenderingCreateInfo(const VkPipelineRenderingCreateInfo* a,
7540                                               const VkPipelineRenderingCreateInfo* b,
7541                                               OnFailCompareFunc onFail) {
7542     if (!((a->sType) == (b->sType))) {
7543         onFail("a->sType (Error: Value not equal)");
7544     };
7545     if (a->pNext) {
7546         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7547     }
7548     if (!((a->viewMask) == (b->viewMask))) {
7549         onFail("a->viewMask (Error: Value not equal)");
7550     };
7551     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7552         onFail("a->colorAttachmentCount (Error: Value not equal)");
7553     };
7554     if (!((!(a->pColorAttachmentFormats) && !(b->pColorAttachmentFormats)) ||
7555           ((a->pColorAttachmentFormats) && (b->pColorAttachmentFormats)))) {
7556         onFail("a->pColorAttachmentFormats (Error: Mismatch in optional field)");
7557     };
7558     if (a->pColorAttachmentFormats && b->pColorAttachmentFormats) {
7559         if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7560             onFail("a->pColorAttachmentFormats (Error: Lengths not equal)");
7561         };
7562         if (!((memcmp(a->pColorAttachmentFormats, b->pColorAttachmentFormats,
7563                       a->colorAttachmentCount * sizeof(const VkFormat)) == 0))) {
7564             onFail("a->pColorAttachmentFormats (Error: Unequal dyn array)");
7565         };
7566     }
7567     if (!((a->depthAttachmentFormat) == (b->depthAttachmentFormat))) {
7568         onFail("a->depthAttachmentFormat (Error: Value not equal)");
7569     };
7570     if (!((a->stencilAttachmentFormat) == (b->stencilAttachmentFormat))) {
7571         onFail("a->stencilAttachmentFormat (Error: Value not equal)");
7572     };
7573 }
7574 
checkEqual_VkPhysicalDeviceDynamicRenderingFeatures(const VkPhysicalDeviceDynamicRenderingFeatures * a,const VkPhysicalDeviceDynamicRenderingFeatures * b,OnFailCompareFunc onFail)7575 void checkEqual_VkPhysicalDeviceDynamicRenderingFeatures(
7576     const VkPhysicalDeviceDynamicRenderingFeatures* a,
7577     const VkPhysicalDeviceDynamicRenderingFeatures* b, OnFailCompareFunc onFail) {
7578     if (!((a->sType) == (b->sType))) {
7579         onFail("a->sType (Error: Value not equal)");
7580     };
7581     if (a->pNext) {
7582         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7583     }
7584     if (!((a->dynamicRendering) == (b->dynamicRendering))) {
7585         onFail("a->dynamicRendering (Error: Value not equal)");
7586     };
7587 }
7588 
checkEqual_VkCommandBufferInheritanceRenderingInfo(const VkCommandBufferInheritanceRenderingInfo * a,const VkCommandBufferInheritanceRenderingInfo * b,OnFailCompareFunc onFail)7589 void checkEqual_VkCommandBufferInheritanceRenderingInfo(
7590     const VkCommandBufferInheritanceRenderingInfo* a,
7591     const VkCommandBufferInheritanceRenderingInfo* b, OnFailCompareFunc onFail) {
7592     if (!((a->sType) == (b->sType))) {
7593         onFail("a->sType (Error: Value not equal)");
7594     };
7595     if (a->pNext) {
7596         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7597     }
7598     if (!((a->flags) == (b->flags))) {
7599         onFail("a->flags (Error: Value not equal)");
7600     };
7601     if (!((a->viewMask) == (b->viewMask))) {
7602         onFail("a->viewMask (Error: Value not equal)");
7603     };
7604     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7605         onFail("a->colorAttachmentCount (Error: Value not equal)");
7606     };
7607     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
7608         onFail("a->pColorAttachmentFormats (Error: Lengths not equal)");
7609     };
7610     if (!((memcmp(a->pColorAttachmentFormats, b->pColorAttachmentFormats,
7611                   a->colorAttachmentCount * sizeof(const VkFormat)) == 0))) {
7612         onFail("a->pColorAttachmentFormats (Error: Unequal dyn array)");
7613     };
7614     if (!((a->depthAttachmentFormat) == (b->depthAttachmentFormat))) {
7615         onFail("a->depthAttachmentFormat (Error: Value not equal)");
7616     };
7617     if (!((a->stencilAttachmentFormat) == (b->stencilAttachmentFormat))) {
7618         onFail("a->stencilAttachmentFormat (Error: Value not equal)");
7619     };
7620     if (!((a->rasterizationSamples) == (b->rasterizationSamples))) {
7621         onFail("a->rasterizationSamples (Error: Value not equal)");
7622     };
7623 }
7624 
checkEqual_VkPhysicalDeviceShaderIntegerDotProductFeatures(const VkPhysicalDeviceShaderIntegerDotProductFeatures * a,const VkPhysicalDeviceShaderIntegerDotProductFeatures * b,OnFailCompareFunc onFail)7625 void checkEqual_VkPhysicalDeviceShaderIntegerDotProductFeatures(
7626     const VkPhysicalDeviceShaderIntegerDotProductFeatures* a,
7627     const VkPhysicalDeviceShaderIntegerDotProductFeatures* b, OnFailCompareFunc onFail) {
7628     if (!((a->sType) == (b->sType))) {
7629         onFail("a->sType (Error: Value not equal)");
7630     };
7631     if (a->pNext) {
7632         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7633     }
7634     if (!((a->shaderIntegerDotProduct) == (b->shaderIntegerDotProduct))) {
7635         onFail("a->shaderIntegerDotProduct (Error: Value not equal)");
7636     };
7637 }
7638 
checkEqual_VkPhysicalDeviceShaderIntegerDotProductProperties(const VkPhysicalDeviceShaderIntegerDotProductProperties * a,const VkPhysicalDeviceShaderIntegerDotProductProperties * b,OnFailCompareFunc onFail)7639 void checkEqual_VkPhysicalDeviceShaderIntegerDotProductProperties(
7640     const VkPhysicalDeviceShaderIntegerDotProductProperties* a,
7641     const VkPhysicalDeviceShaderIntegerDotProductProperties* b, OnFailCompareFunc onFail) {
7642     if (!((a->sType) == (b->sType))) {
7643         onFail("a->sType (Error: Value not equal)");
7644     };
7645     if (a->pNext) {
7646         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7647     }
7648     if (!((a->integerDotProduct8BitUnsignedAccelerated) ==
7649           (b->integerDotProduct8BitUnsignedAccelerated))) {
7650         onFail("a->integerDotProduct8BitUnsignedAccelerated (Error: Value not equal)");
7651     };
7652     if (!((a->integerDotProduct8BitSignedAccelerated) ==
7653           (b->integerDotProduct8BitSignedAccelerated))) {
7654         onFail("a->integerDotProduct8BitSignedAccelerated (Error: Value not equal)");
7655     };
7656     if (!((a->integerDotProduct8BitMixedSignednessAccelerated) ==
7657           (b->integerDotProduct8BitMixedSignednessAccelerated))) {
7658         onFail("a->integerDotProduct8BitMixedSignednessAccelerated (Error: Value not equal)");
7659     };
7660     if (!((a->integerDotProduct4x8BitPackedUnsignedAccelerated) ==
7661           (b->integerDotProduct4x8BitPackedUnsignedAccelerated))) {
7662         onFail("a->integerDotProduct4x8BitPackedUnsignedAccelerated (Error: Value not equal)");
7663     };
7664     if (!((a->integerDotProduct4x8BitPackedSignedAccelerated) ==
7665           (b->integerDotProduct4x8BitPackedSignedAccelerated))) {
7666         onFail("a->integerDotProduct4x8BitPackedSignedAccelerated (Error: Value not equal)");
7667     };
7668     if (!((a->integerDotProduct4x8BitPackedMixedSignednessAccelerated) ==
7669           (b->integerDotProduct4x8BitPackedMixedSignednessAccelerated))) {
7670         onFail(
7671             "a->integerDotProduct4x8BitPackedMixedSignednessAccelerated (Error: Value not equal)");
7672     };
7673     if (!((a->integerDotProduct16BitUnsignedAccelerated) ==
7674           (b->integerDotProduct16BitUnsignedAccelerated))) {
7675         onFail("a->integerDotProduct16BitUnsignedAccelerated (Error: Value not equal)");
7676     };
7677     if (!((a->integerDotProduct16BitSignedAccelerated) ==
7678           (b->integerDotProduct16BitSignedAccelerated))) {
7679         onFail("a->integerDotProduct16BitSignedAccelerated (Error: Value not equal)");
7680     };
7681     if (!((a->integerDotProduct16BitMixedSignednessAccelerated) ==
7682           (b->integerDotProduct16BitMixedSignednessAccelerated))) {
7683         onFail("a->integerDotProduct16BitMixedSignednessAccelerated (Error: Value not equal)");
7684     };
7685     if (!((a->integerDotProduct32BitUnsignedAccelerated) ==
7686           (b->integerDotProduct32BitUnsignedAccelerated))) {
7687         onFail("a->integerDotProduct32BitUnsignedAccelerated (Error: Value not equal)");
7688     };
7689     if (!((a->integerDotProduct32BitSignedAccelerated) ==
7690           (b->integerDotProduct32BitSignedAccelerated))) {
7691         onFail("a->integerDotProduct32BitSignedAccelerated (Error: Value not equal)");
7692     };
7693     if (!((a->integerDotProduct32BitMixedSignednessAccelerated) ==
7694           (b->integerDotProduct32BitMixedSignednessAccelerated))) {
7695         onFail("a->integerDotProduct32BitMixedSignednessAccelerated (Error: Value not equal)");
7696     };
7697     if (!((a->integerDotProduct64BitUnsignedAccelerated) ==
7698           (b->integerDotProduct64BitUnsignedAccelerated))) {
7699         onFail("a->integerDotProduct64BitUnsignedAccelerated (Error: Value not equal)");
7700     };
7701     if (!((a->integerDotProduct64BitSignedAccelerated) ==
7702           (b->integerDotProduct64BitSignedAccelerated))) {
7703         onFail("a->integerDotProduct64BitSignedAccelerated (Error: Value not equal)");
7704     };
7705     if (!((a->integerDotProduct64BitMixedSignednessAccelerated) ==
7706           (b->integerDotProduct64BitMixedSignednessAccelerated))) {
7707         onFail("a->integerDotProduct64BitMixedSignednessAccelerated (Error: Value not equal)");
7708     };
7709     if (!((a->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) ==
7710           (b->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))) {
7711         onFail(
7712             "a->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated (Error: Value not "
7713             "equal)");
7714     };
7715     if (!((a->integerDotProductAccumulatingSaturating8BitSignedAccelerated) ==
7716           (b->integerDotProductAccumulatingSaturating8BitSignedAccelerated))) {
7717         onFail(
7718             "a->integerDotProductAccumulatingSaturating8BitSignedAccelerated (Error: Value not "
7719             "equal)");
7720     };
7721     if (!((a->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) ==
7722           (b->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))) {
7723         onFail(
7724             "a->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated (Error: "
7725             "Value not equal)");
7726     };
7727     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) ==
7728           (b->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))) {
7729         onFail(
7730             "a->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated (Error: "
7731             "Value not equal)");
7732     };
7733     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) ==
7734           (b->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))) {
7735         onFail(
7736             "a->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated (Error: Value "
7737             "not equal)");
7738     };
7739     if (!((a->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) ==
7740           (b->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))) {
7741         onFail(
7742             "a->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated "
7743             "(Error: Value not equal)");
7744     };
7745     if (!((a->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) ==
7746           (b->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))) {
7747         onFail(
7748             "a->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated (Error: Value not "
7749             "equal)");
7750     };
7751     if (!((a->integerDotProductAccumulatingSaturating16BitSignedAccelerated) ==
7752           (b->integerDotProductAccumulatingSaturating16BitSignedAccelerated))) {
7753         onFail(
7754             "a->integerDotProductAccumulatingSaturating16BitSignedAccelerated (Error: Value not "
7755             "equal)");
7756     };
7757     if (!((a->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) ==
7758           (b->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))) {
7759         onFail(
7760             "a->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated (Error: "
7761             "Value not equal)");
7762     };
7763     if (!((a->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) ==
7764           (b->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))) {
7765         onFail(
7766             "a->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated (Error: Value not "
7767             "equal)");
7768     };
7769     if (!((a->integerDotProductAccumulatingSaturating32BitSignedAccelerated) ==
7770           (b->integerDotProductAccumulatingSaturating32BitSignedAccelerated))) {
7771         onFail(
7772             "a->integerDotProductAccumulatingSaturating32BitSignedAccelerated (Error: Value not "
7773             "equal)");
7774     };
7775     if (!((a->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) ==
7776           (b->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))) {
7777         onFail(
7778             "a->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated (Error: "
7779             "Value not equal)");
7780     };
7781     if (!((a->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) ==
7782           (b->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))) {
7783         onFail(
7784             "a->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated (Error: Value not "
7785             "equal)");
7786     };
7787     if (!((a->integerDotProductAccumulatingSaturating64BitSignedAccelerated) ==
7788           (b->integerDotProductAccumulatingSaturating64BitSignedAccelerated))) {
7789         onFail(
7790             "a->integerDotProductAccumulatingSaturating64BitSignedAccelerated (Error: Value not "
7791             "equal)");
7792     };
7793     if (!((a->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) ==
7794           (b->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))) {
7795         onFail(
7796             "a->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated (Error: "
7797             "Value not equal)");
7798     };
7799 }
7800 
checkEqual_VkPhysicalDeviceTexelBufferAlignmentProperties(const VkPhysicalDeviceTexelBufferAlignmentProperties * a,const VkPhysicalDeviceTexelBufferAlignmentProperties * b,OnFailCompareFunc onFail)7801 void checkEqual_VkPhysicalDeviceTexelBufferAlignmentProperties(
7802     const VkPhysicalDeviceTexelBufferAlignmentProperties* a,
7803     const VkPhysicalDeviceTexelBufferAlignmentProperties* b, OnFailCompareFunc onFail) {
7804     if (!((a->sType) == (b->sType))) {
7805         onFail("a->sType (Error: Value not equal)");
7806     };
7807     if (a->pNext) {
7808         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7809     }
7810     if (!((a->storageTexelBufferOffsetAlignmentBytes) ==
7811           (b->storageTexelBufferOffsetAlignmentBytes))) {
7812         onFail("a->storageTexelBufferOffsetAlignmentBytes (Error: Value not equal)");
7813     };
7814     if (!((a->storageTexelBufferOffsetSingleTexelAlignment) ==
7815           (b->storageTexelBufferOffsetSingleTexelAlignment))) {
7816         onFail("a->storageTexelBufferOffsetSingleTexelAlignment (Error: Value not equal)");
7817     };
7818     if (!((a->uniformTexelBufferOffsetAlignmentBytes) ==
7819           (b->uniformTexelBufferOffsetAlignmentBytes))) {
7820         onFail("a->uniformTexelBufferOffsetAlignmentBytes (Error: Value not equal)");
7821     };
7822     if (!((a->uniformTexelBufferOffsetSingleTexelAlignment) ==
7823           (b->uniformTexelBufferOffsetSingleTexelAlignment))) {
7824         onFail("a->uniformTexelBufferOffsetSingleTexelAlignment (Error: Value not equal)");
7825     };
7826 }
7827 
checkEqual_VkFormatProperties3(const VkFormatProperties3 * a,const VkFormatProperties3 * b,OnFailCompareFunc onFail)7828 void checkEqual_VkFormatProperties3(const VkFormatProperties3* a, const VkFormatProperties3* b,
7829                                     OnFailCompareFunc onFail) {
7830     if (!((a->sType) == (b->sType))) {
7831         onFail("a->sType (Error: Value not equal)");
7832     };
7833     if (a->pNext) {
7834         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7835     }
7836     if (!((a->linearTilingFeatures) == (b->linearTilingFeatures))) {
7837         onFail("a->linearTilingFeatures (Error: Value not equal)");
7838     };
7839     if (!((a->optimalTilingFeatures) == (b->optimalTilingFeatures))) {
7840         onFail("a->optimalTilingFeatures (Error: Value not equal)");
7841     };
7842     if (!((a->bufferFeatures) == (b->bufferFeatures))) {
7843         onFail("a->bufferFeatures (Error: Value not equal)");
7844     };
7845 }
7846 
checkEqual_VkPhysicalDeviceMaintenance4Features(const VkPhysicalDeviceMaintenance4Features * a,const VkPhysicalDeviceMaintenance4Features * b,OnFailCompareFunc onFail)7847 void checkEqual_VkPhysicalDeviceMaintenance4Features(const VkPhysicalDeviceMaintenance4Features* a,
7848                                                      const VkPhysicalDeviceMaintenance4Features* b,
7849                                                      OnFailCompareFunc onFail) {
7850     if (!((a->sType) == (b->sType))) {
7851         onFail("a->sType (Error: Value not equal)");
7852     };
7853     if (a->pNext) {
7854         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7855     }
7856     if (!((a->maintenance4) == (b->maintenance4))) {
7857         onFail("a->maintenance4 (Error: Value not equal)");
7858     };
7859 }
7860 
checkEqual_VkPhysicalDeviceMaintenance4Properties(const VkPhysicalDeviceMaintenance4Properties * a,const VkPhysicalDeviceMaintenance4Properties * b,OnFailCompareFunc onFail)7861 void checkEqual_VkPhysicalDeviceMaintenance4Properties(
7862     const VkPhysicalDeviceMaintenance4Properties* a,
7863     const VkPhysicalDeviceMaintenance4Properties* b, OnFailCompareFunc onFail) {
7864     if (!((a->sType) == (b->sType))) {
7865         onFail("a->sType (Error: Value not equal)");
7866     };
7867     if (a->pNext) {
7868         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7869     }
7870     if (!((a->maxBufferSize) == (b->maxBufferSize))) {
7871         onFail("a->maxBufferSize (Error: Value not equal)");
7872     };
7873 }
7874 
checkEqual_VkDeviceBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements * a,const VkDeviceBufferMemoryRequirements * b,OnFailCompareFunc onFail)7875 void checkEqual_VkDeviceBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements* a,
7876                                                  const VkDeviceBufferMemoryRequirements* b,
7877                                                  OnFailCompareFunc onFail) {
7878     if (!((a->sType) == (b->sType))) {
7879         onFail("a->sType (Error: Value not equal)");
7880     };
7881     if (a->pNext) {
7882         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7883     }
7884     if ((a->pCreateInfo) && (b->pCreateInfo)) {
7885         checkEqual_VkBufferCreateInfo(a->pCreateInfo, b->pCreateInfo, onFail);
7886     }
7887 }
7888 
checkEqual_VkDeviceImageMemoryRequirements(const VkDeviceImageMemoryRequirements * a,const VkDeviceImageMemoryRequirements * b,OnFailCompareFunc onFail)7889 void checkEqual_VkDeviceImageMemoryRequirements(const VkDeviceImageMemoryRequirements* a,
7890                                                 const VkDeviceImageMemoryRequirements* b,
7891                                                 OnFailCompareFunc onFail) {
7892     if (!((a->sType) == (b->sType))) {
7893         onFail("a->sType (Error: Value not equal)");
7894     };
7895     if (a->pNext) {
7896         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7897     }
7898     if ((a->pCreateInfo) && (b->pCreateInfo)) {
7899         checkEqual_VkImageCreateInfo(a->pCreateInfo, b->pCreateInfo, onFail);
7900     }
7901     if (!((a->planeAspect) == (b->planeAspect))) {
7902         onFail("a->planeAspect (Error: Value not equal)");
7903     };
7904 }
7905 
7906 #endif
7907 #ifdef VK_KHR_surface
checkEqual_VkSurfaceCapabilitiesKHR(const VkSurfaceCapabilitiesKHR * a,const VkSurfaceCapabilitiesKHR * b,OnFailCompareFunc onFail)7908 void checkEqual_VkSurfaceCapabilitiesKHR(const VkSurfaceCapabilitiesKHR* a,
7909                                          const VkSurfaceCapabilitiesKHR* b,
7910                                          OnFailCompareFunc onFail) {
7911     if (!((a->minImageCount) == (b->minImageCount))) {
7912         onFail("a->minImageCount (Error: Value not equal)");
7913     };
7914     if (!((a->maxImageCount) == (b->maxImageCount))) {
7915         onFail("a->maxImageCount (Error: Value not equal)");
7916     };
7917     checkEqual_VkExtent2D(&a->currentExtent, &b->currentExtent, onFail);
7918     checkEqual_VkExtent2D(&a->minImageExtent, &b->minImageExtent, onFail);
7919     checkEqual_VkExtent2D(&a->maxImageExtent, &b->maxImageExtent, onFail);
7920     if (!((a->maxImageArrayLayers) == (b->maxImageArrayLayers))) {
7921         onFail("a->maxImageArrayLayers (Error: Value not equal)");
7922     };
7923     if (!((a->supportedTransforms) == (b->supportedTransforms))) {
7924         onFail("a->supportedTransforms (Error: Value not equal)");
7925     };
7926     if (!((a->currentTransform) == (b->currentTransform))) {
7927         onFail("a->currentTransform (Error: Value not equal)");
7928     };
7929     if (!((a->supportedCompositeAlpha) == (b->supportedCompositeAlpha))) {
7930         onFail("a->supportedCompositeAlpha (Error: Value not equal)");
7931     };
7932     if (!((a->supportedUsageFlags) == (b->supportedUsageFlags))) {
7933         onFail("a->supportedUsageFlags (Error: Value not equal)");
7934     };
7935 }
7936 
checkEqual_VkSurfaceFormatKHR(const VkSurfaceFormatKHR * a,const VkSurfaceFormatKHR * b,OnFailCompareFunc onFail)7937 void checkEqual_VkSurfaceFormatKHR(const VkSurfaceFormatKHR* a, const VkSurfaceFormatKHR* b,
7938                                    OnFailCompareFunc onFail) {
7939     if (!((a->format) == (b->format))) {
7940         onFail("a->format (Error: Value not equal)");
7941     };
7942     if (!((a->colorSpace) == (b->colorSpace))) {
7943         onFail("a->colorSpace (Error: Value not equal)");
7944     };
7945 }
7946 
7947 #endif
7948 #ifdef VK_KHR_swapchain
checkEqual_VkSwapchainCreateInfoKHR(const VkSwapchainCreateInfoKHR * a,const VkSwapchainCreateInfoKHR * b,OnFailCompareFunc onFail)7949 void checkEqual_VkSwapchainCreateInfoKHR(const VkSwapchainCreateInfoKHR* a,
7950                                          const VkSwapchainCreateInfoKHR* b,
7951                                          OnFailCompareFunc onFail) {
7952     if (!((a->sType) == (b->sType))) {
7953         onFail("a->sType (Error: Value not equal)");
7954     };
7955     if (a->pNext) {
7956         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
7957     }
7958     if (!((a->flags) == (b->flags))) {
7959         onFail("a->flags (Error: Value not equal)");
7960     };
7961     if (!((a->surface) == (b->surface))) {
7962         onFail("a->surface (Error: Value not equal)");
7963     };
7964     if (!((a->minImageCount) == (b->minImageCount))) {
7965         onFail("a->minImageCount (Error: Value not equal)");
7966     };
7967     if (!((a->imageFormat) == (b->imageFormat))) {
7968         onFail("a->imageFormat (Error: Value not equal)");
7969     };
7970     if (!((a->imageColorSpace) == (b->imageColorSpace))) {
7971         onFail("a->imageColorSpace (Error: Value not equal)");
7972     };
7973     checkEqual_VkExtent2D(&a->imageExtent, &b->imageExtent, onFail);
7974     if (!((a->imageArrayLayers) == (b->imageArrayLayers))) {
7975         onFail("a->imageArrayLayers (Error: Value not equal)");
7976     };
7977     if (!((a->imageUsage) == (b->imageUsage))) {
7978         onFail("a->imageUsage (Error: Value not equal)");
7979     };
7980     if (!((a->imageSharingMode) == (b->imageSharingMode))) {
7981         onFail("a->imageSharingMode (Error: Value not equal)");
7982     };
7983     if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
7984         onFail("a->queueFamilyIndexCount (Error: Value not equal)");
7985     };
7986     if (!((!(a->pQueueFamilyIndices) && !(b->pQueueFamilyIndices)) ||
7987           ((a->pQueueFamilyIndices) && (b->pQueueFamilyIndices)))) {
7988         onFail("a->pQueueFamilyIndices (Error: Mismatch in optional field)");
7989     };
7990     if (a->pQueueFamilyIndices && b->pQueueFamilyIndices) {
7991         if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
7992             onFail("a->pQueueFamilyIndices (Error: Lengths not equal)");
7993         };
7994         if (!((memcmp(a->pQueueFamilyIndices, b->pQueueFamilyIndices,
7995                       a->queueFamilyIndexCount * sizeof(const uint32_t)) == 0))) {
7996             onFail("a->pQueueFamilyIndices (Error: Unequal dyn array)");
7997         };
7998     }
7999     if (!((a->preTransform) == (b->preTransform))) {
8000         onFail("a->preTransform (Error: Value not equal)");
8001     };
8002     if (!((a->compositeAlpha) == (b->compositeAlpha))) {
8003         onFail("a->compositeAlpha (Error: Value not equal)");
8004     };
8005     if (!((a->presentMode) == (b->presentMode))) {
8006         onFail("a->presentMode (Error: Value not equal)");
8007     };
8008     if (!((a->clipped) == (b->clipped))) {
8009         onFail("a->clipped (Error: Value not equal)");
8010     };
8011     if (!((a->oldSwapchain) == (b->oldSwapchain))) {
8012         onFail("a->oldSwapchain (Error: Value not equal)");
8013     };
8014 }
8015 
checkEqual_VkPresentInfoKHR(const VkPresentInfoKHR * a,const VkPresentInfoKHR * b,OnFailCompareFunc onFail)8016 void checkEqual_VkPresentInfoKHR(const VkPresentInfoKHR* a, const VkPresentInfoKHR* b,
8017                                  OnFailCompareFunc onFail) {
8018     if (!((a->sType) == (b->sType))) {
8019         onFail("a->sType (Error: Value not equal)");
8020     };
8021     if (a->pNext) {
8022         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8023     }
8024     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
8025         onFail("a->waitSemaphoreCount (Error: Value not equal)");
8026     };
8027     if (!((a->waitSemaphoreCount) == (b->waitSemaphoreCount))) {
8028         onFail("a->pWaitSemaphores (Error: Lengths not equal)");
8029     };
8030     if (!((memcmp(a->pWaitSemaphores, b->pWaitSemaphores,
8031                   a->waitSemaphoreCount * sizeof(const VkSemaphore)) == 0))) {
8032         onFail("a->pWaitSemaphores (Error: Unequal dyn array)");
8033     };
8034     if (!((a->swapchainCount) == (b->swapchainCount))) {
8035         onFail("a->swapchainCount (Error: Value not equal)");
8036     };
8037     if (!((a->swapchainCount) == (b->swapchainCount))) {
8038         onFail("a->pSwapchains (Error: Lengths not equal)");
8039     };
8040     if (!((memcmp(a->pSwapchains, b->pSwapchains,
8041                   a->swapchainCount * sizeof(const VkSwapchainKHR)) == 0))) {
8042         onFail("a->pSwapchains (Error: Unequal dyn array)");
8043     };
8044     if (!((a->swapchainCount) == (b->swapchainCount))) {
8045         onFail("a->pImageIndices (Error: Lengths not equal)");
8046     };
8047     if (!((memcmp(a->pImageIndices, b->pImageIndices, a->swapchainCount * sizeof(const uint32_t)) ==
8048            0))) {
8049         onFail("a->pImageIndices (Error: Unequal dyn array)");
8050     };
8051     if (!((!(a->pResults) && !(b->pResults)) || ((a->pResults) && (b->pResults)))) {
8052         onFail("a->pResults (Error: Mismatch in optional field)");
8053     };
8054     if (a->pResults && b->pResults) {
8055         if (!((a->swapchainCount) == (b->swapchainCount))) {
8056             onFail("a->pResults (Error: Lengths not equal)");
8057         };
8058         if (!((memcmp(a->pResults, b->pResults, a->swapchainCount * sizeof(VkResult)) == 0))) {
8059             onFail("a->pResults (Error: Unequal dyn array)");
8060         };
8061     }
8062 }
8063 
checkEqual_VkImageSwapchainCreateInfoKHR(const VkImageSwapchainCreateInfoKHR * a,const VkImageSwapchainCreateInfoKHR * b,OnFailCompareFunc onFail)8064 void checkEqual_VkImageSwapchainCreateInfoKHR(const VkImageSwapchainCreateInfoKHR* a,
8065                                               const VkImageSwapchainCreateInfoKHR* b,
8066                                               OnFailCompareFunc onFail) {
8067     if (!((a->sType) == (b->sType))) {
8068         onFail("a->sType (Error: Value not equal)");
8069     };
8070     if (a->pNext) {
8071         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8072     }
8073     if (!((a->swapchain) == (b->swapchain))) {
8074         onFail("a->swapchain (Error: Value not equal)");
8075     };
8076 }
8077 
checkEqual_VkBindImageMemorySwapchainInfoKHR(const VkBindImageMemorySwapchainInfoKHR * a,const VkBindImageMemorySwapchainInfoKHR * b,OnFailCompareFunc onFail)8078 void checkEqual_VkBindImageMemorySwapchainInfoKHR(const VkBindImageMemorySwapchainInfoKHR* a,
8079                                                   const VkBindImageMemorySwapchainInfoKHR* b,
8080                                                   OnFailCompareFunc onFail) {
8081     if (!((a->sType) == (b->sType))) {
8082         onFail("a->sType (Error: Value not equal)");
8083     };
8084     if (a->pNext) {
8085         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8086     }
8087     if (!((a->swapchain) == (b->swapchain))) {
8088         onFail("a->swapchain (Error: Value not equal)");
8089     };
8090     if (!((a->imageIndex) == (b->imageIndex))) {
8091         onFail("a->imageIndex (Error: Value not equal)");
8092     };
8093 }
8094 
checkEqual_VkAcquireNextImageInfoKHR(const VkAcquireNextImageInfoKHR * a,const VkAcquireNextImageInfoKHR * b,OnFailCompareFunc onFail)8095 void checkEqual_VkAcquireNextImageInfoKHR(const VkAcquireNextImageInfoKHR* a,
8096                                           const VkAcquireNextImageInfoKHR* b,
8097                                           OnFailCompareFunc onFail) {
8098     if (!((a->sType) == (b->sType))) {
8099         onFail("a->sType (Error: Value not equal)");
8100     };
8101     if (a->pNext) {
8102         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8103     }
8104     if (!((a->swapchain) == (b->swapchain))) {
8105         onFail("a->swapchain (Error: Value not equal)");
8106     };
8107     if (!((a->timeout) == (b->timeout))) {
8108         onFail("a->timeout (Error: Value not equal)");
8109     };
8110     if (!((a->semaphore) == (b->semaphore))) {
8111         onFail("a->semaphore (Error: Value not equal)");
8112     };
8113     if (!((a->fence) == (b->fence))) {
8114         onFail("a->fence (Error: Value not equal)");
8115     };
8116     if (!((a->deviceMask) == (b->deviceMask))) {
8117         onFail("a->deviceMask (Error: Value not equal)");
8118     };
8119 }
8120 
checkEqual_VkDeviceGroupPresentCapabilitiesKHR(const VkDeviceGroupPresentCapabilitiesKHR * a,const VkDeviceGroupPresentCapabilitiesKHR * b,OnFailCompareFunc onFail)8121 void checkEqual_VkDeviceGroupPresentCapabilitiesKHR(const VkDeviceGroupPresentCapabilitiesKHR* a,
8122                                                     const VkDeviceGroupPresentCapabilitiesKHR* b,
8123                                                     OnFailCompareFunc onFail) {
8124     if (!((a->sType) == (b->sType))) {
8125         onFail("a->sType (Error: Value not equal)");
8126     };
8127     if (a->pNext) {
8128         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8129     }
8130     if (!((memcmp(a->presentMask, b->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t)) ==
8131            0))) {
8132         onFail("a->presentMask (Error: Unequal static array)");
8133     };
8134     if (!((a->modes) == (b->modes))) {
8135         onFail("a->modes (Error: Value not equal)");
8136     };
8137 }
8138 
checkEqual_VkDeviceGroupPresentInfoKHR(const VkDeviceGroupPresentInfoKHR * a,const VkDeviceGroupPresentInfoKHR * b,OnFailCompareFunc onFail)8139 void checkEqual_VkDeviceGroupPresentInfoKHR(const VkDeviceGroupPresentInfoKHR* a,
8140                                             const VkDeviceGroupPresentInfoKHR* b,
8141                                             OnFailCompareFunc onFail) {
8142     if (!((a->sType) == (b->sType))) {
8143         onFail("a->sType (Error: Value not equal)");
8144     };
8145     if (a->pNext) {
8146         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8147     }
8148     if (!((a->swapchainCount) == (b->swapchainCount))) {
8149         onFail("a->swapchainCount (Error: Value not equal)");
8150     };
8151     if (!((a->swapchainCount) == (b->swapchainCount))) {
8152         onFail("a->pDeviceMasks (Error: Lengths not equal)");
8153     };
8154     if (!((memcmp(a->pDeviceMasks, b->pDeviceMasks, a->swapchainCount * sizeof(const uint32_t)) ==
8155            0))) {
8156         onFail("a->pDeviceMasks (Error: Unequal dyn array)");
8157     };
8158     if (!((a->mode) == (b->mode))) {
8159         onFail("a->mode (Error: Value not equal)");
8160     };
8161 }
8162 
checkEqual_VkDeviceGroupSwapchainCreateInfoKHR(const VkDeviceGroupSwapchainCreateInfoKHR * a,const VkDeviceGroupSwapchainCreateInfoKHR * b,OnFailCompareFunc onFail)8163 void checkEqual_VkDeviceGroupSwapchainCreateInfoKHR(const VkDeviceGroupSwapchainCreateInfoKHR* a,
8164                                                     const VkDeviceGroupSwapchainCreateInfoKHR* b,
8165                                                     OnFailCompareFunc onFail) {
8166     if (!((a->sType) == (b->sType))) {
8167         onFail("a->sType (Error: Value not equal)");
8168     };
8169     if (a->pNext) {
8170         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8171     }
8172     if (!((a->modes) == (b->modes))) {
8173         onFail("a->modes (Error: Value not equal)");
8174     };
8175 }
8176 
8177 #endif
8178 #ifdef VK_KHR_display
checkEqual_VkDisplayModeParametersKHR(const VkDisplayModeParametersKHR * a,const VkDisplayModeParametersKHR * b,OnFailCompareFunc onFail)8179 void checkEqual_VkDisplayModeParametersKHR(const VkDisplayModeParametersKHR* a,
8180                                            const VkDisplayModeParametersKHR* b,
8181                                            OnFailCompareFunc onFail) {
8182     checkEqual_VkExtent2D(&a->visibleRegion, &b->visibleRegion, onFail);
8183     if (!((a->refreshRate) == (b->refreshRate))) {
8184         onFail("a->refreshRate (Error: Value not equal)");
8185     };
8186 }
8187 
checkEqual_VkDisplayModeCreateInfoKHR(const VkDisplayModeCreateInfoKHR * a,const VkDisplayModeCreateInfoKHR * b,OnFailCompareFunc onFail)8188 void checkEqual_VkDisplayModeCreateInfoKHR(const VkDisplayModeCreateInfoKHR* a,
8189                                            const VkDisplayModeCreateInfoKHR* b,
8190                                            OnFailCompareFunc onFail) {
8191     if (!((a->sType) == (b->sType))) {
8192         onFail("a->sType (Error: Value not equal)");
8193     };
8194     if (a->pNext) {
8195         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8196     }
8197     if (!((a->flags) == (b->flags))) {
8198         onFail("a->flags (Error: Value not equal)");
8199     };
8200     checkEqual_VkDisplayModeParametersKHR(&a->parameters, &b->parameters, onFail);
8201 }
8202 
checkEqual_VkDisplayModePropertiesKHR(const VkDisplayModePropertiesKHR * a,const VkDisplayModePropertiesKHR * b,OnFailCompareFunc onFail)8203 void checkEqual_VkDisplayModePropertiesKHR(const VkDisplayModePropertiesKHR* a,
8204                                            const VkDisplayModePropertiesKHR* b,
8205                                            OnFailCompareFunc onFail) {
8206     if (!((a->displayMode) == (b->displayMode))) {
8207         onFail("a->displayMode (Error: Value not equal)");
8208     };
8209     checkEqual_VkDisplayModeParametersKHR(&a->parameters, &b->parameters, onFail);
8210 }
8211 
checkEqual_VkDisplayPlaneCapabilitiesKHR(const VkDisplayPlaneCapabilitiesKHR * a,const VkDisplayPlaneCapabilitiesKHR * b,OnFailCompareFunc onFail)8212 void checkEqual_VkDisplayPlaneCapabilitiesKHR(const VkDisplayPlaneCapabilitiesKHR* a,
8213                                               const VkDisplayPlaneCapabilitiesKHR* b,
8214                                               OnFailCompareFunc onFail) {
8215     if (!((a->supportedAlpha) == (b->supportedAlpha))) {
8216         onFail("a->supportedAlpha (Error: Value not equal)");
8217     };
8218     checkEqual_VkOffset2D(&a->minSrcPosition, &b->minSrcPosition, onFail);
8219     checkEqual_VkOffset2D(&a->maxSrcPosition, &b->maxSrcPosition, onFail);
8220     checkEqual_VkExtent2D(&a->minSrcExtent, &b->minSrcExtent, onFail);
8221     checkEqual_VkExtent2D(&a->maxSrcExtent, &b->maxSrcExtent, onFail);
8222     checkEqual_VkOffset2D(&a->minDstPosition, &b->minDstPosition, onFail);
8223     checkEqual_VkOffset2D(&a->maxDstPosition, &b->maxDstPosition, onFail);
8224     checkEqual_VkExtent2D(&a->minDstExtent, &b->minDstExtent, onFail);
8225     checkEqual_VkExtent2D(&a->maxDstExtent, &b->maxDstExtent, onFail);
8226 }
8227 
checkEqual_VkDisplayPlanePropertiesKHR(const VkDisplayPlanePropertiesKHR * a,const VkDisplayPlanePropertiesKHR * b,OnFailCompareFunc onFail)8228 void checkEqual_VkDisplayPlanePropertiesKHR(const VkDisplayPlanePropertiesKHR* a,
8229                                             const VkDisplayPlanePropertiesKHR* b,
8230                                             OnFailCompareFunc onFail) {
8231     if (!((a->currentDisplay) == (b->currentDisplay))) {
8232         onFail("a->currentDisplay (Error: Value not equal)");
8233     };
8234     if (!((a->currentStackIndex) == (b->currentStackIndex))) {
8235         onFail("a->currentStackIndex (Error: Value not equal)");
8236     };
8237 }
8238 
checkEqual_VkDisplayPropertiesKHR(const VkDisplayPropertiesKHR * a,const VkDisplayPropertiesKHR * b,OnFailCompareFunc onFail)8239 void checkEqual_VkDisplayPropertiesKHR(const VkDisplayPropertiesKHR* a,
8240                                        const VkDisplayPropertiesKHR* b, OnFailCompareFunc onFail) {
8241     if (!((a->display) == (b->display))) {
8242         onFail("a->display (Error: Value not equal)");
8243     };
8244     if (!((!(a->displayName) && !(b->displayName)) || ((a->displayName) && (b->displayName)))) {
8245         onFail("a->displayName (Error: Mismatch in string pointer nullness)");
8246     };
8247     if ((a->displayName) && (b->displayName)) {
8248         if (!((strcmp(a->displayName, b->displayName) == 0))) {
8249             onFail("a->displayName (Error: Unequal strings)");
8250         };
8251     }
8252     checkEqual_VkExtent2D(&a->physicalDimensions, &b->physicalDimensions, onFail);
8253     checkEqual_VkExtent2D(&a->physicalResolution, &b->physicalResolution, onFail);
8254     if (!((a->supportedTransforms) == (b->supportedTransforms))) {
8255         onFail("a->supportedTransforms (Error: Value not equal)");
8256     };
8257     if (!((a->planeReorderPossible) == (b->planeReorderPossible))) {
8258         onFail("a->planeReorderPossible (Error: Value not equal)");
8259     };
8260     if (!((a->persistentContent) == (b->persistentContent))) {
8261         onFail("a->persistentContent (Error: Value not equal)");
8262     };
8263 }
8264 
checkEqual_VkDisplaySurfaceCreateInfoKHR(const VkDisplaySurfaceCreateInfoKHR * a,const VkDisplaySurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8265 void checkEqual_VkDisplaySurfaceCreateInfoKHR(const VkDisplaySurfaceCreateInfoKHR* a,
8266                                               const VkDisplaySurfaceCreateInfoKHR* b,
8267                                               OnFailCompareFunc onFail) {
8268     if (!((a->sType) == (b->sType))) {
8269         onFail("a->sType (Error: Value not equal)");
8270     };
8271     if (a->pNext) {
8272         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8273     }
8274     if (!((a->flags) == (b->flags))) {
8275         onFail("a->flags (Error: Value not equal)");
8276     };
8277     if (!((a->displayMode) == (b->displayMode))) {
8278         onFail("a->displayMode (Error: Value not equal)");
8279     };
8280     if (!((a->planeIndex) == (b->planeIndex))) {
8281         onFail("a->planeIndex (Error: Value not equal)");
8282     };
8283     if (!((a->planeStackIndex) == (b->planeStackIndex))) {
8284         onFail("a->planeStackIndex (Error: Value not equal)");
8285     };
8286     if (!((a->transform) == (b->transform))) {
8287         onFail("a->transform (Error: Value not equal)");
8288     };
8289     if (!((a->globalAlpha) == (b->globalAlpha))) {
8290         onFail("a->globalAlpha (Error: Value not equal)");
8291     };
8292     if (!((a->alphaMode) == (b->alphaMode))) {
8293         onFail("a->alphaMode (Error: Value not equal)");
8294     };
8295     checkEqual_VkExtent2D(&a->imageExtent, &b->imageExtent, onFail);
8296 }
8297 
8298 #endif
8299 #ifdef VK_KHR_display_swapchain
checkEqual_VkDisplayPresentInfoKHR(const VkDisplayPresentInfoKHR * a,const VkDisplayPresentInfoKHR * b,OnFailCompareFunc onFail)8300 void checkEqual_VkDisplayPresentInfoKHR(const VkDisplayPresentInfoKHR* a,
8301                                         const VkDisplayPresentInfoKHR* b,
8302                                         OnFailCompareFunc onFail) {
8303     if (!((a->sType) == (b->sType))) {
8304         onFail("a->sType (Error: Value not equal)");
8305     };
8306     if (a->pNext) {
8307         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8308     }
8309     checkEqual_VkRect2D(&a->srcRect, &b->srcRect, onFail);
8310     checkEqual_VkRect2D(&a->dstRect, &b->dstRect, onFail);
8311     if (!((a->persistent) == (b->persistent))) {
8312         onFail("a->persistent (Error: Value not equal)");
8313     };
8314 }
8315 
8316 #endif
8317 #ifdef VK_KHR_xlib_surface
checkEqual_VkXlibSurfaceCreateInfoKHR(const VkXlibSurfaceCreateInfoKHR * a,const VkXlibSurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8318 void checkEqual_VkXlibSurfaceCreateInfoKHR(const VkXlibSurfaceCreateInfoKHR* a,
8319                                            const VkXlibSurfaceCreateInfoKHR* b,
8320                                            OnFailCompareFunc onFail) {
8321     if (!((a->sType) == (b->sType))) {
8322         onFail("a->sType (Error: Value not equal)");
8323     };
8324     if (a->pNext) {
8325         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8326     }
8327     if (!((a->flags) == (b->flags))) {
8328         onFail("a->flags (Error: Value not equal)");
8329     };
8330     if (!((!(a->dpy) && !(b->dpy)) || ((a->dpy) && (b->dpy)))) {
8331         onFail("a->dpy (Error: Mismatch in optional field)");
8332     };
8333     if (a->dpy && b->dpy) {
8334         if (!((memcmp(a->dpy, b->dpy, sizeof(Display)) == 0))) {
8335             onFail("a->dpy (Error: Unequal dyn array)");
8336         };
8337     }
8338     if (!((a->window) == (b->window))) {
8339         onFail("a->window (Error: Value not equal)");
8340     };
8341 }
8342 
8343 #endif
8344 #ifdef VK_KHR_xcb_surface
checkEqual_VkXcbSurfaceCreateInfoKHR(const VkXcbSurfaceCreateInfoKHR * a,const VkXcbSurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8345 void checkEqual_VkXcbSurfaceCreateInfoKHR(const VkXcbSurfaceCreateInfoKHR* a,
8346                                           const VkXcbSurfaceCreateInfoKHR* b,
8347                                           OnFailCompareFunc onFail) {
8348     if (!((a->sType) == (b->sType))) {
8349         onFail("a->sType (Error: Value not equal)");
8350     };
8351     if (a->pNext) {
8352         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8353     }
8354     if (!((a->flags) == (b->flags))) {
8355         onFail("a->flags (Error: Value not equal)");
8356     };
8357     if (!((!(a->connection) && !(b->connection)) || ((a->connection) && (b->connection)))) {
8358         onFail("a->connection (Error: Mismatch in optional field)");
8359     };
8360     if (a->connection && b->connection) {
8361         if (!((memcmp(a->connection, b->connection, sizeof(xcb_connection_t)) == 0))) {
8362             onFail("a->connection (Error: Unequal dyn array)");
8363         };
8364     }
8365     if (!((a->window) == (b->window))) {
8366         onFail("a->window (Error: Value not equal)");
8367     };
8368 }
8369 
8370 #endif
8371 #ifdef VK_KHR_wayland_surface
checkEqual_VkWaylandSurfaceCreateInfoKHR(const VkWaylandSurfaceCreateInfoKHR * a,const VkWaylandSurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8372 void checkEqual_VkWaylandSurfaceCreateInfoKHR(const VkWaylandSurfaceCreateInfoKHR* a,
8373                                               const VkWaylandSurfaceCreateInfoKHR* b,
8374                                               OnFailCompareFunc onFail) {
8375     if (!((a->sType) == (b->sType))) {
8376         onFail("a->sType (Error: Value not equal)");
8377     };
8378     if (a->pNext) {
8379         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8380     }
8381     if (!((a->flags) == (b->flags))) {
8382         onFail("a->flags (Error: Value not equal)");
8383     };
8384     if (!((!(a->display) && !(b->display)) || ((a->display) && (b->display)))) {
8385         onFail("a->display (Error: Mismatch in optional field)");
8386     };
8387     if (a->display && b->display) {
8388         if (!((memcmp(a->display, b->display, sizeof(wl_display)) == 0))) {
8389             onFail("a->display (Error: Unequal dyn array)");
8390         };
8391     }
8392     if (!((!(a->surface) && !(b->surface)) || ((a->surface) && (b->surface)))) {
8393         onFail("a->surface (Error: Mismatch in optional field)");
8394     };
8395     if (a->surface && b->surface) {
8396         if (!((memcmp(a->surface, b->surface, sizeof(wl_surface)) == 0))) {
8397             onFail("a->surface (Error: Unequal dyn array)");
8398         };
8399     }
8400 }
8401 
8402 #endif
8403 #ifdef VK_KHR_android_surface
checkEqual_VkAndroidSurfaceCreateInfoKHR(const VkAndroidSurfaceCreateInfoKHR * a,const VkAndroidSurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8404 void checkEqual_VkAndroidSurfaceCreateInfoKHR(const VkAndroidSurfaceCreateInfoKHR* a,
8405                                               const VkAndroidSurfaceCreateInfoKHR* b,
8406                                               OnFailCompareFunc onFail) {
8407     if (!((a->sType) == (b->sType))) {
8408         onFail("a->sType (Error: Value not equal)");
8409     };
8410     if (a->pNext) {
8411         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8412     }
8413     if (!((a->flags) == (b->flags))) {
8414         onFail("a->flags (Error: Value not equal)");
8415     };
8416     if (!((!(a->window) && !(b->window)) || ((a->window) && (b->window)))) {
8417         onFail("a->window (Error: Mismatch in optional field)");
8418     };
8419     if (a->window && b->window) {
8420         if (!((memcmp(a->window, b->window, sizeof(ANativeWindow)) == 0))) {
8421             onFail("a->window (Error: Unequal dyn array)");
8422         };
8423     }
8424 }
8425 
8426 #endif
8427 #ifdef VK_KHR_win32_surface
checkEqual_VkWin32SurfaceCreateInfoKHR(const VkWin32SurfaceCreateInfoKHR * a,const VkWin32SurfaceCreateInfoKHR * b,OnFailCompareFunc onFail)8428 void checkEqual_VkWin32SurfaceCreateInfoKHR(const VkWin32SurfaceCreateInfoKHR* a,
8429                                             const VkWin32SurfaceCreateInfoKHR* b,
8430                                             OnFailCompareFunc onFail) {
8431     if (!((a->sType) == (b->sType))) {
8432         onFail("a->sType (Error: Value not equal)");
8433     };
8434     if (a->pNext) {
8435         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8436     }
8437     if (!((a->flags) == (b->flags))) {
8438         onFail("a->flags (Error: Value not equal)");
8439     };
8440     if (!((a->hinstance) == (b->hinstance))) {
8441         onFail("a->hinstance (Error: Value not equal)");
8442     };
8443     if (!((a->hwnd) == (b->hwnd))) {
8444         onFail("a->hwnd (Error: Value not equal)");
8445     };
8446 }
8447 
8448 #endif
8449 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
8450 #endif
8451 #ifdef VK_KHR_video_queue
checkEqual_VkQueueFamilyQueryResultStatusPropertiesKHR(const VkQueueFamilyQueryResultStatusPropertiesKHR * a,const VkQueueFamilyQueryResultStatusPropertiesKHR * b,OnFailCompareFunc onFail)8452 void checkEqual_VkQueueFamilyQueryResultStatusPropertiesKHR(
8453     const VkQueueFamilyQueryResultStatusPropertiesKHR* a,
8454     const VkQueueFamilyQueryResultStatusPropertiesKHR* b, OnFailCompareFunc onFail) {
8455     if (!((a->sType) == (b->sType))) {
8456         onFail("a->sType (Error: Value not equal)");
8457     };
8458     if (a->pNext) {
8459         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8460     }
8461     if (!((a->queryResultStatusSupport) == (b->queryResultStatusSupport))) {
8462         onFail("a->queryResultStatusSupport (Error: Value not equal)");
8463     };
8464 }
8465 
checkEqual_VkQueueFamilyVideoPropertiesKHR(const VkQueueFamilyVideoPropertiesKHR * a,const VkQueueFamilyVideoPropertiesKHR * b,OnFailCompareFunc onFail)8466 void checkEqual_VkQueueFamilyVideoPropertiesKHR(const VkQueueFamilyVideoPropertiesKHR* a,
8467                                                 const VkQueueFamilyVideoPropertiesKHR* b,
8468                                                 OnFailCompareFunc onFail) {
8469     if (!((a->sType) == (b->sType))) {
8470         onFail("a->sType (Error: Value not equal)");
8471     };
8472     if (a->pNext) {
8473         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8474     }
8475     if (!((a->videoCodecOperations) == (b->videoCodecOperations))) {
8476         onFail("a->videoCodecOperations (Error: Value not equal)");
8477     };
8478 }
8479 
checkEqual_VkVideoProfileInfoKHR(const VkVideoProfileInfoKHR * a,const VkVideoProfileInfoKHR * b,OnFailCompareFunc onFail)8480 void checkEqual_VkVideoProfileInfoKHR(const VkVideoProfileInfoKHR* a,
8481                                       const VkVideoProfileInfoKHR* b, OnFailCompareFunc onFail) {
8482     if (!((a->sType) == (b->sType))) {
8483         onFail("a->sType (Error: Value not equal)");
8484     };
8485     if (a->pNext) {
8486         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8487     }
8488     if (!((a->videoCodecOperation) == (b->videoCodecOperation))) {
8489         onFail("a->videoCodecOperation (Error: Value not equal)");
8490     };
8491     if (!((a->chromaSubsampling) == (b->chromaSubsampling))) {
8492         onFail("a->chromaSubsampling (Error: Value not equal)");
8493     };
8494     if (!((a->lumaBitDepth) == (b->lumaBitDepth))) {
8495         onFail("a->lumaBitDepth (Error: Value not equal)");
8496     };
8497     if (!((a->chromaBitDepth) == (b->chromaBitDepth))) {
8498         onFail("a->chromaBitDepth (Error: Value not equal)");
8499     };
8500 }
8501 
checkEqual_VkVideoProfileListInfoKHR(const VkVideoProfileListInfoKHR * a,const VkVideoProfileListInfoKHR * b,OnFailCompareFunc onFail)8502 void checkEqual_VkVideoProfileListInfoKHR(const VkVideoProfileListInfoKHR* a,
8503                                           const VkVideoProfileListInfoKHR* b,
8504                                           OnFailCompareFunc onFail) {
8505     if (!((a->sType) == (b->sType))) {
8506         onFail("a->sType (Error: Value not equal)");
8507     };
8508     if (a->pNext) {
8509         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8510     }
8511     if (!((a->profileCount) == (b->profileCount))) {
8512         onFail("a->profileCount (Error: Value not equal)");
8513     };
8514     if ((a->pProfiles) && (b->pProfiles)) {
8515         if (!((a->profileCount) == (b->profileCount))) {
8516             onFail("a->pProfiles (Error: Lengths not equal)");
8517         };
8518         if ((a->profileCount) == (b->profileCount)) {
8519             if (a) {
8520                 for (uint32_t i = 0; i < (uint32_t)a->profileCount; ++i) {
8521                     checkEqual_VkVideoProfileInfoKHR(a->pProfiles + i, b->pProfiles + i, onFail);
8522                 }
8523             }
8524         }
8525     }
8526 }
8527 
checkEqual_VkVideoCapabilitiesKHR(const VkVideoCapabilitiesKHR * a,const VkVideoCapabilitiesKHR * b,OnFailCompareFunc onFail)8528 void checkEqual_VkVideoCapabilitiesKHR(const VkVideoCapabilitiesKHR* a,
8529                                        const VkVideoCapabilitiesKHR* b, OnFailCompareFunc onFail) {
8530     if (!((a->sType) == (b->sType))) {
8531         onFail("a->sType (Error: Value not equal)");
8532     };
8533     if (a->pNext) {
8534         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8535     }
8536     if (!((a->flags) == (b->flags))) {
8537         onFail("a->flags (Error: Value not equal)");
8538     };
8539     if (!((a->minBitstreamBufferOffsetAlignment) == (b->minBitstreamBufferOffsetAlignment))) {
8540         onFail("a->minBitstreamBufferOffsetAlignment (Error: Value not equal)");
8541     };
8542     if (!((a->minBitstreamBufferSizeAlignment) == (b->minBitstreamBufferSizeAlignment))) {
8543         onFail("a->minBitstreamBufferSizeAlignment (Error: Value not equal)");
8544     };
8545     checkEqual_VkExtent2D(&a->pictureAccessGranularity, &b->pictureAccessGranularity, onFail);
8546     checkEqual_VkExtent2D(&a->minCodedExtent, &b->minCodedExtent, onFail);
8547     checkEqual_VkExtent2D(&a->maxCodedExtent, &b->maxCodedExtent, onFail);
8548     if (!((a->maxDpbSlots) == (b->maxDpbSlots))) {
8549         onFail("a->maxDpbSlots (Error: Value not equal)");
8550     };
8551     if (!((a->maxActiveReferencePictures) == (b->maxActiveReferencePictures))) {
8552         onFail("a->maxActiveReferencePictures (Error: Value not equal)");
8553     };
8554     checkEqual_VkExtensionProperties(&a->stdHeaderVersion, &b->stdHeaderVersion, onFail);
8555 }
8556 
checkEqual_VkPhysicalDeviceVideoFormatInfoKHR(const VkPhysicalDeviceVideoFormatInfoKHR * a,const VkPhysicalDeviceVideoFormatInfoKHR * b,OnFailCompareFunc onFail)8557 void checkEqual_VkPhysicalDeviceVideoFormatInfoKHR(const VkPhysicalDeviceVideoFormatInfoKHR* a,
8558                                                    const VkPhysicalDeviceVideoFormatInfoKHR* b,
8559                                                    OnFailCompareFunc onFail) {
8560     if (!((a->sType) == (b->sType))) {
8561         onFail("a->sType (Error: Value not equal)");
8562     };
8563     if (a->pNext) {
8564         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8565     }
8566     if (!((a->imageUsage) == (b->imageUsage))) {
8567         onFail("a->imageUsage (Error: Value not equal)");
8568     };
8569 }
8570 
checkEqual_VkVideoFormatPropertiesKHR(const VkVideoFormatPropertiesKHR * a,const VkVideoFormatPropertiesKHR * b,OnFailCompareFunc onFail)8571 void checkEqual_VkVideoFormatPropertiesKHR(const VkVideoFormatPropertiesKHR* a,
8572                                            const VkVideoFormatPropertiesKHR* b,
8573                                            OnFailCompareFunc onFail) {
8574     if (!((a->sType) == (b->sType))) {
8575         onFail("a->sType (Error: Value not equal)");
8576     };
8577     if (a->pNext) {
8578         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8579     }
8580     if (!((a->format) == (b->format))) {
8581         onFail("a->format (Error: Value not equal)");
8582     };
8583     checkEqual_VkComponentMapping(&a->componentMapping, &b->componentMapping, onFail);
8584     if (!((a->imageCreateFlags) == (b->imageCreateFlags))) {
8585         onFail("a->imageCreateFlags (Error: Value not equal)");
8586     };
8587     if (!((a->imageType) == (b->imageType))) {
8588         onFail("a->imageType (Error: Value not equal)");
8589     };
8590     if (!((a->imageTiling) == (b->imageTiling))) {
8591         onFail("a->imageTiling (Error: Value not equal)");
8592     };
8593     if (!((a->imageUsageFlags) == (b->imageUsageFlags))) {
8594         onFail("a->imageUsageFlags (Error: Value not equal)");
8595     };
8596 }
8597 
checkEqual_VkVideoPictureResourceInfoKHR(const VkVideoPictureResourceInfoKHR * a,const VkVideoPictureResourceInfoKHR * b,OnFailCompareFunc onFail)8598 void checkEqual_VkVideoPictureResourceInfoKHR(const VkVideoPictureResourceInfoKHR* a,
8599                                               const VkVideoPictureResourceInfoKHR* b,
8600                                               OnFailCompareFunc onFail) {
8601     if (!((a->sType) == (b->sType))) {
8602         onFail("a->sType (Error: Value not equal)");
8603     };
8604     if (a->pNext) {
8605         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8606     }
8607     checkEqual_VkOffset2D(&a->codedOffset, &b->codedOffset, onFail);
8608     checkEqual_VkExtent2D(&a->codedExtent, &b->codedExtent, onFail);
8609     if (!((a->baseArrayLayer) == (b->baseArrayLayer))) {
8610         onFail("a->baseArrayLayer (Error: Value not equal)");
8611     };
8612     if (!((a->imageViewBinding) == (b->imageViewBinding))) {
8613         onFail("a->imageViewBinding (Error: Value not equal)");
8614     };
8615 }
8616 
checkEqual_VkVideoReferenceSlotInfoKHR(const VkVideoReferenceSlotInfoKHR * a,const VkVideoReferenceSlotInfoKHR * b,OnFailCompareFunc onFail)8617 void checkEqual_VkVideoReferenceSlotInfoKHR(const VkVideoReferenceSlotInfoKHR* a,
8618                                             const VkVideoReferenceSlotInfoKHR* b,
8619                                             OnFailCompareFunc onFail) {
8620     if (!((a->sType) == (b->sType))) {
8621         onFail("a->sType (Error: Value not equal)");
8622     };
8623     if (a->pNext) {
8624         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8625     }
8626     if (!((a->slotIndex) == (b->slotIndex))) {
8627         onFail("a->slotIndex (Error: Value not equal)");
8628     };
8629     if (!((!(a->pPictureResource) && !(b->pPictureResource)) ||
8630           ((a->pPictureResource) && (b->pPictureResource)))) {
8631         onFail("a->pPictureResource (Error: Mismatch in optional field)");
8632     };
8633     if (a->pPictureResource && b->pPictureResource) {
8634         if ((a->pPictureResource) && (b->pPictureResource)) {
8635             checkEqual_VkVideoPictureResourceInfoKHR(a->pPictureResource, b->pPictureResource,
8636                                                      onFail);
8637         }
8638     }
8639 }
8640 
checkEqual_VkVideoSessionMemoryRequirementsKHR(const VkVideoSessionMemoryRequirementsKHR * a,const VkVideoSessionMemoryRequirementsKHR * b,OnFailCompareFunc onFail)8641 void checkEqual_VkVideoSessionMemoryRequirementsKHR(const VkVideoSessionMemoryRequirementsKHR* a,
8642                                                     const VkVideoSessionMemoryRequirementsKHR* b,
8643                                                     OnFailCompareFunc onFail) {
8644     if (!((a->sType) == (b->sType))) {
8645         onFail("a->sType (Error: Value not equal)");
8646     };
8647     if (a->pNext) {
8648         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8649     }
8650     if (!((a->memoryBindIndex) == (b->memoryBindIndex))) {
8651         onFail("a->memoryBindIndex (Error: Value not equal)");
8652     };
8653     checkEqual_VkMemoryRequirements(&a->memoryRequirements, &b->memoryRequirements, onFail);
8654 }
8655 
checkEqual_VkBindVideoSessionMemoryInfoKHR(const VkBindVideoSessionMemoryInfoKHR * a,const VkBindVideoSessionMemoryInfoKHR * b,OnFailCompareFunc onFail)8656 void checkEqual_VkBindVideoSessionMemoryInfoKHR(const VkBindVideoSessionMemoryInfoKHR* a,
8657                                                 const VkBindVideoSessionMemoryInfoKHR* b,
8658                                                 OnFailCompareFunc onFail) {
8659     if (!((a->sType) == (b->sType))) {
8660         onFail("a->sType (Error: Value not equal)");
8661     };
8662     if (a->pNext) {
8663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8664     }
8665     if (!((a->memoryBindIndex) == (b->memoryBindIndex))) {
8666         onFail("a->memoryBindIndex (Error: Value not equal)");
8667     };
8668     if (!((a->memory) == (b->memory))) {
8669         onFail("a->memory (Error: Value not equal)");
8670     };
8671     if (!((a->memoryOffset) == (b->memoryOffset))) {
8672         onFail("a->memoryOffset (Error: Value not equal)");
8673     };
8674     if (!((a->memorySize) == (b->memorySize))) {
8675         onFail("a->memorySize (Error: Value not equal)");
8676     };
8677 }
8678 
checkEqual_VkVideoSessionCreateInfoKHR(const VkVideoSessionCreateInfoKHR * a,const VkVideoSessionCreateInfoKHR * b,OnFailCompareFunc onFail)8679 void checkEqual_VkVideoSessionCreateInfoKHR(const VkVideoSessionCreateInfoKHR* a,
8680                                             const VkVideoSessionCreateInfoKHR* b,
8681                                             OnFailCompareFunc onFail) {
8682     if (!((a->sType) == (b->sType))) {
8683         onFail("a->sType (Error: Value not equal)");
8684     };
8685     if (a->pNext) {
8686         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8687     }
8688     if (!((a->queueFamilyIndex) == (b->queueFamilyIndex))) {
8689         onFail("a->queueFamilyIndex (Error: Value not equal)");
8690     };
8691     if (!((a->flags) == (b->flags))) {
8692         onFail("a->flags (Error: Value not equal)");
8693     };
8694     if ((a->pVideoProfile) && (b->pVideoProfile)) {
8695         checkEqual_VkVideoProfileInfoKHR(a->pVideoProfile, b->pVideoProfile, onFail);
8696     }
8697     if (!((a->pictureFormat) == (b->pictureFormat))) {
8698         onFail("a->pictureFormat (Error: Value not equal)");
8699     };
8700     checkEqual_VkExtent2D(&a->maxCodedExtent, &b->maxCodedExtent, onFail);
8701     if (!((a->referencePictureFormat) == (b->referencePictureFormat))) {
8702         onFail("a->referencePictureFormat (Error: Value not equal)");
8703     };
8704     if (!((a->maxDpbSlots) == (b->maxDpbSlots))) {
8705         onFail("a->maxDpbSlots (Error: Value not equal)");
8706     };
8707     if (!((a->maxActiveReferencePictures) == (b->maxActiveReferencePictures))) {
8708         onFail("a->maxActiveReferencePictures (Error: Value not equal)");
8709     };
8710     if ((a->pStdHeaderVersion) && (b->pStdHeaderVersion)) {
8711         checkEqual_VkExtensionProperties(a->pStdHeaderVersion, b->pStdHeaderVersion, onFail);
8712     }
8713 }
8714 
checkEqual_VkVideoSessionParametersCreateInfoKHR(const VkVideoSessionParametersCreateInfoKHR * a,const VkVideoSessionParametersCreateInfoKHR * b,OnFailCompareFunc onFail)8715 void checkEqual_VkVideoSessionParametersCreateInfoKHR(
8716     const VkVideoSessionParametersCreateInfoKHR* a, const VkVideoSessionParametersCreateInfoKHR* b,
8717     OnFailCompareFunc onFail) {
8718     if (!((a->sType) == (b->sType))) {
8719         onFail("a->sType (Error: Value not equal)");
8720     };
8721     if (a->pNext) {
8722         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8723     }
8724     if (!((a->flags) == (b->flags))) {
8725         onFail("a->flags (Error: Value not equal)");
8726     };
8727     if (!((a->videoSessionParametersTemplate) == (b->videoSessionParametersTemplate))) {
8728         onFail("a->videoSessionParametersTemplate (Error: Value not equal)");
8729     };
8730     if (!((a->videoSession) == (b->videoSession))) {
8731         onFail("a->videoSession (Error: Value not equal)");
8732     };
8733 }
8734 
checkEqual_VkVideoSessionParametersUpdateInfoKHR(const VkVideoSessionParametersUpdateInfoKHR * a,const VkVideoSessionParametersUpdateInfoKHR * b,OnFailCompareFunc onFail)8735 void checkEqual_VkVideoSessionParametersUpdateInfoKHR(
8736     const VkVideoSessionParametersUpdateInfoKHR* a, const VkVideoSessionParametersUpdateInfoKHR* b,
8737     OnFailCompareFunc onFail) {
8738     if (!((a->sType) == (b->sType))) {
8739         onFail("a->sType (Error: Value not equal)");
8740     };
8741     if (a->pNext) {
8742         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8743     }
8744     if (!((a->updateSequenceCount) == (b->updateSequenceCount))) {
8745         onFail("a->updateSequenceCount (Error: Value not equal)");
8746     };
8747 }
8748 
checkEqual_VkVideoBeginCodingInfoKHR(const VkVideoBeginCodingInfoKHR * a,const VkVideoBeginCodingInfoKHR * b,OnFailCompareFunc onFail)8749 void checkEqual_VkVideoBeginCodingInfoKHR(const VkVideoBeginCodingInfoKHR* a,
8750                                           const VkVideoBeginCodingInfoKHR* b,
8751                                           OnFailCompareFunc onFail) {
8752     if (!((a->sType) == (b->sType))) {
8753         onFail("a->sType (Error: Value not equal)");
8754     };
8755     if (a->pNext) {
8756         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8757     }
8758     if (!((a->flags) == (b->flags))) {
8759         onFail("a->flags (Error: Value not equal)");
8760     };
8761     if (!((a->videoSession) == (b->videoSession))) {
8762         onFail("a->videoSession (Error: Value not equal)");
8763     };
8764     if (!((a->videoSessionParameters) == (b->videoSessionParameters))) {
8765         onFail("a->videoSessionParameters (Error: Value not equal)");
8766     };
8767     if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
8768         onFail("a->referenceSlotCount (Error: Value not equal)");
8769     };
8770     if ((a->pReferenceSlots) && (b->pReferenceSlots)) {
8771         if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
8772             onFail("a->pReferenceSlots (Error: Lengths not equal)");
8773         };
8774         if ((a->referenceSlotCount) == (b->referenceSlotCount)) {
8775             if (a) {
8776                 for (uint32_t i = 0; i < (uint32_t)a->referenceSlotCount; ++i) {
8777                     checkEqual_VkVideoReferenceSlotInfoKHR(a->pReferenceSlots + i,
8778                                                            b->pReferenceSlots + i, onFail);
8779                 }
8780             }
8781         }
8782     }
8783 }
8784 
checkEqual_VkVideoEndCodingInfoKHR(const VkVideoEndCodingInfoKHR * a,const VkVideoEndCodingInfoKHR * b,OnFailCompareFunc onFail)8785 void checkEqual_VkVideoEndCodingInfoKHR(const VkVideoEndCodingInfoKHR* a,
8786                                         const VkVideoEndCodingInfoKHR* b,
8787                                         OnFailCompareFunc onFail) {
8788     if (!((a->sType) == (b->sType))) {
8789         onFail("a->sType (Error: Value not equal)");
8790     };
8791     if (a->pNext) {
8792         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8793     }
8794     if (!((a->flags) == (b->flags))) {
8795         onFail("a->flags (Error: Value not equal)");
8796     };
8797 }
8798 
checkEqual_VkVideoCodingControlInfoKHR(const VkVideoCodingControlInfoKHR * a,const VkVideoCodingControlInfoKHR * b,OnFailCompareFunc onFail)8799 void checkEqual_VkVideoCodingControlInfoKHR(const VkVideoCodingControlInfoKHR* a,
8800                                             const VkVideoCodingControlInfoKHR* b,
8801                                             OnFailCompareFunc onFail) {
8802     if (!((a->sType) == (b->sType))) {
8803         onFail("a->sType (Error: Value not equal)");
8804     };
8805     if (a->pNext) {
8806         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8807     }
8808     if (!((a->flags) == (b->flags))) {
8809         onFail("a->flags (Error: Value not equal)");
8810     };
8811 }
8812 
8813 #endif
8814 #ifdef VK_KHR_video_decode_queue
checkEqual_VkVideoDecodeCapabilitiesKHR(const VkVideoDecodeCapabilitiesKHR * a,const VkVideoDecodeCapabilitiesKHR * b,OnFailCompareFunc onFail)8815 void checkEqual_VkVideoDecodeCapabilitiesKHR(const VkVideoDecodeCapabilitiesKHR* a,
8816                                              const VkVideoDecodeCapabilitiesKHR* b,
8817                                              OnFailCompareFunc onFail) {
8818     if (!((a->sType) == (b->sType))) {
8819         onFail("a->sType (Error: Value not equal)");
8820     };
8821     if (a->pNext) {
8822         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8823     }
8824     if (!((a->flags) == (b->flags))) {
8825         onFail("a->flags (Error: Value not equal)");
8826     };
8827 }
8828 
checkEqual_VkVideoDecodeUsageInfoKHR(const VkVideoDecodeUsageInfoKHR * a,const VkVideoDecodeUsageInfoKHR * b,OnFailCompareFunc onFail)8829 void checkEqual_VkVideoDecodeUsageInfoKHR(const VkVideoDecodeUsageInfoKHR* a,
8830                                           const VkVideoDecodeUsageInfoKHR* b,
8831                                           OnFailCompareFunc onFail) {
8832     if (!((a->sType) == (b->sType))) {
8833         onFail("a->sType (Error: Value not equal)");
8834     };
8835     if (a->pNext) {
8836         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8837     }
8838     if (!((a->videoUsageHints) == (b->videoUsageHints))) {
8839         onFail("a->videoUsageHints (Error: Value not equal)");
8840     };
8841 }
8842 
checkEqual_VkVideoDecodeInfoKHR(const VkVideoDecodeInfoKHR * a,const VkVideoDecodeInfoKHR * b,OnFailCompareFunc onFail)8843 void checkEqual_VkVideoDecodeInfoKHR(const VkVideoDecodeInfoKHR* a, const VkVideoDecodeInfoKHR* b,
8844                                      OnFailCompareFunc onFail) {
8845     if (!((a->sType) == (b->sType))) {
8846         onFail("a->sType (Error: Value not equal)");
8847     };
8848     if (a->pNext) {
8849         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8850     }
8851     if (!((a->flags) == (b->flags))) {
8852         onFail("a->flags (Error: Value not equal)");
8853     };
8854     if (!((a->srcBuffer) == (b->srcBuffer))) {
8855         onFail("a->srcBuffer (Error: Value not equal)");
8856     };
8857     if (!((a->srcBufferOffset) == (b->srcBufferOffset))) {
8858         onFail("a->srcBufferOffset (Error: Value not equal)");
8859     };
8860     if (!((a->srcBufferRange) == (b->srcBufferRange))) {
8861         onFail("a->srcBufferRange (Error: Value not equal)");
8862     };
8863     checkEqual_VkVideoPictureResourceInfoKHR(&a->dstPictureResource, &b->dstPictureResource,
8864                                              onFail);
8865     if ((a->pSetupReferenceSlot) && (b->pSetupReferenceSlot)) {
8866         checkEqual_VkVideoReferenceSlotInfoKHR(a->pSetupReferenceSlot, b->pSetupReferenceSlot,
8867                                                onFail);
8868     }
8869     if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
8870         onFail("a->referenceSlotCount (Error: Value not equal)");
8871     };
8872     if ((a->pReferenceSlots) && (b->pReferenceSlots)) {
8873         if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
8874             onFail("a->pReferenceSlots (Error: Lengths not equal)");
8875         };
8876         if ((a->referenceSlotCount) == (b->referenceSlotCount)) {
8877             if (a) {
8878                 for (uint32_t i = 0; i < (uint32_t)a->referenceSlotCount; ++i) {
8879                     checkEqual_VkVideoReferenceSlotInfoKHR(a->pReferenceSlots + i,
8880                                                            b->pReferenceSlots + i, onFail);
8881                 }
8882             }
8883         }
8884     }
8885 }
8886 
8887 #endif
8888 #ifdef VK_KHR_video_decode_h264
checkEqual_VkVideoDecodeH264ProfileInfoKHR(const VkVideoDecodeH264ProfileInfoKHR * a,const VkVideoDecodeH264ProfileInfoKHR * b,OnFailCompareFunc onFail)8889 void checkEqual_VkVideoDecodeH264ProfileInfoKHR(const VkVideoDecodeH264ProfileInfoKHR* a,
8890                                                 const VkVideoDecodeH264ProfileInfoKHR* b,
8891                                                 OnFailCompareFunc onFail) {
8892     if (!((a->sType) == (b->sType))) {
8893         onFail("a->sType (Error: Value not equal)");
8894     };
8895     if (a->pNext) {
8896         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8897     }
8898     if (!((a->stdProfileIdc) == (b->stdProfileIdc))) {
8899         onFail("a->stdProfileIdc (Error: Value not equal)");
8900     };
8901     if (!((a->pictureLayout) == (b->pictureLayout))) {
8902         onFail("a->pictureLayout (Error: Value not equal)");
8903     };
8904 }
8905 
checkEqual_VkVideoDecodeH264CapabilitiesKHR(const VkVideoDecodeH264CapabilitiesKHR * a,const VkVideoDecodeH264CapabilitiesKHR * b,OnFailCompareFunc onFail)8906 void checkEqual_VkVideoDecodeH264CapabilitiesKHR(const VkVideoDecodeH264CapabilitiesKHR* a,
8907                                                  const VkVideoDecodeH264CapabilitiesKHR* b,
8908                                                  OnFailCompareFunc onFail) {
8909     if (!((a->sType) == (b->sType))) {
8910         onFail("a->sType (Error: Value not equal)");
8911     };
8912     if (a->pNext) {
8913         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8914     }
8915     if (!((a->maxLevelIdc) == (b->maxLevelIdc))) {
8916         onFail("a->maxLevelIdc (Error: Value not equal)");
8917     };
8918     checkEqual_VkOffset2D(&a->fieldOffsetGranularity, &b->fieldOffsetGranularity, onFail);
8919 }
8920 
checkEqual_VkVideoDecodeH264SessionParametersAddInfoKHR(const VkVideoDecodeH264SessionParametersAddInfoKHR * a,const VkVideoDecodeH264SessionParametersAddInfoKHR * b,OnFailCompareFunc onFail)8921 void checkEqual_VkVideoDecodeH264SessionParametersAddInfoKHR(
8922     const VkVideoDecodeH264SessionParametersAddInfoKHR* a,
8923     const VkVideoDecodeH264SessionParametersAddInfoKHR* b, OnFailCompareFunc onFail) {
8924     if (!((a->sType) == (b->sType))) {
8925         onFail("a->sType (Error: Value not equal)");
8926     };
8927     if (a->pNext) {
8928         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8929     }
8930     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
8931         onFail("a->stdSPSCount (Error: Value not equal)");
8932     };
8933     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
8934         onFail("a->pStdSPSs (Error: Lengths not equal)");
8935     };
8936     if (!((memcmp(a->pStdSPSs, b->pStdSPSs,
8937                   a->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet)) == 0))) {
8938         onFail("a->pStdSPSs (Error: Unequal dyn array)");
8939     };
8940     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
8941         onFail("a->stdPPSCount (Error: Value not equal)");
8942     };
8943     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
8944         onFail("a->pStdPPSs (Error: Lengths not equal)");
8945     };
8946     if (!((memcmp(a->pStdPPSs, b->pStdPPSs,
8947                   a->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet)) == 0))) {
8948         onFail("a->pStdPPSs (Error: Unequal dyn array)");
8949     };
8950 }
8951 
checkEqual_VkVideoDecodeH264SessionParametersCreateInfoKHR(const VkVideoDecodeH264SessionParametersCreateInfoKHR * a,const VkVideoDecodeH264SessionParametersCreateInfoKHR * b,OnFailCompareFunc onFail)8952 void checkEqual_VkVideoDecodeH264SessionParametersCreateInfoKHR(
8953     const VkVideoDecodeH264SessionParametersCreateInfoKHR* a,
8954     const VkVideoDecodeH264SessionParametersCreateInfoKHR* b, OnFailCompareFunc onFail) {
8955     if (!((a->sType) == (b->sType))) {
8956         onFail("a->sType (Error: Value not equal)");
8957     };
8958     if (a->pNext) {
8959         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8960     }
8961     if (!((a->maxStdSPSCount) == (b->maxStdSPSCount))) {
8962         onFail("a->maxStdSPSCount (Error: Value not equal)");
8963     };
8964     if (!((a->maxStdPPSCount) == (b->maxStdPPSCount))) {
8965         onFail("a->maxStdPPSCount (Error: Value not equal)");
8966     };
8967     if (!((!(a->pParametersAddInfo) && !(b->pParametersAddInfo)) ||
8968           ((a->pParametersAddInfo) && (b->pParametersAddInfo)))) {
8969         onFail("a->pParametersAddInfo (Error: Mismatch in optional field)");
8970     };
8971     if (a->pParametersAddInfo && b->pParametersAddInfo) {
8972         if ((a->pParametersAddInfo) && (b->pParametersAddInfo)) {
8973             checkEqual_VkVideoDecodeH264SessionParametersAddInfoKHR(a->pParametersAddInfo,
8974                                                                     b->pParametersAddInfo, onFail);
8975         }
8976     }
8977 }
8978 
checkEqual_VkVideoDecodeH264PictureInfoKHR(const VkVideoDecodeH264PictureInfoKHR * a,const VkVideoDecodeH264PictureInfoKHR * b,OnFailCompareFunc onFail)8979 void checkEqual_VkVideoDecodeH264PictureInfoKHR(const VkVideoDecodeH264PictureInfoKHR* a,
8980                                                 const VkVideoDecodeH264PictureInfoKHR* b,
8981                                                 OnFailCompareFunc onFail) {
8982     if (!((a->sType) == (b->sType))) {
8983         onFail("a->sType (Error: Value not equal)");
8984     };
8985     if (a->pNext) {
8986         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
8987     }
8988     if (!((memcmp(a->pStdPictureInfo, b->pStdPictureInfo,
8989                   sizeof(const StdVideoDecodeH264PictureInfo)) == 0))) {
8990         onFail("a->pStdPictureInfo (Error: Unequal dyn array)");
8991     };
8992     if (!((a->sliceCount) == (b->sliceCount))) {
8993         onFail("a->sliceCount (Error: Value not equal)");
8994     };
8995     if (!((a->sliceCount) == (b->sliceCount))) {
8996         onFail("a->pSliceOffsets (Error: Lengths not equal)");
8997     };
8998     if (!((memcmp(a->pSliceOffsets, b->pSliceOffsets, a->sliceCount * sizeof(const uint32_t)) ==
8999            0))) {
9000         onFail("a->pSliceOffsets (Error: Unequal dyn array)");
9001     };
9002 }
9003 
checkEqual_VkVideoDecodeH264DpbSlotInfoKHR(const VkVideoDecodeH264DpbSlotInfoKHR * a,const VkVideoDecodeH264DpbSlotInfoKHR * b,OnFailCompareFunc onFail)9004 void checkEqual_VkVideoDecodeH264DpbSlotInfoKHR(const VkVideoDecodeH264DpbSlotInfoKHR* a,
9005                                                 const VkVideoDecodeH264DpbSlotInfoKHR* b,
9006                                                 OnFailCompareFunc onFail) {
9007     if (!((a->sType) == (b->sType))) {
9008         onFail("a->sType (Error: Value not equal)");
9009     };
9010     if (a->pNext) {
9011         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9012     }
9013     if (!((memcmp(a->pStdReferenceInfo, b->pStdReferenceInfo,
9014                   sizeof(const StdVideoDecodeH264ReferenceInfo)) == 0))) {
9015         onFail("a->pStdReferenceInfo (Error: Unequal dyn array)");
9016     };
9017 }
9018 
9019 #endif
9020 #ifdef VK_KHR_dynamic_rendering
checkEqual_VkRenderingFragmentShadingRateAttachmentInfoKHR(const VkRenderingFragmentShadingRateAttachmentInfoKHR * a,const VkRenderingFragmentShadingRateAttachmentInfoKHR * b,OnFailCompareFunc onFail)9021 void checkEqual_VkRenderingFragmentShadingRateAttachmentInfoKHR(
9022     const VkRenderingFragmentShadingRateAttachmentInfoKHR* a,
9023     const VkRenderingFragmentShadingRateAttachmentInfoKHR* b, OnFailCompareFunc onFail) {
9024     if (!((a->sType) == (b->sType))) {
9025         onFail("a->sType (Error: Value not equal)");
9026     };
9027     if (a->pNext) {
9028         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9029     }
9030     if (!((a->imageView) == (b->imageView))) {
9031         onFail("a->imageView (Error: Value not equal)");
9032     };
9033     if (!((a->imageLayout) == (b->imageLayout))) {
9034         onFail("a->imageLayout (Error: Value not equal)");
9035     };
9036     checkEqual_VkExtent2D(&a->shadingRateAttachmentTexelSize, &b->shadingRateAttachmentTexelSize,
9037                           onFail);
9038 }
9039 
checkEqual_VkRenderingFragmentDensityMapAttachmentInfoEXT(const VkRenderingFragmentDensityMapAttachmentInfoEXT * a,const VkRenderingFragmentDensityMapAttachmentInfoEXT * b,OnFailCompareFunc onFail)9040 void checkEqual_VkRenderingFragmentDensityMapAttachmentInfoEXT(
9041     const VkRenderingFragmentDensityMapAttachmentInfoEXT* a,
9042     const VkRenderingFragmentDensityMapAttachmentInfoEXT* b, OnFailCompareFunc onFail) {
9043     if (!((a->sType) == (b->sType))) {
9044         onFail("a->sType (Error: Value not equal)");
9045     };
9046     if (a->pNext) {
9047         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9048     }
9049     if (!((a->imageView) == (b->imageView))) {
9050         onFail("a->imageView (Error: Value not equal)");
9051     };
9052     if (!((a->imageLayout) == (b->imageLayout))) {
9053         onFail("a->imageLayout (Error: Value not equal)");
9054     };
9055 }
9056 
checkEqual_VkAttachmentSampleCountInfoAMD(const VkAttachmentSampleCountInfoAMD * a,const VkAttachmentSampleCountInfoAMD * b,OnFailCompareFunc onFail)9057 void checkEqual_VkAttachmentSampleCountInfoAMD(const VkAttachmentSampleCountInfoAMD* a,
9058                                                const VkAttachmentSampleCountInfoAMD* b,
9059                                                OnFailCompareFunc onFail) {
9060     if (!((a->sType) == (b->sType))) {
9061         onFail("a->sType (Error: Value not equal)");
9062     };
9063     if (a->pNext) {
9064         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9065     }
9066     if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
9067         onFail("a->colorAttachmentCount (Error: Value not equal)");
9068     };
9069     if (!((!(a->pColorAttachmentSamples) && !(b->pColorAttachmentSamples)) ||
9070           ((a->pColorAttachmentSamples) && (b->pColorAttachmentSamples)))) {
9071         onFail("a->pColorAttachmentSamples (Error: Mismatch in optional field)");
9072     };
9073     if (a->pColorAttachmentSamples && b->pColorAttachmentSamples) {
9074         if (!((a->colorAttachmentCount) == (b->colorAttachmentCount))) {
9075             onFail("a->pColorAttachmentSamples (Error: Lengths not equal)");
9076         };
9077         if (!((memcmp(a->pColorAttachmentSamples, b->pColorAttachmentSamples,
9078                       a->colorAttachmentCount * sizeof(const VkSampleCountFlagBits)) == 0))) {
9079             onFail("a->pColorAttachmentSamples (Error: Unequal dyn array)");
9080         };
9081     }
9082     if (!((a->depthStencilAttachmentSamples) == (b->depthStencilAttachmentSamples))) {
9083         onFail("a->depthStencilAttachmentSamples (Error: Value not equal)");
9084     };
9085 }
9086 
checkEqual_VkMultiviewPerViewAttributesInfoNVX(const VkMultiviewPerViewAttributesInfoNVX * a,const VkMultiviewPerViewAttributesInfoNVX * b,OnFailCompareFunc onFail)9087 void checkEqual_VkMultiviewPerViewAttributesInfoNVX(const VkMultiviewPerViewAttributesInfoNVX* a,
9088                                                     const VkMultiviewPerViewAttributesInfoNVX* b,
9089                                                     OnFailCompareFunc onFail) {
9090     if (!((a->sType) == (b->sType))) {
9091         onFail("a->sType (Error: Value not equal)");
9092     };
9093     if (a->pNext) {
9094         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9095     }
9096     if (!((a->perViewAttributes) == (b->perViewAttributes))) {
9097         onFail("a->perViewAttributes (Error: Value not equal)");
9098     };
9099     if (!((a->perViewAttributesPositionXOnly) == (b->perViewAttributesPositionXOnly))) {
9100         onFail("a->perViewAttributesPositionXOnly (Error: Value not equal)");
9101     };
9102 }
9103 
9104 #endif
9105 #ifdef VK_KHR_multiview
9106 #endif
9107 #ifdef VK_KHR_get_physical_device_properties2
9108 #endif
9109 #ifdef VK_KHR_device_group
9110 #endif
9111 #ifdef VK_KHR_shader_draw_parameters
9112 #endif
9113 #ifdef VK_KHR_maintenance1
9114 #endif
9115 #ifdef VK_KHR_device_group_creation
9116 #endif
9117 #ifdef VK_KHR_external_memory_capabilities
9118 #endif
9119 #ifdef VK_KHR_external_memory
9120 #endif
9121 #ifdef VK_KHR_external_memory_win32
checkEqual_VkImportMemoryWin32HandleInfoKHR(const VkImportMemoryWin32HandleInfoKHR * a,const VkImportMemoryWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9122 void checkEqual_VkImportMemoryWin32HandleInfoKHR(const VkImportMemoryWin32HandleInfoKHR* a,
9123                                                  const VkImportMemoryWin32HandleInfoKHR* b,
9124                                                  OnFailCompareFunc onFail) {
9125     if (!((a->sType) == (b->sType))) {
9126         onFail("a->sType (Error: Value not equal)");
9127     };
9128     if (a->pNext) {
9129         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9130     }
9131     if (!((a->handleType) == (b->handleType))) {
9132         onFail("a->handleType (Error: Value not equal)");
9133     };
9134     if (!((a->handle) == (b->handle))) {
9135         onFail("a->handle (Error: Value not equal)");
9136     };
9137     if (!((a->name) == (b->name))) {
9138         onFail("a->name (Error: Value not equal)");
9139     };
9140 }
9141 
checkEqual_VkExportMemoryWin32HandleInfoKHR(const VkExportMemoryWin32HandleInfoKHR * a,const VkExportMemoryWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9142 void checkEqual_VkExportMemoryWin32HandleInfoKHR(const VkExportMemoryWin32HandleInfoKHR* a,
9143                                                  const VkExportMemoryWin32HandleInfoKHR* b,
9144                                                  OnFailCompareFunc onFail) {
9145     if (!((a->sType) == (b->sType))) {
9146         onFail("a->sType (Error: Value not equal)");
9147     };
9148     if (a->pNext) {
9149         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9150     }
9151     if (!((!(a->pAttributes) && !(b->pAttributes)) || ((a->pAttributes) && (b->pAttributes)))) {
9152         onFail("a->pAttributes (Error: Mismatch in optional field)");
9153     };
9154     if (a->pAttributes && b->pAttributes) {
9155         if (!((memcmp(a->pAttributes, b->pAttributes, sizeof(const SECURITY_ATTRIBUTES)) == 0))) {
9156             onFail("a->pAttributes (Error: Unequal dyn array)");
9157         };
9158     }
9159     if (!((a->dwAccess) == (b->dwAccess))) {
9160         onFail("a->dwAccess (Error: Value not equal)");
9161     };
9162     if (!((a->name) == (b->name))) {
9163         onFail("a->name (Error: Value not equal)");
9164     };
9165 }
9166 
checkEqual_VkMemoryWin32HandlePropertiesKHR(const VkMemoryWin32HandlePropertiesKHR * a,const VkMemoryWin32HandlePropertiesKHR * b,OnFailCompareFunc onFail)9167 void checkEqual_VkMemoryWin32HandlePropertiesKHR(const VkMemoryWin32HandlePropertiesKHR* a,
9168                                                  const VkMemoryWin32HandlePropertiesKHR* b,
9169                                                  OnFailCompareFunc onFail) {
9170     if (!((a->sType) == (b->sType))) {
9171         onFail("a->sType (Error: Value not equal)");
9172     };
9173     if (a->pNext) {
9174         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9175     }
9176     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
9177         onFail("a->memoryTypeBits (Error: Value not equal)");
9178     };
9179 }
9180 
checkEqual_VkMemoryGetWin32HandleInfoKHR(const VkMemoryGetWin32HandleInfoKHR * a,const VkMemoryGetWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9181 void checkEqual_VkMemoryGetWin32HandleInfoKHR(const VkMemoryGetWin32HandleInfoKHR* a,
9182                                               const VkMemoryGetWin32HandleInfoKHR* b,
9183                                               OnFailCompareFunc onFail) {
9184     if (!((a->sType) == (b->sType))) {
9185         onFail("a->sType (Error: Value not equal)");
9186     };
9187     if (a->pNext) {
9188         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9189     }
9190     if (!((a->memory) == (b->memory))) {
9191         onFail("a->memory (Error: Value not equal)");
9192     };
9193     if (!((a->handleType) == (b->handleType))) {
9194         onFail("a->handleType (Error: Value not equal)");
9195     };
9196 }
9197 
9198 #endif
9199 #ifdef VK_KHR_external_memory_fd
checkEqual_VkImportMemoryFdInfoKHR(const VkImportMemoryFdInfoKHR * a,const VkImportMemoryFdInfoKHR * b,OnFailCompareFunc onFail)9200 void checkEqual_VkImportMemoryFdInfoKHR(const VkImportMemoryFdInfoKHR* a,
9201                                         const VkImportMemoryFdInfoKHR* b,
9202                                         OnFailCompareFunc onFail) {
9203     if (!((a->sType) == (b->sType))) {
9204         onFail("a->sType (Error: Value not equal)");
9205     };
9206     if (a->pNext) {
9207         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9208     }
9209     if (!((a->handleType) == (b->handleType))) {
9210         onFail("a->handleType (Error: Value not equal)");
9211     };
9212     if (!((a->fd) == (b->fd))) {
9213         onFail("a->fd (Error: Value not equal)");
9214     };
9215 }
9216 
checkEqual_VkMemoryFdPropertiesKHR(const VkMemoryFdPropertiesKHR * a,const VkMemoryFdPropertiesKHR * b,OnFailCompareFunc onFail)9217 void checkEqual_VkMemoryFdPropertiesKHR(const VkMemoryFdPropertiesKHR* a,
9218                                         const VkMemoryFdPropertiesKHR* b,
9219                                         OnFailCompareFunc onFail) {
9220     if (!((a->sType) == (b->sType))) {
9221         onFail("a->sType (Error: Value not equal)");
9222     };
9223     if (a->pNext) {
9224         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9225     }
9226     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
9227         onFail("a->memoryTypeBits (Error: Value not equal)");
9228     };
9229 }
9230 
checkEqual_VkMemoryGetFdInfoKHR(const VkMemoryGetFdInfoKHR * a,const VkMemoryGetFdInfoKHR * b,OnFailCompareFunc onFail)9231 void checkEqual_VkMemoryGetFdInfoKHR(const VkMemoryGetFdInfoKHR* a, const VkMemoryGetFdInfoKHR* b,
9232                                      OnFailCompareFunc onFail) {
9233     if (!((a->sType) == (b->sType))) {
9234         onFail("a->sType (Error: Value not equal)");
9235     };
9236     if (a->pNext) {
9237         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9238     }
9239     if (!((a->memory) == (b->memory))) {
9240         onFail("a->memory (Error: Value not equal)");
9241     };
9242     if (!((a->handleType) == (b->handleType))) {
9243         onFail("a->handleType (Error: Value not equal)");
9244     };
9245 }
9246 
9247 #endif
9248 #ifdef VK_KHR_win32_keyed_mutex
checkEqual_VkWin32KeyedMutexAcquireReleaseInfoKHR(const VkWin32KeyedMutexAcquireReleaseInfoKHR * a,const VkWin32KeyedMutexAcquireReleaseInfoKHR * b,OnFailCompareFunc onFail)9249 void checkEqual_VkWin32KeyedMutexAcquireReleaseInfoKHR(
9250     const VkWin32KeyedMutexAcquireReleaseInfoKHR* a,
9251     const VkWin32KeyedMutexAcquireReleaseInfoKHR* b, OnFailCompareFunc onFail) {
9252     if (!((a->sType) == (b->sType))) {
9253         onFail("a->sType (Error: Value not equal)");
9254     };
9255     if (a->pNext) {
9256         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9257     }
9258     if (!((a->acquireCount) == (b->acquireCount))) {
9259         onFail("a->acquireCount (Error: Value not equal)");
9260     };
9261     if (!((a->acquireCount) == (b->acquireCount))) {
9262         onFail("a->pAcquireSyncs (Error: Lengths not equal)");
9263     };
9264     if (!((memcmp(a->pAcquireSyncs, b->pAcquireSyncs,
9265                   a->acquireCount * sizeof(const VkDeviceMemory)) == 0))) {
9266         onFail("a->pAcquireSyncs (Error: Unequal dyn array)");
9267     };
9268     if (!((a->acquireCount) == (b->acquireCount))) {
9269         onFail("a->pAcquireKeys (Error: Lengths not equal)");
9270     };
9271     if (!((memcmp(a->pAcquireKeys, b->pAcquireKeys, a->acquireCount * sizeof(const uint64_t)) ==
9272            0))) {
9273         onFail("a->pAcquireKeys (Error: Unequal dyn array)");
9274     };
9275     if (!((a->acquireCount) == (b->acquireCount))) {
9276         onFail("a->pAcquireTimeouts (Error: Lengths not equal)");
9277     };
9278     if (!((memcmp(a->pAcquireTimeouts, b->pAcquireTimeouts,
9279                   a->acquireCount * sizeof(const uint32_t)) == 0))) {
9280         onFail("a->pAcquireTimeouts (Error: Unequal dyn array)");
9281     };
9282     if (!((a->releaseCount) == (b->releaseCount))) {
9283         onFail("a->releaseCount (Error: Value not equal)");
9284     };
9285     if (!((a->releaseCount) == (b->releaseCount))) {
9286         onFail("a->pReleaseSyncs (Error: Lengths not equal)");
9287     };
9288     if (!((memcmp(a->pReleaseSyncs, b->pReleaseSyncs,
9289                   a->releaseCount * sizeof(const VkDeviceMemory)) == 0))) {
9290         onFail("a->pReleaseSyncs (Error: Unequal dyn array)");
9291     };
9292     if (!((a->releaseCount) == (b->releaseCount))) {
9293         onFail("a->pReleaseKeys (Error: Lengths not equal)");
9294     };
9295     if (!((memcmp(a->pReleaseKeys, b->pReleaseKeys, a->releaseCount * sizeof(const uint64_t)) ==
9296            0))) {
9297         onFail("a->pReleaseKeys (Error: Unequal dyn array)");
9298     };
9299 }
9300 
9301 #endif
9302 #ifdef VK_KHR_external_semaphore_capabilities
9303 #endif
9304 #ifdef VK_KHR_external_semaphore
9305 #endif
9306 #ifdef VK_KHR_external_semaphore_win32
checkEqual_VkImportSemaphoreWin32HandleInfoKHR(const VkImportSemaphoreWin32HandleInfoKHR * a,const VkImportSemaphoreWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9307 void checkEqual_VkImportSemaphoreWin32HandleInfoKHR(const VkImportSemaphoreWin32HandleInfoKHR* a,
9308                                                     const VkImportSemaphoreWin32HandleInfoKHR* b,
9309                                                     OnFailCompareFunc onFail) {
9310     if (!((a->sType) == (b->sType))) {
9311         onFail("a->sType (Error: Value not equal)");
9312     };
9313     if (a->pNext) {
9314         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9315     }
9316     if (!((a->semaphore) == (b->semaphore))) {
9317         onFail("a->semaphore (Error: Value not equal)");
9318     };
9319     if (!((a->flags) == (b->flags))) {
9320         onFail("a->flags (Error: Value not equal)");
9321     };
9322     if (!((a->handleType) == (b->handleType))) {
9323         onFail("a->handleType (Error: Value not equal)");
9324     };
9325     if (!((a->handle) == (b->handle))) {
9326         onFail("a->handle (Error: Value not equal)");
9327     };
9328     if (!((a->name) == (b->name))) {
9329         onFail("a->name (Error: Value not equal)");
9330     };
9331 }
9332 
checkEqual_VkExportSemaphoreWin32HandleInfoKHR(const VkExportSemaphoreWin32HandleInfoKHR * a,const VkExportSemaphoreWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9333 void checkEqual_VkExportSemaphoreWin32HandleInfoKHR(const VkExportSemaphoreWin32HandleInfoKHR* a,
9334                                                     const VkExportSemaphoreWin32HandleInfoKHR* b,
9335                                                     OnFailCompareFunc onFail) {
9336     if (!((a->sType) == (b->sType))) {
9337         onFail("a->sType (Error: Value not equal)");
9338     };
9339     if (a->pNext) {
9340         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9341     }
9342     if (!((!(a->pAttributes) && !(b->pAttributes)) || ((a->pAttributes) && (b->pAttributes)))) {
9343         onFail("a->pAttributes (Error: Mismatch in optional field)");
9344     };
9345     if (a->pAttributes && b->pAttributes) {
9346         if (!((memcmp(a->pAttributes, b->pAttributes, sizeof(const SECURITY_ATTRIBUTES)) == 0))) {
9347             onFail("a->pAttributes (Error: Unequal dyn array)");
9348         };
9349     }
9350     if (!((a->dwAccess) == (b->dwAccess))) {
9351         onFail("a->dwAccess (Error: Value not equal)");
9352     };
9353     if (!((a->name) == (b->name))) {
9354         onFail("a->name (Error: Value not equal)");
9355     };
9356 }
9357 
checkEqual_VkD3D12FenceSubmitInfoKHR(const VkD3D12FenceSubmitInfoKHR * a,const VkD3D12FenceSubmitInfoKHR * b,OnFailCompareFunc onFail)9358 void checkEqual_VkD3D12FenceSubmitInfoKHR(const VkD3D12FenceSubmitInfoKHR* a,
9359                                           const VkD3D12FenceSubmitInfoKHR* b,
9360                                           OnFailCompareFunc onFail) {
9361     if (!((a->sType) == (b->sType))) {
9362         onFail("a->sType (Error: Value not equal)");
9363     };
9364     if (a->pNext) {
9365         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9366     }
9367     if (!((a->waitSemaphoreValuesCount) == (b->waitSemaphoreValuesCount))) {
9368         onFail("a->waitSemaphoreValuesCount (Error: Value not equal)");
9369     };
9370     if (!((!(a->pWaitSemaphoreValues) && !(b->pWaitSemaphoreValues)) ||
9371           ((a->pWaitSemaphoreValues) && (b->pWaitSemaphoreValues)))) {
9372         onFail("a->pWaitSemaphoreValues (Error: Mismatch in optional field)");
9373     };
9374     if (a->pWaitSemaphoreValues && b->pWaitSemaphoreValues) {
9375         if (!((a->waitSemaphoreValuesCount) == (b->waitSemaphoreValuesCount))) {
9376             onFail("a->pWaitSemaphoreValues (Error: Lengths not equal)");
9377         };
9378         if (!((memcmp(a->pWaitSemaphoreValues, b->pWaitSemaphoreValues,
9379                       a->waitSemaphoreValuesCount * sizeof(const uint64_t)) == 0))) {
9380             onFail("a->pWaitSemaphoreValues (Error: Unequal dyn array)");
9381         };
9382     }
9383     if (!((a->signalSemaphoreValuesCount) == (b->signalSemaphoreValuesCount))) {
9384         onFail("a->signalSemaphoreValuesCount (Error: Value not equal)");
9385     };
9386     if (!((!(a->pSignalSemaphoreValues) && !(b->pSignalSemaphoreValues)) ||
9387           ((a->pSignalSemaphoreValues) && (b->pSignalSemaphoreValues)))) {
9388         onFail("a->pSignalSemaphoreValues (Error: Mismatch in optional field)");
9389     };
9390     if (a->pSignalSemaphoreValues && b->pSignalSemaphoreValues) {
9391         if (!((a->signalSemaphoreValuesCount) == (b->signalSemaphoreValuesCount))) {
9392             onFail("a->pSignalSemaphoreValues (Error: Lengths not equal)");
9393         };
9394         if (!((memcmp(a->pSignalSemaphoreValues, b->pSignalSemaphoreValues,
9395                       a->signalSemaphoreValuesCount * sizeof(const uint64_t)) == 0))) {
9396             onFail("a->pSignalSemaphoreValues (Error: Unequal dyn array)");
9397         };
9398     }
9399 }
9400 
checkEqual_VkSemaphoreGetWin32HandleInfoKHR(const VkSemaphoreGetWin32HandleInfoKHR * a,const VkSemaphoreGetWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9401 void checkEqual_VkSemaphoreGetWin32HandleInfoKHR(const VkSemaphoreGetWin32HandleInfoKHR* a,
9402                                                  const VkSemaphoreGetWin32HandleInfoKHR* b,
9403                                                  OnFailCompareFunc onFail) {
9404     if (!((a->sType) == (b->sType))) {
9405         onFail("a->sType (Error: Value not equal)");
9406     };
9407     if (a->pNext) {
9408         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9409     }
9410     if (!((a->semaphore) == (b->semaphore))) {
9411         onFail("a->semaphore (Error: Value not equal)");
9412     };
9413     if (!((a->handleType) == (b->handleType))) {
9414         onFail("a->handleType (Error: Value not equal)");
9415     };
9416 }
9417 
9418 #endif
9419 #ifdef VK_KHR_external_semaphore_fd
checkEqual_VkImportSemaphoreFdInfoKHR(const VkImportSemaphoreFdInfoKHR * a,const VkImportSemaphoreFdInfoKHR * b,OnFailCompareFunc onFail)9420 void checkEqual_VkImportSemaphoreFdInfoKHR(const VkImportSemaphoreFdInfoKHR* a,
9421                                            const VkImportSemaphoreFdInfoKHR* b,
9422                                            OnFailCompareFunc onFail) {
9423     if (!((a->sType) == (b->sType))) {
9424         onFail("a->sType (Error: Value not equal)");
9425     };
9426     if (a->pNext) {
9427         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9428     }
9429     if (!((a->semaphore) == (b->semaphore))) {
9430         onFail("a->semaphore (Error: Value not equal)");
9431     };
9432     if (!((a->flags) == (b->flags))) {
9433         onFail("a->flags (Error: Value not equal)");
9434     };
9435     if (!((a->handleType) == (b->handleType))) {
9436         onFail("a->handleType (Error: Value not equal)");
9437     };
9438     if (!((a->fd) == (b->fd))) {
9439         onFail("a->fd (Error: Value not equal)");
9440     };
9441 }
9442 
checkEqual_VkSemaphoreGetFdInfoKHR(const VkSemaphoreGetFdInfoKHR * a,const VkSemaphoreGetFdInfoKHR * b,OnFailCompareFunc onFail)9443 void checkEqual_VkSemaphoreGetFdInfoKHR(const VkSemaphoreGetFdInfoKHR* a,
9444                                         const VkSemaphoreGetFdInfoKHR* b,
9445                                         OnFailCompareFunc onFail) {
9446     if (!((a->sType) == (b->sType))) {
9447         onFail("a->sType (Error: Value not equal)");
9448     };
9449     if (a->pNext) {
9450         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9451     }
9452     if (!((a->semaphore) == (b->semaphore))) {
9453         onFail("a->semaphore (Error: Value not equal)");
9454     };
9455     if (!((a->handleType) == (b->handleType))) {
9456         onFail("a->handleType (Error: Value not equal)");
9457     };
9458 }
9459 
9460 #endif
9461 #ifdef VK_KHR_push_descriptor
checkEqual_VkPhysicalDevicePushDescriptorPropertiesKHR(const VkPhysicalDevicePushDescriptorPropertiesKHR * a,const VkPhysicalDevicePushDescriptorPropertiesKHR * b,OnFailCompareFunc onFail)9462 void checkEqual_VkPhysicalDevicePushDescriptorPropertiesKHR(
9463     const VkPhysicalDevicePushDescriptorPropertiesKHR* a,
9464     const VkPhysicalDevicePushDescriptorPropertiesKHR* b, OnFailCompareFunc onFail) {
9465     if (!((a->sType) == (b->sType))) {
9466         onFail("a->sType (Error: Value not equal)");
9467     };
9468     if (a->pNext) {
9469         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9470     }
9471     if (!((a->maxPushDescriptors) == (b->maxPushDescriptors))) {
9472         onFail("a->maxPushDescriptors (Error: Value not equal)");
9473     };
9474 }
9475 
9476 #endif
9477 #ifdef VK_KHR_shader_float16_int8
9478 #endif
9479 #ifdef VK_KHR_16bit_storage
9480 #endif
9481 #ifdef VK_KHR_incremental_present
checkEqual_VkRectLayerKHR(const VkRectLayerKHR * a,const VkRectLayerKHR * b,OnFailCompareFunc onFail)9482 void checkEqual_VkRectLayerKHR(const VkRectLayerKHR* a, const VkRectLayerKHR* b,
9483                                OnFailCompareFunc onFail) {
9484     checkEqual_VkOffset2D(&a->offset, &b->offset, onFail);
9485     checkEqual_VkExtent2D(&a->extent, &b->extent, onFail);
9486     if (!((a->layer) == (b->layer))) {
9487         onFail("a->layer (Error: Value not equal)");
9488     };
9489 }
9490 
checkEqual_VkPresentRegionKHR(const VkPresentRegionKHR * a,const VkPresentRegionKHR * b,OnFailCompareFunc onFail)9491 void checkEqual_VkPresentRegionKHR(const VkPresentRegionKHR* a, const VkPresentRegionKHR* b,
9492                                    OnFailCompareFunc onFail) {
9493     if (!((a->rectangleCount) == (b->rectangleCount))) {
9494         onFail("a->rectangleCount (Error: Value not equal)");
9495     };
9496     if (!((!(a->pRectangles) && !(b->pRectangles)) || ((a->pRectangles) && (b->pRectangles)))) {
9497         onFail("a->pRectangles (Error: Mismatch in optional field)");
9498     };
9499     if (a->pRectangles && b->pRectangles) {
9500         if ((a->pRectangles) && (b->pRectangles)) {
9501             if (!((a->rectangleCount) == (b->rectangleCount))) {
9502                 onFail("a->pRectangles (Error: Lengths not equal)");
9503             };
9504             if ((a->rectangleCount) == (b->rectangleCount)) {
9505                 if (a) {
9506                     for (uint32_t i = 0; i < (uint32_t)a->rectangleCount; ++i) {
9507                         checkEqual_VkRectLayerKHR(a->pRectangles + i, b->pRectangles + i, onFail);
9508                     }
9509                 }
9510             }
9511         }
9512     }
9513 }
9514 
checkEqual_VkPresentRegionsKHR(const VkPresentRegionsKHR * a,const VkPresentRegionsKHR * b,OnFailCompareFunc onFail)9515 void checkEqual_VkPresentRegionsKHR(const VkPresentRegionsKHR* a, const VkPresentRegionsKHR* b,
9516                                     OnFailCompareFunc onFail) {
9517     if (!((a->sType) == (b->sType))) {
9518         onFail("a->sType (Error: Value not equal)");
9519     };
9520     if (a->pNext) {
9521         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9522     }
9523     if (!((a->swapchainCount) == (b->swapchainCount))) {
9524         onFail("a->swapchainCount (Error: Value not equal)");
9525     };
9526     if (!((!(a->pRegions) && !(b->pRegions)) || ((a->pRegions) && (b->pRegions)))) {
9527         onFail("a->pRegions (Error: Mismatch in optional field)");
9528     };
9529     if (a->pRegions && b->pRegions) {
9530         if ((a->pRegions) && (b->pRegions)) {
9531             if (!((a->swapchainCount) == (b->swapchainCount))) {
9532                 onFail("a->pRegions (Error: Lengths not equal)");
9533             };
9534             if ((a->swapchainCount) == (b->swapchainCount)) {
9535                 if (a) {
9536                     for (uint32_t i = 0; i < (uint32_t)a->swapchainCount; ++i) {
9537                         checkEqual_VkPresentRegionKHR(a->pRegions + i, b->pRegions + i, onFail);
9538                     }
9539                 }
9540             }
9541         }
9542     }
9543 }
9544 
9545 #endif
9546 #ifdef VK_KHR_descriptor_update_template
9547 #endif
9548 #ifdef VK_KHR_imageless_framebuffer
9549 #endif
9550 #ifdef VK_KHR_create_renderpass2
9551 #endif
9552 #ifdef VK_KHR_shared_presentable_image
checkEqual_VkSharedPresentSurfaceCapabilitiesKHR(const VkSharedPresentSurfaceCapabilitiesKHR * a,const VkSharedPresentSurfaceCapabilitiesKHR * b,OnFailCompareFunc onFail)9553 void checkEqual_VkSharedPresentSurfaceCapabilitiesKHR(
9554     const VkSharedPresentSurfaceCapabilitiesKHR* a, const VkSharedPresentSurfaceCapabilitiesKHR* b,
9555     OnFailCompareFunc onFail) {
9556     if (!((a->sType) == (b->sType))) {
9557         onFail("a->sType (Error: Value not equal)");
9558     };
9559     if (a->pNext) {
9560         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9561     }
9562     if (!((a->sharedPresentSupportedUsageFlags) == (b->sharedPresentSupportedUsageFlags))) {
9563         onFail("a->sharedPresentSupportedUsageFlags (Error: Value not equal)");
9564     };
9565 }
9566 
9567 #endif
9568 #ifdef VK_KHR_external_fence_capabilities
9569 #endif
9570 #ifdef VK_KHR_external_fence
9571 #endif
9572 #ifdef VK_KHR_external_fence_win32
checkEqual_VkImportFenceWin32HandleInfoKHR(const VkImportFenceWin32HandleInfoKHR * a,const VkImportFenceWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9573 void checkEqual_VkImportFenceWin32HandleInfoKHR(const VkImportFenceWin32HandleInfoKHR* a,
9574                                                 const VkImportFenceWin32HandleInfoKHR* b,
9575                                                 OnFailCompareFunc onFail) {
9576     if (!((a->sType) == (b->sType))) {
9577         onFail("a->sType (Error: Value not equal)");
9578     };
9579     if (a->pNext) {
9580         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9581     }
9582     if (!((a->fence) == (b->fence))) {
9583         onFail("a->fence (Error: Value not equal)");
9584     };
9585     if (!((a->flags) == (b->flags))) {
9586         onFail("a->flags (Error: Value not equal)");
9587     };
9588     if (!((a->handleType) == (b->handleType))) {
9589         onFail("a->handleType (Error: Value not equal)");
9590     };
9591     if (!((a->handle) == (b->handle))) {
9592         onFail("a->handle (Error: Value not equal)");
9593     };
9594     if (!((a->name) == (b->name))) {
9595         onFail("a->name (Error: Value not equal)");
9596     };
9597 }
9598 
checkEqual_VkExportFenceWin32HandleInfoKHR(const VkExportFenceWin32HandleInfoKHR * a,const VkExportFenceWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9599 void checkEqual_VkExportFenceWin32HandleInfoKHR(const VkExportFenceWin32HandleInfoKHR* a,
9600                                                 const VkExportFenceWin32HandleInfoKHR* b,
9601                                                 OnFailCompareFunc onFail) {
9602     if (!((a->sType) == (b->sType))) {
9603         onFail("a->sType (Error: Value not equal)");
9604     };
9605     if (a->pNext) {
9606         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9607     }
9608     if (!((!(a->pAttributes) && !(b->pAttributes)) || ((a->pAttributes) && (b->pAttributes)))) {
9609         onFail("a->pAttributes (Error: Mismatch in optional field)");
9610     };
9611     if (a->pAttributes && b->pAttributes) {
9612         if (!((memcmp(a->pAttributes, b->pAttributes, sizeof(const SECURITY_ATTRIBUTES)) == 0))) {
9613             onFail("a->pAttributes (Error: Unequal dyn array)");
9614         };
9615     }
9616     if (!((a->dwAccess) == (b->dwAccess))) {
9617         onFail("a->dwAccess (Error: Value not equal)");
9618     };
9619     if (!((a->name) == (b->name))) {
9620         onFail("a->name (Error: Value not equal)");
9621     };
9622 }
9623 
checkEqual_VkFenceGetWin32HandleInfoKHR(const VkFenceGetWin32HandleInfoKHR * a,const VkFenceGetWin32HandleInfoKHR * b,OnFailCompareFunc onFail)9624 void checkEqual_VkFenceGetWin32HandleInfoKHR(const VkFenceGetWin32HandleInfoKHR* a,
9625                                              const VkFenceGetWin32HandleInfoKHR* b,
9626                                              OnFailCompareFunc onFail) {
9627     if (!((a->sType) == (b->sType))) {
9628         onFail("a->sType (Error: Value not equal)");
9629     };
9630     if (a->pNext) {
9631         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9632     }
9633     if (!((a->fence) == (b->fence))) {
9634         onFail("a->fence (Error: Value not equal)");
9635     };
9636     if (!((a->handleType) == (b->handleType))) {
9637         onFail("a->handleType (Error: Value not equal)");
9638     };
9639 }
9640 
9641 #endif
9642 #ifdef VK_KHR_external_fence_fd
checkEqual_VkImportFenceFdInfoKHR(const VkImportFenceFdInfoKHR * a,const VkImportFenceFdInfoKHR * b,OnFailCompareFunc onFail)9643 void checkEqual_VkImportFenceFdInfoKHR(const VkImportFenceFdInfoKHR* a,
9644                                        const VkImportFenceFdInfoKHR* b, OnFailCompareFunc onFail) {
9645     if (!((a->sType) == (b->sType))) {
9646         onFail("a->sType (Error: Value not equal)");
9647     };
9648     if (a->pNext) {
9649         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9650     }
9651     if (!((a->fence) == (b->fence))) {
9652         onFail("a->fence (Error: Value not equal)");
9653     };
9654     if (!((a->flags) == (b->flags))) {
9655         onFail("a->flags (Error: Value not equal)");
9656     };
9657     if (!((a->handleType) == (b->handleType))) {
9658         onFail("a->handleType (Error: Value not equal)");
9659     };
9660     if (!((a->fd) == (b->fd))) {
9661         onFail("a->fd (Error: Value not equal)");
9662     };
9663 }
9664 
checkEqual_VkFenceGetFdInfoKHR(const VkFenceGetFdInfoKHR * a,const VkFenceGetFdInfoKHR * b,OnFailCompareFunc onFail)9665 void checkEqual_VkFenceGetFdInfoKHR(const VkFenceGetFdInfoKHR* a, const VkFenceGetFdInfoKHR* b,
9666                                     OnFailCompareFunc onFail) {
9667     if (!((a->sType) == (b->sType))) {
9668         onFail("a->sType (Error: Value not equal)");
9669     };
9670     if (a->pNext) {
9671         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9672     }
9673     if (!((a->fence) == (b->fence))) {
9674         onFail("a->fence (Error: Value not equal)");
9675     };
9676     if (!((a->handleType) == (b->handleType))) {
9677         onFail("a->handleType (Error: Value not equal)");
9678     };
9679 }
9680 
9681 #endif
9682 #ifdef VK_KHR_performance_query
checkEqual_VkPhysicalDevicePerformanceQueryFeaturesKHR(const VkPhysicalDevicePerformanceQueryFeaturesKHR * a,const VkPhysicalDevicePerformanceQueryFeaturesKHR * b,OnFailCompareFunc onFail)9683 void checkEqual_VkPhysicalDevicePerformanceQueryFeaturesKHR(
9684     const VkPhysicalDevicePerformanceQueryFeaturesKHR* a,
9685     const VkPhysicalDevicePerformanceQueryFeaturesKHR* b, OnFailCompareFunc onFail) {
9686     if (!((a->sType) == (b->sType))) {
9687         onFail("a->sType (Error: Value not equal)");
9688     };
9689     if (a->pNext) {
9690         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9691     }
9692     if (!((a->performanceCounterQueryPools) == (b->performanceCounterQueryPools))) {
9693         onFail("a->performanceCounterQueryPools (Error: Value not equal)");
9694     };
9695     if (!((a->performanceCounterMultipleQueryPools) == (b->performanceCounterMultipleQueryPools))) {
9696         onFail("a->performanceCounterMultipleQueryPools (Error: Value not equal)");
9697     };
9698 }
9699 
checkEqual_VkPhysicalDevicePerformanceQueryPropertiesKHR(const VkPhysicalDevicePerformanceQueryPropertiesKHR * a,const VkPhysicalDevicePerformanceQueryPropertiesKHR * b,OnFailCompareFunc onFail)9700 void checkEqual_VkPhysicalDevicePerformanceQueryPropertiesKHR(
9701     const VkPhysicalDevicePerformanceQueryPropertiesKHR* a,
9702     const VkPhysicalDevicePerformanceQueryPropertiesKHR* b, OnFailCompareFunc onFail) {
9703     if (!((a->sType) == (b->sType))) {
9704         onFail("a->sType (Error: Value not equal)");
9705     };
9706     if (a->pNext) {
9707         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9708     }
9709     if (!((a->allowCommandBufferQueryCopies) == (b->allowCommandBufferQueryCopies))) {
9710         onFail("a->allowCommandBufferQueryCopies (Error: Value not equal)");
9711     };
9712 }
9713 
checkEqual_VkPerformanceCounterKHR(const VkPerformanceCounterKHR * a,const VkPerformanceCounterKHR * b,OnFailCompareFunc onFail)9714 void checkEqual_VkPerformanceCounterKHR(const VkPerformanceCounterKHR* a,
9715                                         const VkPerformanceCounterKHR* b,
9716                                         OnFailCompareFunc onFail) {
9717     if (!((a->sType) == (b->sType))) {
9718         onFail("a->sType (Error: Value not equal)");
9719     };
9720     if (a->pNext) {
9721         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9722     }
9723     if (!((a->unit) == (b->unit))) {
9724         onFail("a->unit (Error: Value not equal)");
9725     };
9726     if (!((a->scope) == (b->scope))) {
9727         onFail("a->scope (Error: Value not equal)");
9728     };
9729     if (!((a->storage) == (b->storage))) {
9730         onFail("a->storage (Error: Value not equal)");
9731     };
9732     if (!((memcmp(a->uuid, b->uuid, VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
9733         onFail("a->uuid (Error: Unequal static array)");
9734     };
9735 }
9736 
checkEqual_VkPerformanceCounterDescriptionKHR(const VkPerformanceCounterDescriptionKHR * a,const VkPerformanceCounterDescriptionKHR * b,OnFailCompareFunc onFail)9737 void checkEqual_VkPerformanceCounterDescriptionKHR(const VkPerformanceCounterDescriptionKHR* a,
9738                                                    const VkPerformanceCounterDescriptionKHR* b,
9739                                                    OnFailCompareFunc onFail) {
9740     if (!((a->sType) == (b->sType))) {
9741         onFail("a->sType (Error: Value not equal)");
9742     };
9743     if (a->pNext) {
9744         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9745     }
9746     if (!((a->flags) == (b->flags))) {
9747         onFail("a->flags (Error: Value not equal)");
9748     };
9749     if (!((memcmp(a->name, b->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
9750         onFail("a->name (Error: Unequal static array)");
9751     };
9752     if (!((memcmp(a->category, b->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
9753         onFail("a->category (Error: Unequal static array)");
9754     };
9755     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
9756         onFail("a->description (Error: Unequal static array)");
9757     };
9758 }
9759 
checkEqual_VkQueryPoolPerformanceCreateInfoKHR(const VkQueryPoolPerformanceCreateInfoKHR * a,const VkQueryPoolPerformanceCreateInfoKHR * b,OnFailCompareFunc onFail)9760 void checkEqual_VkQueryPoolPerformanceCreateInfoKHR(const VkQueryPoolPerformanceCreateInfoKHR* a,
9761                                                     const VkQueryPoolPerformanceCreateInfoKHR* b,
9762                                                     OnFailCompareFunc onFail) {
9763     if (!((a->sType) == (b->sType))) {
9764         onFail("a->sType (Error: Value not equal)");
9765     };
9766     if (a->pNext) {
9767         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9768     }
9769     if (!((a->queueFamilyIndex) == (b->queueFamilyIndex))) {
9770         onFail("a->queueFamilyIndex (Error: Value not equal)");
9771     };
9772     if (!((a->counterIndexCount) == (b->counterIndexCount))) {
9773         onFail("a->counterIndexCount (Error: Value not equal)");
9774     };
9775     if (!((a->counterIndexCount) == (b->counterIndexCount))) {
9776         onFail("a->pCounterIndices (Error: Lengths not equal)");
9777     };
9778     if (!((memcmp(a->pCounterIndices, b->pCounterIndices,
9779                   a->counterIndexCount * sizeof(const uint32_t)) == 0))) {
9780         onFail("a->pCounterIndices (Error: Unequal dyn array)");
9781     };
9782 }
9783 
checkEqual_VkPerformanceCounterResultKHR(const VkPerformanceCounterResultKHR * a,const VkPerformanceCounterResultKHR * b,OnFailCompareFunc onFail)9784 void checkEqual_VkPerformanceCounterResultKHR(const VkPerformanceCounterResultKHR* a,
9785                                               const VkPerformanceCounterResultKHR* b,
9786                                               OnFailCompareFunc onFail) {
9787     if (!((a->int32) == (b->int32))) {
9788         onFail("a->int32 (Error: Value not equal)");
9789     };
9790     if (!((a->int64) == (b->int64))) {
9791         onFail("a->int64 (Error: Value not equal)");
9792     };
9793     if (!((a->uint32) == (b->uint32))) {
9794         onFail("a->uint32 (Error: Value not equal)");
9795     };
9796     if (!((a->uint64) == (b->uint64))) {
9797         onFail("a->uint64 (Error: Value not equal)");
9798     };
9799     if (!((a->float32) == (b->float32))) {
9800         onFail("a->float32 (Error: Value not equal)");
9801     };
9802     if (!((a->float64) == (b->float64))) {
9803         onFail("a->float64 (Error: Value not equal)");
9804     };
9805 }
9806 
checkEqual_VkAcquireProfilingLockInfoKHR(const VkAcquireProfilingLockInfoKHR * a,const VkAcquireProfilingLockInfoKHR * b,OnFailCompareFunc onFail)9807 void checkEqual_VkAcquireProfilingLockInfoKHR(const VkAcquireProfilingLockInfoKHR* a,
9808                                               const VkAcquireProfilingLockInfoKHR* b,
9809                                               OnFailCompareFunc onFail) {
9810     if (!((a->sType) == (b->sType))) {
9811         onFail("a->sType (Error: Value not equal)");
9812     };
9813     if (a->pNext) {
9814         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9815     }
9816     if (!((a->flags) == (b->flags))) {
9817         onFail("a->flags (Error: Value not equal)");
9818     };
9819     if (!((a->timeout) == (b->timeout))) {
9820         onFail("a->timeout (Error: Value not equal)");
9821     };
9822 }
9823 
checkEqual_VkPerformanceQuerySubmitInfoKHR(const VkPerformanceQuerySubmitInfoKHR * a,const VkPerformanceQuerySubmitInfoKHR * b,OnFailCompareFunc onFail)9824 void checkEqual_VkPerformanceQuerySubmitInfoKHR(const VkPerformanceQuerySubmitInfoKHR* a,
9825                                                 const VkPerformanceQuerySubmitInfoKHR* b,
9826                                                 OnFailCompareFunc onFail) {
9827     if (!((a->sType) == (b->sType))) {
9828         onFail("a->sType (Error: Value not equal)");
9829     };
9830     if (a->pNext) {
9831         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9832     }
9833     if (!((a->counterPassIndex) == (b->counterPassIndex))) {
9834         onFail("a->counterPassIndex (Error: Value not equal)");
9835     };
9836 }
9837 
9838 #endif
9839 #ifdef VK_KHR_maintenance2
9840 #endif
9841 #ifdef VK_KHR_get_surface_capabilities2
checkEqual_VkPhysicalDeviceSurfaceInfo2KHR(const VkPhysicalDeviceSurfaceInfo2KHR * a,const VkPhysicalDeviceSurfaceInfo2KHR * b,OnFailCompareFunc onFail)9842 void checkEqual_VkPhysicalDeviceSurfaceInfo2KHR(const VkPhysicalDeviceSurfaceInfo2KHR* a,
9843                                                 const VkPhysicalDeviceSurfaceInfo2KHR* b,
9844                                                 OnFailCompareFunc onFail) {
9845     if (!((a->sType) == (b->sType))) {
9846         onFail("a->sType (Error: Value not equal)");
9847     };
9848     if (a->pNext) {
9849         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9850     }
9851     if (!((a->surface) == (b->surface))) {
9852         onFail("a->surface (Error: Value not equal)");
9853     };
9854 }
9855 
checkEqual_VkSurfaceCapabilities2KHR(const VkSurfaceCapabilities2KHR * a,const VkSurfaceCapabilities2KHR * b,OnFailCompareFunc onFail)9856 void checkEqual_VkSurfaceCapabilities2KHR(const VkSurfaceCapabilities2KHR* a,
9857                                           const VkSurfaceCapabilities2KHR* b,
9858                                           OnFailCompareFunc onFail) {
9859     if (!((a->sType) == (b->sType))) {
9860         onFail("a->sType (Error: Value not equal)");
9861     };
9862     if (a->pNext) {
9863         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9864     }
9865     checkEqual_VkSurfaceCapabilitiesKHR(&a->surfaceCapabilities, &b->surfaceCapabilities, onFail);
9866 }
9867 
checkEqual_VkSurfaceFormat2KHR(const VkSurfaceFormat2KHR * a,const VkSurfaceFormat2KHR * b,OnFailCompareFunc onFail)9868 void checkEqual_VkSurfaceFormat2KHR(const VkSurfaceFormat2KHR* a, const VkSurfaceFormat2KHR* b,
9869                                     OnFailCompareFunc onFail) {
9870     if (!((a->sType) == (b->sType))) {
9871         onFail("a->sType (Error: Value not equal)");
9872     };
9873     if (a->pNext) {
9874         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9875     }
9876     checkEqual_VkSurfaceFormatKHR(&a->surfaceFormat, &b->surfaceFormat, onFail);
9877 }
9878 
9879 #endif
9880 #ifdef VK_KHR_variable_pointers
9881 #endif
9882 #ifdef VK_KHR_get_display_properties2
checkEqual_VkDisplayProperties2KHR(const VkDisplayProperties2KHR * a,const VkDisplayProperties2KHR * b,OnFailCompareFunc onFail)9883 void checkEqual_VkDisplayProperties2KHR(const VkDisplayProperties2KHR* a,
9884                                         const VkDisplayProperties2KHR* b,
9885                                         OnFailCompareFunc onFail) {
9886     if (!((a->sType) == (b->sType))) {
9887         onFail("a->sType (Error: Value not equal)");
9888     };
9889     if (a->pNext) {
9890         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9891     }
9892     checkEqual_VkDisplayPropertiesKHR(&a->displayProperties, &b->displayProperties, onFail);
9893 }
9894 
checkEqual_VkDisplayPlaneProperties2KHR(const VkDisplayPlaneProperties2KHR * a,const VkDisplayPlaneProperties2KHR * b,OnFailCompareFunc onFail)9895 void checkEqual_VkDisplayPlaneProperties2KHR(const VkDisplayPlaneProperties2KHR* a,
9896                                              const VkDisplayPlaneProperties2KHR* b,
9897                                              OnFailCompareFunc onFail) {
9898     if (!((a->sType) == (b->sType))) {
9899         onFail("a->sType (Error: Value not equal)");
9900     };
9901     if (a->pNext) {
9902         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9903     }
9904     checkEqual_VkDisplayPlanePropertiesKHR(&a->displayPlaneProperties, &b->displayPlaneProperties,
9905                                            onFail);
9906 }
9907 
checkEqual_VkDisplayModeProperties2KHR(const VkDisplayModeProperties2KHR * a,const VkDisplayModeProperties2KHR * b,OnFailCompareFunc onFail)9908 void checkEqual_VkDisplayModeProperties2KHR(const VkDisplayModeProperties2KHR* a,
9909                                             const VkDisplayModeProperties2KHR* b,
9910                                             OnFailCompareFunc onFail) {
9911     if (!((a->sType) == (b->sType))) {
9912         onFail("a->sType (Error: Value not equal)");
9913     };
9914     if (a->pNext) {
9915         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9916     }
9917     checkEqual_VkDisplayModePropertiesKHR(&a->displayModeProperties, &b->displayModeProperties,
9918                                           onFail);
9919 }
9920 
checkEqual_VkDisplayPlaneInfo2KHR(const VkDisplayPlaneInfo2KHR * a,const VkDisplayPlaneInfo2KHR * b,OnFailCompareFunc onFail)9921 void checkEqual_VkDisplayPlaneInfo2KHR(const VkDisplayPlaneInfo2KHR* a,
9922                                        const VkDisplayPlaneInfo2KHR* b, OnFailCompareFunc onFail) {
9923     if (!((a->sType) == (b->sType))) {
9924         onFail("a->sType (Error: Value not equal)");
9925     };
9926     if (a->pNext) {
9927         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9928     }
9929     if (!((a->mode) == (b->mode))) {
9930         onFail("a->mode (Error: Value not equal)");
9931     };
9932     if (!((a->planeIndex) == (b->planeIndex))) {
9933         onFail("a->planeIndex (Error: Value not equal)");
9934     };
9935 }
9936 
checkEqual_VkDisplayPlaneCapabilities2KHR(const VkDisplayPlaneCapabilities2KHR * a,const VkDisplayPlaneCapabilities2KHR * b,OnFailCompareFunc onFail)9937 void checkEqual_VkDisplayPlaneCapabilities2KHR(const VkDisplayPlaneCapabilities2KHR* a,
9938                                                const VkDisplayPlaneCapabilities2KHR* b,
9939                                                OnFailCompareFunc onFail) {
9940     if (!((a->sType) == (b->sType))) {
9941         onFail("a->sType (Error: Value not equal)");
9942     };
9943     if (a->pNext) {
9944         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9945     }
9946     checkEqual_VkDisplayPlaneCapabilitiesKHR(&a->capabilities, &b->capabilities, onFail);
9947 }
9948 
9949 #endif
9950 #ifdef VK_KHR_dedicated_allocation
9951 #endif
9952 #ifdef VK_KHR_storage_buffer_storage_class
9953 #endif
9954 #ifdef VK_KHR_relaxed_block_layout
9955 #endif
9956 #ifdef VK_KHR_get_memory_requirements2
9957 #endif
9958 #ifdef VK_KHR_image_format_list
9959 #endif
9960 #ifdef VK_KHR_sampler_ycbcr_conversion
9961 #endif
9962 #ifdef VK_KHR_bind_memory2
9963 #endif
9964 #ifdef VK_KHR_portability_subset
checkEqual_VkPhysicalDevicePortabilitySubsetFeaturesKHR(const VkPhysicalDevicePortabilitySubsetFeaturesKHR * a,const VkPhysicalDevicePortabilitySubsetFeaturesKHR * b,OnFailCompareFunc onFail)9965 void checkEqual_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
9966     const VkPhysicalDevicePortabilitySubsetFeaturesKHR* a,
9967     const VkPhysicalDevicePortabilitySubsetFeaturesKHR* b, OnFailCompareFunc onFail) {
9968     if (!((a->sType) == (b->sType))) {
9969         onFail("a->sType (Error: Value not equal)");
9970     };
9971     if (a->pNext) {
9972         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
9973     }
9974     if (!((a->constantAlphaColorBlendFactors) == (b->constantAlphaColorBlendFactors))) {
9975         onFail("a->constantAlphaColorBlendFactors (Error: Value not equal)");
9976     };
9977     if (!((a->events) == (b->events))) {
9978         onFail("a->events (Error: Value not equal)");
9979     };
9980     if (!((a->imageViewFormatReinterpretation) == (b->imageViewFormatReinterpretation))) {
9981         onFail("a->imageViewFormatReinterpretation (Error: Value not equal)");
9982     };
9983     if (!((a->imageViewFormatSwizzle) == (b->imageViewFormatSwizzle))) {
9984         onFail("a->imageViewFormatSwizzle (Error: Value not equal)");
9985     };
9986     if (!((a->imageView2DOn3DImage) == (b->imageView2DOn3DImage))) {
9987         onFail("a->imageView2DOn3DImage (Error: Value not equal)");
9988     };
9989     if (!((a->multisampleArrayImage) == (b->multisampleArrayImage))) {
9990         onFail("a->multisampleArrayImage (Error: Value not equal)");
9991     };
9992     if (!((a->mutableComparisonSamplers) == (b->mutableComparisonSamplers))) {
9993         onFail("a->mutableComparisonSamplers (Error: Value not equal)");
9994     };
9995     if (!((a->pointPolygons) == (b->pointPolygons))) {
9996         onFail("a->pointPolygons (Error: Value not equal)");
9997     };
9998     if (!((a->samplerMipLodBias) == (b->samplerMipLodBias))) {
9999         onFail("a->samplerMipLodBias (Error: Value not equal)");
10000     };
10001     if (!((a->separateStencilMaskRef) == (b->separateStencilMaskRef))) {
10002         onFail("a->separateStencilMaskRef (Error: Value not equal)");
10003     };
10004     if (!((a->shaderSampleRateInterpolationFunctions) ==
10005           (b->shaderSampleRateInterpolationFunctions))) {
10006         onFail("a->shaderSampleRateInterpolationFunctions (Error: Value not equal)");
10007     };
10008     if (!((a->tessellationIsolines) == (b->tessellationIsolines))) {
10009         onFail("a->tessellationIsolines (Error: Value not equal)");
10010     };
10011     if (!((a->tessellationPointMode) == (b->tessellationPointMode))) {
10012         onFail("a->tessellationPointMode (Error: Value not equal)");
10013     };
10014     if (!((a->triangleFans) == (b->triangleFans))) {
10015         onFail("a->triangleFans (Error: Value not equal)");
10016     };
10017     if (!((a->vertexAttributeAccessBeyondStride) == (b->vertexAttributeAccessBeyondStride))) {
10018         onFail("a->vertexAttributeAccessBeyondStride (Error: Value not equal)");
10019     };
10020 }
10021 
checkEqual_VkPhysicalDevicePortabilitySubsetPropertiesKHR(const VkPhysicalDevicePortabilitySubsetPropertiesKHR * a,const VkPhysicalDevicePortabilitySubsetPropertiesKHR * b,OnFailCompareFunc onFail)10022 void checkEqual_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
10023     const VkPhysicalDevicePortabilitySubsetPropertiesKHR* a,
10024     const VkPhysicalDevicePortabilitySubsetPropertiesKHR* b, OnFailCompareFunc onFail) {
10025     if (!((a->sType) == (b->sType))) {
10026         onFail("a->sType (Error: Value not equal)");
10027     };
10028     if (a->pNext) {
10029         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10030     }
10031     if (!((a->minVertexInputBindingStrideAlignment) == (b->minVertexInputBindingStrideAlignment))) {
10032         onFail("a->minVertexInputBindingStrideAlignment (Error: Value not equal)");
10033     };
10034 }
10035 
10036 #endif
10037 #ifdef VK_KHR_maintenance3
10038 #endif
10039 #ifdef VK_KHR_draw_indirect_count
10040 #endif
10041 #ifdef VK_KHR_shader_subgroup_extended_types
10042 #endif
10043 #ifdef VK_KHR_8bit_storage
10044 #endif
10045 #ifdef VK_KHR_shader_atomic_int64
10046 #endif
10047 #ifdef VK_KHR_shader_clock
checkEqual_VkPhysicalDeviceShaderClockFeaturesKHR(const VkPhysicalDeviceShaderClockFeaturesKHR * a,const VkPhysicalDeviceShaderClockFeaturesKHR * b,OnFailCompareFunc onFail)10048 void checkEqual_VkPhysicalDeviceShaderClockFeaturesKHR(
10049     const VkPhysicalDeviceShaderClockFeaturesKHR* a,
10050     const VkPhysicalDeviceShaderClockFeaturesKHR* b, OnFailCompareFunc onFail) {
10051     if (!((a->sType) == (b->sType))) {
10052         onFail("a->sType (Error: Value not equal)");
10053     };
10054     if (a->pNext) {
10055         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10056     }
10057     if (!((a->shaderSubgroupClock) == (b->shaderSubgroupClock))) {
10058         onFail("a->shaderSubgroupClock (Error: Value not equal)");
10059     };
10060     if (!((a->shaderDeviceClock) == (b->shaderDeviceClock))) {
10061         onFail("a->shaderDeviceClock (Error: Value not equal)");
10062     };
10063 }
10064 
10065 #endif
10066 #ifdef VK_KHR_video_decode_h265
checkEqual_VkVideoDecodeH265ProfileInfoKHR(const VkVideoDecodeH265ProfileInfoKHR * a,const VkVideoDecodeH265ProfileInfoKHR * b,OnFailCompareFunc onFail)10067 void checkEqual_VkVideoDecodeH265ProfileInfoKHR(const VkVideoDecodeH265ProfileInfoKHR* a,
10068                                                 const VkVideoDecodeH265ProfileInfoKHR* b,
10069                                                 OnFailCompareFunc onFail) {
10070     if (!((a->sType) == (b->sType))) {
10071         onFail("a->sType (Error: Value not equal)");
10072     };
10073     if (a->pNext) {
10074         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10075     }
10076     if (!((a->stdProfileIdc) == (b->stdProfileIdc))) {
10077         onFail("a->stdProfileIdc (Error: Value not equal)");
10078     };
10079 }
10080 
checkEqual_VkVideoDecodeH265CapabilitiesKHR(const VkVideoDecodeH265CapabilitiesKHR * a,const VkVideoDecodeH265CapabilitiesKHR * b,OnFailCompareFunc onFail)10081 void checkEqual_VkVideoDecodeH265CapabilitiesKHR(const VkVideoDecodeH265CapabilitiesKHR* a,
10082                                                  const VkVideoDecodeH265CapabilitiesKHR* b,
10083                                                  OnFailCompareFunc onFail) {
10084     if (!((a->sType) == (b->sType))) {
10085         onFail("a->sType (Error: Value not equal)");
10086     };
10087     if (a->pNext) {
10088         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10089     }
10090     if (!((a->maxLevelIdc) == (b->maxLevelIdc))) {
10091         onFail("a->maxLevelIdc (Error: Value not equal)");
10092     };
10093 }
10094 
checkEqual_VkVideoDecodeH265SessionParametersAddInfoKHR(const VkVideoDecodeH265SessionParametersAddInfoKHR * a,const VkVideoDecodeH265SessionParametersAddInfoKHR * b,OnFailCompareFunc onFail)10095 void checkEqual_VkVideoDecodeH265SessionParametersAddInfoKHR(
10096     const VkVideoDecodeH265SessionParametersAddInfoKHR* a,
10097     const VkVideoDecodeH265SessionParametersAddInfoKHR* b, OnFailCompareFunc onFail) {
10098     if (!((a->sType) == (b->sType))) {
10099         onFail("a->sType (Error: Value not equal)");
10100     };
10101     if (a->pNext) {
10102         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10103     }
10104     if (!((a->stdVPSCount) == (b->stdVPSCount))) {
10105         onFail("a->stdVPSCount (Error: Value not equal)");
10106     };
10107     if (!((a->stdVPSCount) == (b->stdVPSCount))) {
10108         onFail("a->pStdVPSs (Error: Lengths not equal)");
10109     };
10110     if (!((memcmp(a->pStdVPSs, b->pStdVPSs,
10111                   a->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet)) == 0))) {
10112         onFail("a->pStdVPSs (Error: Unequal dyn array)");
10113     };
10114     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
10115         onFail("a->stdSPSCount (Error: Value not equal)");
10116     };
10117     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
10118         onFail("a->pStdSPSs (Error: Lengths not equal)");
10119     };
10120     if (!((memcmp(a->pStdSPSs, b->pStdSPSs,
10121                   a->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet)) == 0))) {
10122         onFail("a->pStdSPSs (Error: Unequal dyn array)");
10123     };
10124     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
10125         onFail("a->stdPPSCount (Error: Value not equal)");
10126     };
10127     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
10128         onFail("a->pStdPPSs (Error: Lengths not equal)");
10129     };
10130     if (!((memcmp(a->pStdPPSs, b->pStdPPSs,
10131                   a->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet)) == 0))) {
10132         onFail("a->pStdPPSs (Error: Unequal dyn array)");
10133     };
10134 }
10135 
checkEqual_VkVideoDecodeH265SessionParametersCreateInfoKHR(const VkVideoDecodeH265SessionParametersCreateInfoKHR * a,const VkVideoDecodeH265SessionParametersCreateInfoKHR * b,OnFailCompareFunc onFail)10136 void checkEqual_VkVideoDecodeH265SessionParametersCreateInfoKHR(
10137     const VkVideoDecodeH265SessionParametersCreateInfoKHR* a,
10138     const VkVideoDecodeH265SessionParametersCreateInfoKHR* b, OnFailCompareFunc onFail) {
10139     if (!((a->sType) == (b->sType))) {
10140         onFail("a->sType (Error: Value not equal)");
10141     };
10142     if (a->pNext) {
10143         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10144     }
10145     if (!((a->maxStdVPSCount) == (b->maxStdVPSCount))) {
10146         onFail("a->maxStdVPSCount (Error: Value not equal)");
10147     };
10148     if (!((a->maxStdSPSCount) == (b->maxStdSPSCount))) {
10149         onFail("a->maxStdSPSCount (Error: Value not equal)");
10150     };
10151     if (!((a->maxStdPPSCount) == (b->maxStdPPSCount))) {
10152         onFail("a->maxStdPPSCount (Error: Value not equal)");
10153     };
10154     if (!((!(a->pParametersAddInfo) && !(b->pParametersAddInfo)) ||
10155           ((a->pParametersAddInfo) && (b->pParametersAddInfo)))) {
10156         onFail("a->pParametersAddInfo (Error: Mismatch in optional field)");
10157     };
10158     if (a->pParametersAddInfo && b->pParametersAddInfo) {
10159         if ((a->pParametersAddInfo) && (b->pParametersAddInfo)) {
10160             checkEqual_VkVideoDecodeH265SessionParametersAddInfoKHR(a->pParametersAddInfo,
10161                                                                     b->pParametersAddInfo, onFail);
10162         }
10163     }
10164 }
10165 
checkEqual_VkVideoDecodeH265PictureInfoKHR(const VkVideoDecodeH265PictureInfoKHR * a,const VkVideoDecodeH265PictureInfoKHR * b,OnFailCompareFunc onFail)10166 void checkEqual_VkVideoDecodeH265PictureInfoKHR(const VkVideoDecodeH265PictureInfoKHR* a,
10167                                                 const VkVideoDecodeH265PictureInfoKHR* b,
10168                                                 OnFailCompareFunc onFail) {
10169     if (!((a->sType) == (b->sType))) {
10170         onFail("a->sType (Error: Value not equal)");
10171     };
10172     if (a->pNext) {
10173         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10174     }
10175     if (!((memcmp(a->pStdPictureInfo, b->pStdPictureInfo,
10176                   sizeof(const StdVideoDecodeH265PictureInfo)) == 0))) {
10177         onFail("a->pStdPictureInfo (Error: Unequal dyn array)");
10178     };
10179     if (!((a->sliceSegmentCount) == (b->sliceSegmentCount))) {
10180         onFail("a->sliceSegmentCount (Error: Value not equal)");
10181     };
10182     if (!((a->sliceSegmentCount) == (b->sliceSegmentCount))) {
10183         onFail("a->pSliceSegmentOffsets (Error: Lengths not equal)");
10184     };
10185     if (!((memcmp(a->pSliceSegmentOffsets, b->pSliceSegmentOffsets,
10186                   a->sliceSegmentCount * sizeof(const uint32_t)) == 0))) {
10187         onFail("a->pSliceSegmentOffsets (Error: Unequal dyn array)");
10188     };
10189 }
10190 
checkEqual_VkVideoDecodeH265DpbSlotInfoKHR(const VkVideoDecodeH265DpbSlotInfoKHR * a,const VkVideoDecodeH265DpbSlotInfoKHR * b,OnFailCompareFunc onFail)10191 void checkEqual_VkVideoDecodeH265DpbSlotInfoKHR(const VkVideoDecodeH265DpbSlotInfoKHR* a,
10192                                                 const VkVideoDecodeH265DpbSlotInfoKHR* b,
10193                                                 OnFailCompareFunc onFail) {
10194     if (!((a->sType) == (b->sType))) {
10195         onFail("a->sType (Error: Value not equal)");
10196     };
10197     if (a->pNext) {
10198         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10199     }
10200     if (!((memcmp(a->pStdReferenceInfo, b->pStdReferenceInfo,
10201                   sizeof(const StdVideoDecodeH265ReferenceInfo)) == 0))) {
10202         onFail("a->pStdReferenceInfo (Error: Unequal dyn array)");
10203     };
10204 }
10205 
10206 #endif
10207 #ifdef VK_KHR_global_priority
checkEqual_VkDeviceQueueGlobalPriorityCreateInfoKHR(const VkDeviceQueueGlobalPriorityCreateInfoKHR * a,const VkDeviceQueueGlobalPriorityCreateInfoKHR * b,OnFailCompareFunc onFail)10208 void checkEqual_VkDeviceQueueGlobalPriorityCreateInfoKHR(
10209     const VkDeviceQueueGlobalPriorityCreateInfoKHR* a,
10210     const VkDeviceQueueGlobalPriorityCreateInfoKHR* b, OnFailCompareFunc onFail) {
10211     if (!((a->sType) == (b->sType))) {
10212         onFail("a->sType (Error: Value not equal)");
10213     };
10214     if (a->pNext) {
10215         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10216     }
10217     if (!((a->globalPriority) == (b->globalPriority))) {
10218         onFail("a->globalPriority (Error: Value not equal)");
10219     };
10220 }
10221 
checkEqual_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR * a,const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR * b,OnFailCompareFunc onFail)10222 void checkEqual_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
10223     const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* a,
10224     const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* b, OnFailCompareFunc onFail) {
10225     if (!((a->sType) == (b->sType))) {
10226         onFail("a->sType (Error: Value not equal)");
10227     };
10228     if (a->pNext) {
10229         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10230     }
10231     if (!((a->globalPriorityQuery) == (b->globalPriorityQuery))) {
10232         onFail("a->globalPriorityQuery (Error: Value not equal)");
10233     };
10234 }
10235 
checkEqual_VkQueueFamilyGlobalPriorityPropertiesKHR(const VkQueueFamilyGlobalPriorityPropertiesKHR * a,const VkQueueFamilyGlobalPriorityPropertiesKHR * b,OnFailCompareFunc onFail)10236 void checkEqual_VkQueueFamilyGlobalPriorityPropertiesKHR(
10237     const VkQueueFamilyGlobalPriorityPropertiesKHR* a,
10238     const VkQueueFamilyGlobalPriorityPropertiesKHR* b, OnFailCompareFunc onFail) {
10239     if (!((a->sType) == (b->sType))) {
10240         onFail("a->sType (Error: Value not equal)");
10241     };
10242     if (a->pNext) {
10243         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10244     }
10245     if (!((a->priorityCount) == (b->priorityCount))) {
10246         onFail("a->priorityCount (Error: Value not equal)");
10247     };
10248     if (!((memcmp(a->priorities, b->priorities,
10249                   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR * sizeof(VkQueueGlobalPriorityKHR)) == 0))) {
10250         onFail("a->priorities (Error: Unequal static array)");
10251     };
10252 }
10253 
10254 #endif
10255 #ifdef VK_KHR_driver_properties
10256 #endif
10257 #ifdef VK_KHR_shader_float_controls
10258 #endif
10259 #ifdef VK_KHR_depth_stencil_resolve
10260 #endif
10261 #ifdef VK_KHR_swapchain_mutable_format
10262 #endif
10263 #ifdef VK_KHR_timeline_semaphore
10264 #endif
10265 #ifdef VK_KHR_vulkan_memory_model
10266 #endif
10267 #ifdef VK_KHR_shader_terminate_invocation
10268 #endif
10269 #ifdef VK_KHR_fragment_shading_rate
checkEqual_VkFragmentShadingRateAttachmentInfoKHR(const VkFragmentShadingRateAttachmentInfoKHR * a,const VkFragmentShadingRateAttachmentInfoKHR * b,OnFailCompareFunc onFail)10270 void checkEqual_VkFragmentShadingRateAttachmentInfoKHR(
10271     const VkFragmentShadingRateAttachmentInfoKHR* a,
10272     const VkFragmentShadingRateAttachmentInfoKHR* b, OnFailCompareFunc onFail) {
10273     if (!((a->sType) == (b->sType))) {
10274         onFail("a->sType (Error: Value not equal)");
10275     };
10276     if (a->pNext) {
10277         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10278     }
10279     if (!((!(a->pFragmentShadingRateAttachment) && !(b->pFragmentShadingRateAttachment)) ||
10280           ((a->pFragmentShadingRateAttachment) && (b->pFragmentShadingRateAttachment)))) {
10281         onFail("a->pFragmentShadingRateAttachment (Error: Mismatch in optional field)");
10282     };
10283     if (a->pFragmentShadingRateAttachment && b->pFragmentShadingRateAttachment) {
10284         if ((a->pFragmentShadingRateAttachment) && (b->pFragmentShadingRateAttachment)) {
10285             checkEqual_VkAttachmentReference2(a->pFragmentShadingRateAttachment,
10286                                               b->pFragmentShadingRateAttachment, onFail);
10287         }
10288     }
10289     checkEqual_VkExtent2D(&a->shadingRateAttachmentTexelSize, &b->shadingRateAttachmentTexelSize,
10290                           onFail);
10291 }
10292 
checkEqual_VkPipelineFragmentShadingRateStateCreateInfoKHR(const VkPipelineFragmentShadingRateStateCreateInfoKHR * a,const VkPipelineFragmentShadingRateStateCreateInfoKHR * b,OnFailCompareFunc onFail)10293 void checkEqual_VkPipelineFragmentShadingRateStateCreateInfoKHR(
10294     const VkPipelineFragmentShadingRateStateCreateInfoKHR* a,
10295     const VkPipelineFragmentShadingRateStateCreateInfoKHR* b, OnFailCompareFunc onFail) {
10296     if (!((a->sType) == (b->sType))) {
10297         onFail("a->sType (Error: Value not equal)");
10298     };
10299     if (a->pNext) {
10300         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10301     }
10302     checkEqual_VkExtent2D(&a->fragmentSize, &b->fragmentSize, onFail);
10303     if (!((memcmp(a->combinerOps, b->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR)) ==
10304            0))) {
10305         onFail("a->combinerOps (Error: Unequal static array)");
10306     };
10307 }
10308 
checkEqual_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(const VkPhysicalDeviceFragmentShadingRateFeaturesKHR * a,const VkPhysicalDeviceFragmentShadingRateFeaturesKHR * b,OnFailCompareFunc onFail)10309 void checkEqual_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
10310     const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* a,
10311     const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* b, OnFailCompareFunc onFail) {
10312     if (!((a->sType) == (b->sType))) {
10313         onFail("a->sType (Error: Value not equal)");
10314     };
10315     if (a->pNext) {
10316         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10317     }
10318     if (!((a->pipelineFragmentShadingRate) == (b->pipelineFragmentShadingRate))) {
10319         onFail("a->pipelineFragmentShadingRate (Error: Value not equal)");
10320     };
10321     if (!((a->primitiveFragmentShadingRate) == (b->primitiveFragmentShadingRate))) {
10322         onFail("a->primitiveFragmentShadingRate (Error: Value not equal)");
10323     };
10324     if (!((a->attachmentFragmentShadingRate) == (b->attachmentFragmentShadingRate))) {
10325         onFail("a->attachmentFragmentShadingRate (Error: Value not equal)");
10326     };
10327 }
10328 
checkEqual_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(const VkPhysicalDeviceFragmentShadingRatePropertiesKHR * a,const VkPhysicalDeviceFragmentShadingRatePropertiesKHR * b,OnFailCompareFunc onFail)10329 void checkEqual_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
10330     const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* a,
10331     const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* b, OnFailCompareFunc onFail) {
10332     if (!((a->sType) == (b->sType))) {
10333         onFail("a->sType (Error: Value not equal)");
10334     };
10335     if (a->pNext) {
10336         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10337     }
10338     checkEqual_VkExtent2D(&a->minFragmentShadingRateAttachmentTexelSize,
10339                           &b->minFragmentShadingRateAttachmentTexelSize, onFail);
10340     checkEqual_VkExtent2D(&a->maxFragmentShadingRateAttachmentTexelSize,
10341                           &b->maxFragmentShadingRateAttachmentTexelSize, onFail);
10342     if (!((a->maxFragmentShadingRateAttachmentTexelSizeAspectRatio) ==
10343           (b->maxFragmentShadingRateAttachmentTexelSizeAspectRatio))) {
10344         onFail("a->maxFragmentShadingRateAttachmentTexelSizeAspectRatio (Error: Value not equal)");
10345     };
10346     if (!((a->primitiveFragmentShadingRateWithMultipleViewports) ==
10347           (b->primitiveFragmentShadingRateWithMultipleViewports))) {
10348         onFail("a->primitiveFragmentShadingRateWithMultipleViewports (Error: Value not equal)");
10349     };
10350     if (!((a->layeredShadingRateAttachments) == (b->layeredShadingRateAttachments))) {
10351         onFail("a->layeredShadingRateAttachments (Error: Value not equal)");
10352     };
10353     if (!((a->fragmentShadingRateNonTrivialCombinerOps) ==
10354           (b->fragmentShadingRateNonTrivialCombinerOps))) {
10355         onFail("a->fragmentShadingRateNonTrivialCombinerOps (Error: Value not equal)");
10356     };
10357     checkEqual_VkExtent2D(&a->maxFragmentSize, &b->maxFragmentSize, onFail);
10358     if (!((a->maxFragmentSizeAspectRatio) == (b->maxFragmentSizeAspectRatio))) {
10359         onFail("a->maxFragmentSizeAspectRatio (Error: Value not equal)");
10360     };
10361     if (!((a->maxFragmentShadingRateCoverageSamples) ==
10362           (b->maxFragmentShadingRateCoverageSamples))) {
10363         onFail("a->maxFragmentShadingRateCoverageSamples (Error: Value not equal)");
10364     };
10365     if (!((a->maxFragmentShadingRateRasterizationSamples) ==
10366           (b->maxFragmentShadingRateRasterizationSamples))) {
10367         onFail("a->maxFragmentShadingRateRasterizationSamples (Error: Value not equal)");
10368     };
10369     if (!((a->fragmentShadingRateWithShaderDepthStencilWrites) ==
10370           (b->fragmentShadingRateWithShaderDepthStencilWrites))) {
10371         onFail("a->fragmentShadingRateWithShaderDepthStencilWrites (Error: Value not equal)");
10372     };
10373     if (!((a->fragmentShadingRateWithSampleMask) == (b->fragmentShadingRateWithSampleMask))) {
10374         onFail("a->fragmentShadingRateWithSampleMask (Error: Value not equal)");
10375     };
10376     if (!((a->fragmentShadingRateWithShaderSampleMask) ==
10377           (b->fragmentShadingRateWithShaderSampleMask))) {
10378         onFail("a->fragmentShadingRateWithShaderSampleMask (Error: Value not equal)");
10379     };
10380     if (!((a->fragmentShadingRateWithConservativeRasterization) ==
10381           (b->fragmentShadingRateWithConservativeRasterization))) {
10382         onFail("a->fragmentShadingRateWithConservativeRasterization (Error: Value not equal)");
10383     };
10384     if (!((a->fragmentShadingRateWithFragmentShaderInterlock) ==
10385           (b->fragmentShadingRateWithFragmentShaderInterlock))) {
10386         onFail("a->fragmentShadingRateWithFragmentShaderInterlock (Error: Value not equal)");
10387     };
10388     if (!((a->fragmentShadingRateWithCustomSampleLocations) ==
10389           (b->fragmentShadingRateWithCustomSampleLocations))) {
10390         onFail("a->fragmentShadingRateWithCustomSampleLocations (Error: Value not equal)");
10391     };
10392     if (!((a->fragmentShadingRateStrictMultiplyCombiner) ==
10393           (b->fragmentShadingRateStrictMultiplyCombiner))) {
10394         onFail("a->fragmentShadingRateStrictMultiplyCombiner (Error: Value not equal)");
10395     };
10396 }
10397 
checkEqual_VkPhysicalDeviceFragmentShadingRateKHR(const VkPhysicalDeviceFragmentShadingRateKHR * a,const VkPhysicalDeviceFragmentShadingRateKHR * b,OnFailCompareFunc onFail)10398 void checkEqual_VkPhysicalDeviceFragmentShadingRateKHR(
10399     const VkPhysicalDeviceFragmentShadingRateKHR* a,
10400     const VkPhysicalDeviceFragmentShadingRateKHR* b, OnFailCompareFunc onFail) {
10401     if (!((a->sType) == (b->sType))) {
10402         onFail("a->sType (Error: Value not equal)");
10403     };
10404     if (a->pNext) {
10405         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10406     }
10407     if (!((a->sampleCounts) == (b->sampleCounts))) {
10408         onFail("a->sampleCounts (Error: Value not equal)");
10409     };
10410     checkEqual_VkExtent2D(&a->fragmentSize, &b->fragmentSize, onFail);
10411 }
10412 
10413 #endif
10414 #ifdef VK_KHR_spirv_1_4
10415 #endif
10416 #ifdef VK_KHR_surface_protected_capabilities
checkEqual_VkSurfaceProtectedCapabilitiesKHR(const VkSurfaceProtectedCapabilitiesKHR * a,const VkSurfaceProtectedCapabilitiesKHR * b,OnFailCompareFunc onFail)10417 void checkEqual_VkSurfaceProtectedCapabilitiesKHR(const VkSurfaceProtectedCapabilitiesKHR* a,
10418                                                   const VkSurfaceProtectedCapabilitiesKHR* b,
10419                                                   OnFailCompareFunc onFail) {
10420     if (!((a->sType) == (b->sType))) {
10421         onFail("a->sType (Error: Value not equal)");
10422     };
10423     if (a->pNext) {
10424         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10425     }
10426     if (!((a->supportsProtected) == (b->supportsProtected))) {
10427         onFail("a->supportsProtected (Error: Value not equal)");
10428     };
10429 }
10430 
10431 #endif
10432 #ifdef VK_KHR_separate_depth_stencil_layouts
10433 #endif
10434 #ifdef VK_KHR_present_wait
checkEqual_VkPhysicalDevicePresentWaitFeaturesKHR(const VkPhysicalDevicePresentWaitFeaturesKHR * a,const VkPhysicalDevicePresentWaitFeaturesKHR * b,OnFailCompareFunc onFail)10435 void checkEqual_VkPhysicalDevicePresentWaitFeaturesKHR(
10436     const VkPhysicalDevicePresentWaitFeaturesKHR* a,
10437     const VkPhysicalDevicePresentWaitFeaturesKHR* b, OnFailCompareFunc onFail) {
10438     if (!((a->sType) == (b->sType))) {
10439         onFail("a->sType (Error: Value not equal)");
10440     };
10441     if (a->pNext) {
10442         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10443     }
10444     if (!((a->presentWait) == (b->presentWait))) {
10445         onFail("a->presentWait (Error: Value not equal)");
10446     };
10447 }
10448 
10449 #endif
10450 #ifdef VK_KHR_uniform_buffer_standard_layout
10451 #endif
10452 #ifdef VK_KHR_buffer_device_address
10453 #endif
10454 #ifdef VK_KHR_deferred_host_operations
10455 #endif
10456 #ifdef VK_KHR_pipeline_executable_properties
checkEqual_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * a,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * b,OnFailCompareFunc onFail)10457 void checkEqual_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
10458     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* a,
10459     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* b, OnFailCompareFunc onFail) {
10460     if (!((a->sType) == (b->sType))) {
10461         onFail("a->sType (Error: Value not equal)");
10462     };
10463     if (a->pNext) {
10464         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10465     }
10466     if (!((a->pipelineExecutableInfo) == (b->pipelineExecutableInfo))) {
10467         onFail("a->pipelineExecutableInfo (Error: Value not equal)");
10468     };
10469 }
10470 
checkEqual_VkPipelineInfoKHR(const VkPipelineInfoKHR * a,const VkPipelineInfoKHR * b,OnFailCompareFunc onFail)10471 void checkEqual_VkPipelineInfoKHR(const VkPipelineInfoKHR* a, const VkPipelineInfoKHR* b,
10472                                   OnFailCompareFunc onFail) {
10473     if (!((a->sType) == (b->sType))) {
10474         onFail("a->sType (Error: Value not equal)");
10475     };
10476     if (a->pNext) {
10477         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10478     }
10479     if (!((a->pipeline) == (b->pipeline))) {
10480         onFail("a->pipeline (Error: Value not equal)");
10481     };
10482 }
10483 
checkEqual_VkPipelineExecutablePropertiesKHR(const VkPipelineExecutablePropertiesKHR * a,const VkPipelineExecutablePropertiesKHR * b,OnFailCompareFunc onFail)10484 void checkEqual_VkPipelineExecutablePropertiesKHR(const VkPipelineExecutablePropertiesKHR* a,
10485                                                   const VkPipelineExecutablePropertiesKHR* b,
10486                                                   OnFailCompareFunc onFail) {
10487     if (!((a->sType) == (b->sType))) {
10488         onFail("a->sType (Error: Value not equal)");
10489     };
10490     if (a->pNext) {
10491         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10492     }
10493     if (!((a->stages) == (b->stages))) {
10494         onFail("a->stages (Error: Value not equal)");
10495     };
10496     if (!((memcmp(a->name, b->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10497         onFail("a->name (Error: Unequal static array)");
10498     };
10499     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10500         onFail("a->description (Error: Unequal static array)");
10501     };
10502     if (!((a->subgroupSize) == (b->subgroupSize))) {
10503         onFail("a->subgroupSize (Error: Value not equal)");
10504     };
10505 }
10506 
checkEqual_VkPipelineExecutableInfoKHR(const VkPipelineExecutableInfoKHR * a,const VkPipelineExecutableInfoKHR * b,OnFailCompareFunc onFail)10507 void checkEqual_VkPipelineExecutableInfoKHR(const VkPipelineExecutableInfoKHR* a,
10508                                             const VkPipelineExecutableInfoKHR* b,
10509                                             OnFailCompareFunc onFail) {
10510     if (!((a->sType) == (b->sType))) {
10511         onFail("a->sType (Error: Value not equal)");
10512     };
10513     if (a->pNext) {
10514         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10515     }
10516     if (!((a->pipeline) == (b->pipeline))) {
10517         onFail("a->pipeline (Error: Value not equal)");
10518     };
10519     if (!((a->executableIndex) == (b->executableIndex))) {
10520         onFail("a->executableIndex (Error: Value not equal)");
10521     };
10522 }
10523 
checkEqual_VkPipelineExecutableStatisticValueKHR(const VkPipelineExecutableStatisticValueKHR * a,const VkPipelineExecutableStatisticValueKHR * b,OnFailCompareFunc onFail)10524 void checkEqual_VkPipelineExecutableStatisticValueKHR(
10525     const VkPipelineExecutableStatisticValueKHR* a, const VkPipelineExecutableStatisticValueKHR* b,
10526     OnFailCompareFunc onFail) {
10527     if (!((a->b32) == (b->b32))) {
10528         onFail("a->b32 (Error: Value not equal)");
10529     };
10530     if (!((a->i64) == (b->i64))) {
10531         onFail("a->i64 (Error: Value not equal)");
10532     };
10533     if (!((a->u64) == (b->u64))) {
10534         onFail("a->u64 (Error: Value not equal)");
10535     };
10536     if (!((a->f64) == (b->f64))) {
10537         onFail("a->f64 (Error: Value not equal)");
10538     };
10539 }
10540 
checkEqual_VkPipelineExecutableStatisticKHR(const VkPipelineExecutableStatisticKHR * a,const VkPipelineExecutableStatisticKHR * b,OnFailCompareFunc onFail)10541 void checkEqual_VkPipelineExecutableStatisticKHR(const VkPipelineExecutableStatisticKHR* a,
10542                                                  const VkPipelineExecutableStatisticKHR* b,
10543                                                  OnFailCompareFunc onFail) {
10544     if (!((a->sType) == (b->sType))) {
10545         onFail("a->sType (Error: Value not equal)");
10546     };
10547     if (a->pNext) {
10548         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10549     }
10550     if (!((memcmp(a->name, b->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10551         onFail("a->name (Error: Unequal static array)");
10552     };
10553     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10554         onFail("a->description (Error: Unequal static array)");
10555     };
10556     if (!((a->format) == (b->format))) {
10557         onFail("a->format (Error: Value not equal)");
10558     };
10559     checkEqual_VkPipelineExecutableStatisticValueKHR(&a->value, &b->value, onFail);
10560 }
10561 
checkEqual_VkPipelineExecutableInternalRepresentationKHR(const VkPipelineExecutableInternalRepresentationKHR * a,const VkPipelineExecutableInternalRepresentationKHR * b,OnFailCompareFunc onFail)10562 void checkEqual_VkPipelineExecutableInternalRepresentationKHR(
10563     const VkPipelineExecutableInternalRepresentationKHR* a,
10564     const VkPipelineExecutableInternalRepresentationKHR* b, OnFailCompareFunc onFail) {
10565     if (!((a->sType) == (b->sType))) {
10566         onFail("a->sType (Error: Value not equal)");
10567     };
10568     if (a->pNext) {
10569         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10570     }
10571     if (!((memcmp(a->name, b->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10572         onFail("a->name (Error: Unequal static array)");
10573     };
10574     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
10575         onFail("a->description (Error: Unequal static array)");
10576     };
10577     if (!((a->isText) == (b->isText))) {
10578         onFail("a->isText (Error: Value not equal)");
10579     };
10580     if (!((a->dataSize) == (b->dataSize))) {
10581         onFail("a->dataSize (Error: Value not equal)");
10582     };
10583     if (!((!(a->pData) && !(b->pData)) || ((a->pData) && (b->pData)))) {
10584         onFail("a->pData (Error: Mismatch in optional field)");
10585     };
10586 }
10587 
10588 #endif
10589 #ifdef VK_KHR_map_memory2
checkEqual_VkMemoryMapInfoKHR(const VkMemoryMapInfoKHR * a,const VkMemoryMapInfoKHR * b,OnFailCompareFunc onFail)10590 void checkEqual_VkMemoryMapInfoKHR(const VkMemoryMapInfoKHR* a, const VkMemoryMapInfoKHR* b,
10591                                    OnFailCompareFunc onFail) {
10592     if (!((a->sType) == (b->sType))) {
10593         onFail("a->sType (Error: Value not equal)");
10594     };
10595     if (a->pNext) {
10596         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10597     }
10598     if (!((a->flags) == (b->flags))) {
10599         onFail("a->flags (Error: Value not equal)");
10600     };
10601     if (!((a->memory) == (b->memory))) {
10602         onFail("a->memory (Error: Value not equal)");
10603     };
10604     if (!((a->offset) == (b->offset))) {
10605         onFail("a->offset (Error: Value not equal)");
10606     };
10607     if (!((a->size) == (b->size))) {
10608         onFail("a->size (Error: Value not equal)");
10609     };
10610 }
10611 
checkEqual_VkMemoryUnmapInfoKHR(const VkMemoryUnmapInfoKHR * a,const VkMemoryUnmapInfoKHR * b,OnFailCompareFunc onFail)10612 void checkEqual_VkMemoryUnmapInfoKHR(const VkMemoryUnmapInfoKHR* a, const VkMemoryUnmapInfoKHR* b,
10613                                      OnFailCompareFunc onFail) {
10614     if (!((a->sType) == (b->sType))) {
10615         onFail("a->sType (Error: Value not equal)");
10616     };
10617     if (a->pNext) {
10618         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10619     }
10620     if (!((a->flags) == (b->flags))) {
10621         onFail("a->flags (Error: Value not equal)");
10622     };
10623     if (!((a->memory) == (b->memory))) {
10624         onFail("a->memory (Error: Value not equal)");
10625     };
10626 }
10627 
10628 #endif
10629 #ifdef VK_KHR_shader_integer_dot_product
10630 #endif
10631 #ifdef VK_KHR_pipeline_library
checkEqual_VkPipelineLibraryCreateInfoKHR(const VkPipelineLibraryCreateInfoKHR * a,const VkPipelineLibraryCreateInfoKHR * b,OnFailCompareFunc onFail)10632 void checkEqual_VkPipelineLibraryCreateInfoKHR(const VkPipelineLibraryCreateInfoKHR* a,
10633                                                const VkPipelineLibraryCreateInfoKHR* b,
10634                                                OnFailCompareFunc onFail) {
10635     if (!((a->sType) == (b->sType))) {
10636         onFail("a->sType (Error: Value not equal)");
10637     };
10638     if (a->pNext) {
10639         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10640     }
10641     if (!((a->libraryCount) == (b->libraryCount))) {
10642         onFail("a->libraryCount (Error: Value not equal)");
10643     };
10644     if (!((a->libraryCount) == (b->libraryCount))) {
10645         onFail("a->pLibraries (Error: Lengths not equal)");
10646     };
10647     if (!((memcmp(a->pLibraries, b->pLibraries, a->libraryCount * sizeof(const VkPipeline)) ==
10648            0))) {
10649         onFail("a->pLibraries (Error: Unequal dyn array)");
10650     };
10651 }
10652 
10653 #endif
10654 #ifdef VK_KHR_shader_non_semantic_info
10655 #endif
10656 #ifdef VK_KHR_present_id
checkEqual_VkPresentIdKHR(const VkPresentIdKHR * a,const VkPresentIdKHR * b,OnFailCompareFunc onFail)10657 void checkEqual_VkPresentIdKHR(const VkPresentIdKHR* a, const VkPresentIdKHR* b,
10658                                OnFailCompareFunc onFail) {
10659     if (!((a->sType) == (b->sType))) {
10660         onFail("a->sType (Error: Value not equal)");
10661     };
10662     if (a->pNext) {
10663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10664     }
10665     if (!((a->swapchainCount) == (b->swapchainCount))) {
10666         onFail("a->swapchainCount (Error: Value not equal)");
10667     };
10668     if (!((!(a->pPresentIds) && !(b->pPresentIds)) || ((a->pPresentIds) && (b->pPresentIds)))) {
10669         onFail("a->pPresentIds (Error: Mismatch in optional field)");
10670     };
10671     if (a->pPresentIds && b->pPresentIds) {
10672         if (!((a->swapchainCount) == (b->swapchainCount))) {
10673             onFail("a->pPresentIds (Error: Lengths not equal)");
10674         };
10675         if (!((memcmp(a->pPresentIds, b->pPresentIds, a->swapchainCount * sizeof(const uint64_t)) ==
10676                0))) {
10677             onFail("a->pPresentIds (Error: Unequal dyn array)");
10678         };
10679     }
10680 }
10681 
checkEqual_VkPhysicalDevicePresentIdFeaturesKHR(const VkPhysicalDevicePresentIdFeaturesKHR * a,const VkPhysicalDevicePresentIdFeaturesKHR * b,OnFailCompareFunc onFail)10682 void checkEqual_VkPhysicalDevicePresentIdFeaturesKHR(const VkPhysicalDevicePresentIdFeaturesKHR* a,
10683                                                      const VkPhysicalDevicePresentIdFeaturesKHR* b,
10684                                                      OnFailCompareFunc onFail) {
10685     if (!((a->sType) == (b->sType))) {
10686         onFail("a->sType (Error: Value not equal)");
10687     };
10688     if (a->pNext) {
10689         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10690     }
10691     if (!((a->presentId) == (b->presentId))) {
10692         onFail("a->presentId (Error: Value not equal)");
10693     };
10694 }
10695 
10696 #endif
10697 #ifdef VK_KHR_video_encode_queue
checkEqual_VkVideoEncodeInfoKHR(const VkVideoEncodeInfoKHR * a,const VkVideoEncodeInfoKHR * b,OnFailCompareFunc onFail)10698 void checkEqual_VkVideoEncodeInfoKHR(const VkVideoEncodeInfoKHR* a, const VkVideoEncodeInfoKHR* b,
10699                                      OnFailCompareFunc onFail) {
10700     if (!((a->sType) == (b->sType))) {
10701         onFail("a->sType (Error: Value not equal)");
10702     };
10703     if (a->pNext) {
10704         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10705     }
10706     if (!((a->flags) == (b->flags))) {
10707         onFail("a->flags (Error: Value not equal)");
10708     };
10709     if (!((a->qualityLevel) == (b->qualityLevel))) {
10710         onFail("a->qualityLevel (Error: Value not equal)");
10711     };
10712     if (!((a->dstBuffer) == (b->dstBuffer))) {
10713         onFail("a->dstBuffer (Error: Value not equal)");
10714     };
10715     if (!((a->dstBufferOffset) == (b->dstBufferOffset))) {
10716         onFail("a->dstBufferOffset (Error: Value not equal)");
10717     };
10718     if (!((a->dstBufferRange) == (b->dstBufferRange))) {
10719         onFail("a->dstBufferRange (Error: Value not equal)");
10720     };
10721     checkEqual_VkVideoPictureResourceInfoKHR(&a->srcPictureResource, &b->srcPictureResource,
10722                                              onFail);
10723     if (!((!(a->pSetupReferenceSlot) && !(b->pSetupReferenceSlot)) ||
10724           ((a->pSetupReferenceSlot) && (b->pSetupReferenceSlot)))) {
10725         onFail("a->pSetupReferenceSlot (Error: Mismatch in optional field)");
10726     };
10727     if (a->pSetupReferenceSlot && b->pSetupReferenceSlot) {
10728         if ((a->pSetupReferenceSlot) && (b->pSetupReferenceSlot)) {
10729             checkEqual_VkVideoReferenceSlotInfoKHR(a->pSetupReferenceSlot, b->pSetupReferenceSlot,
10730                                                    onFail);
10731         }
10732     }
10733     if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
10734         onFail("a->referenceSlotCount (Error: Value not equal)");
10735     };
10736     if ((a->pReferenceSlots) && (b->pReferenceSlots)) {
10737         if (!((a->referenceSlotCount) == (b->referenceSlotCount))) {
10738             onFail("a->pReferenceSlots (Error: Lengths not equal)");
10739         };
10740         if ((a->referenceSlotCount) == (b->referenceSlotCount)) {
10741             if (a) {
10742                 for (uint32_t i = 0; i < (uint32_t)a->referenceSlotCount; ++i) {
10743                     checkEqual_VkVideoReferenceSlotInfoKHR(a->pReferenceSlots + i,
10744                                                            b->pReferenceSlots + i, onFail);
10745                 }
10746             }
10747         }
10748     }
10749     if (!((a->precedingExternallyEncodedBytes) == (b->precedingExternallyEncodedBytes))) {
10750         onFail("a->precedingExternallyEncodedBytes (Error: Value not equal)");
10751     };
10752 }
10753 
checkEqual_VkVideoEncodeCapabilitiesKHR(const VkVideoEncodeCapabilitiesKHR * a,const VkVideoEncodeCapabilitiesKHR * b,OnFailCompareFunc onFail)10754 void checkEqual_VkVideoEncodeCapabilitiesKHR(const VkVideoEncodeCapabilitiesKHR* a,
10755                                              const VkVideoEncodeCapabilitiesKHR* b,
10756                                              OnFailCompareFunc onFail) {
10757     if (!((a->sType) == (b->sType))) {
10758         onFail("a->sType (Error: Value not equal)");
10759     };
10760     if (a->pNext) {
10761         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10762     }
10763     if (!((a->flags) == (b->flags))) {
10764         onFail("a->flags (Error: Value not equal)");
10765     };
10766     if (!((a->rateControlModes) == (b->rateControlModes))) {
10767         onFail("a->rateControlModes (Error: Value not equal)");
10768     };
10769     if (!((a->maxRateControlLayers) == (b->maxRateControlLayers))) {
10770         onFail("a->maxRateControlLayers (Error: Value not equal)");
10771     };
10772     if (!((a->maxQualityLevels) == (b->maxQualityLevels))) {
10773         onFail("a->maxQualityLevels (Error: Value not equal)");
10774     };
10775     checkEqual_VkExtent2D(&a->inputImageDataFillAlignment, &b->inputImageDataFillAlignment, onFail);
10776     if (!((a->supportedEncodeFeedbackFlags) == (b->supportedEncodeFeedbackFlags))) {
10777         onFail("a->supportedEncodeFeedbackFlags (Error: Value not equal)");
10778     };
10779 }
10780 
checkEqual_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR * a,const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR * b,OnFailCompareFunc onFail)10781 void checkEqual_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
10782     const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* a,
10783     const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* b, OnFailCompareFunc onFail) {
10784     if (!((a->sType) == (b->sType))) {
10785         onFail("a->sType (Error: Value not equal)");
10786     };
10787     if (a->pNext) {
10788         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10789     }
10790     if (!((a->encodeFeedbackFlags) == (b->encodeFeedbackFlags))) {
10791         onFail("a->encodeFeedbackFlags (Error: Value not equal)");
10792     };
10793 }
10794 
checkEqual_VkVideoEncodeUsageInfoKHR(const VkVideoEncodeUsageInfoKHR * a,const VkVideoEncodeUsageInfoKHR * b,OnFailCompareFunc onFail)10795 void checkEqual_VkVideoEncodeUsageInfoKHR(const VkVideoEncodeUsageInfoKHR* a,
10796                                           const VkVideoEncodeUsageInfoKHR* b,
10797                                           OnFailCompareFunc onFail) {
10798     if (!((a->sType) == (b->sType))) {
10799         onFail("a->sType (Error: Value not equal)");
10800     };
10801     if (a->pNext) {
10802         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10803     }
10804     if (!((a->videoUsageHints) == (b->videoUsageHints))) {
10805         onFail("a->videoUsageHints (Error: Value not equal)");
10806     };
10807     if (!((a->videoContentHints) == (b->videoContentHints))) {
10808         onFail("a->videoContentHints (Error: Value not equal)");
10809     };
10810     if (!((a->tuningMode) == (b->tuningMode))) {
10811         onFail("a->tuningMode (Error: Value not equal)");
10812     };
10813 }
10814 
checkEqual_VkVideoEncodeRateControlLayerInfoKHR(const VkVideoEncodeRateControlLayerInfoKHR * a,const VkVideoEncodeRateControlLayerInfoKHR * b,OnFailCompareFunc onFail)10815 void checkEqual_VkVideoEncodeRateControlLayerInfoKHR(const VkVideoEncodeRateControlLayerInfoKHR* a,
10816                                                      const VkVideoEncodeRateControlLayerInfoKHR* b,
10817                                                      OnFailCompareFunc onFail) {
10818     if (!((a->sType) == (b->sType))) {
10819         onFail("a->sType (Error: Value not equal)");
10820     };
10821     if (a->pNext) {
10822         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10823     }
10824     if (!((a->averageBitrate) == (b->averageBitrate))) {
10825         onFail("a->averageBitrate (Error: Value not equal)");
10826     };
10827     if (!((a->maxBitrate) == (b->maxBitrate))) {
10828         onFail("a->maxBitrate (Error: Value not equal)");
10829     };
10830     if (!((a->frameRateNumerator) == (b->frameRateNumerator))) {
10831         onFail("a->frameRateNumerator (Error: Value not equal)");
10832     };
10833     if (!((a->frameRateDenominator) == (b->frameRateDenominator))) {
10834         onFail("a->frameRateDenominator (Error: Value not equal)");
10835     };
10836     if (!((a->virtualBufferSizeInMs) == (b->virtualBufferSizeInMs))) {
10837         onFail("a->virtualBufferSizeInMs (Error: Value not equal)");
10838     };
10839     if (!((a->initialVirtualBufferSizeInMs) == (b->initialVirtualBufferSizeInMs))) {
10840         onFail("a->initialVirtualBufferSizeInMs (Error: Value not equal)");
10841     };
10842 }
10843 
checkEqual_VkVideoEncodeRateControlInfoKHR(const VkVideoEncodeRateControlInfoKHR * a,const VkVideoEncodeRateControlInfoKHR * b,OnFailCompareFunc onFail)10844 void checkEqual_VkVideoEncodeRateControlInfoKHR(const VkVideoEncodeRateControlInfoKHR* a,
10845                                                 const VkVideoEncodeRateControlInfoKHR* b,
10846                                                 OnFailCompareFunc onFail) {
10847     if (!((a->sType) == (b->sType))) {
10848         onFail("a->sType (Error: Value not equal)");
10849     };
10850     if (a->pNext) {
10851         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10852     }
10853     if (!((a->flags) == (b->flags))) {
10854         onFail("a->flags (Error: Value not equal)");
10855     };
10856     if (!((a->rateControlMode) == (b->rateControlMode))) {
10857         onFail("a->rateControlMode (Error: Value not equal)");
10858     };
10859     if (!((a->layerCount) == (b->layerCount))) {
10860         onFail("a->layerCount (Error: Value not equal)");
10861     };
10862     if ((a->pLayers) && (b->pLayers)) {
10863         if (!((a->layerCount) == (b->layerCount))) {
10864             onFail("a->pLayers (Error: Lengths not equal)");
10865         };
10866         if ((a->layerCount) == (b->layerCount)) {
10867             if (a) {
10868                 for (uint32_t i = 0; i < (uint32_t)a->layerCount; ++i) {
10869                     checkEqual_VkVideoEncodeRateControlLayerInfoKHR(a->pLayers + i, b->pLayers + i,
10870                                                                     onFail);
10871                 }
10872             }
10873         }
10874     }
10875 }
10876 
10877 #endif
10878 #ifdef VK_KHR_synchronization2
checkEqual_VkQueueFamilyCheckpointProperties2NV(const VkQueueFamilyCheckpointProperties2NV * a,const VkQueueFamilyCheckpointProperties2NV * b,OnFailCompareFunc onFail)10879 void checkEqual_VkQueueFamilyCheckpointProperties2NV(const VkQueueFamilyCheckpointProperties2NV* a,
10880                                                      const VkQueueFamilyCheckpointProperties2NV* b,
10881                                                      OnFailCompareFunc onFail) {
10882     if (!((a->sType) == (b->sType))) {
10883         onFail("a->sType (Error: Value not equal)");
10884     };
10885     if (a->pNext) {
10886         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10887     }
10888     if (!((a->checkpointExecutionStageMask) == (b->checkpointExecutionStageMask))) {
10889         onFail("a->checkpointExecutionStageMask (Error: Value not equal)");
10890     };
10891 }
10892 
checkEqual_VkCheckpointData2NV(const VkCheckpointData2NV * a,const VkCheckpointData2NV * b,OnFailCompareFunc onFail)10893 void checkEqual_VkCheckpointData2NV(const VkCheckpointData2NV* a, const VkCheckpointData2NV* b,
10894                                     OnFailCompareFunc onFail) {
10895     if (!((a->sType) == (b->sType))) {
10896         onFail("a->sType (Error: Value not equal)");
10897     };
10898     if (a->pNext) {
10899         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10900     }
10901     if (!((a->stage) == (b->stage))) {
10902         onFail("a->stage (Error: Value not equal)");
10903     };
10904     if (!((!(a->pCheckpointMarker) && !(b->pCheckpointMarker)) ||
10905           ((a->pCheckpointMarker) && (b->pCheckpointMarker)))) {
10906         onFail("a->pCheckpointMarker (Error: Mismatch in optional field)");
10907     };
10908 }
10909 
10910 #endif
10911 #ifdef VK_KHR_fragment_shader_barycentric
checkEqual_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR * a,const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR * b,OnFailCompareFunc onFail)10912 void checkEqual_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
10913     const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* a,
10914     const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* b, OnFailCompareFunc onFail) {
10915     if (!((a->sType) == (b->sType))) {
10916         onFail("a->sType (Error: Value not equal)");
10917     };
10918     if (a->pNext) {
10919         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10920     }
10921     if (!((a->fragmentShaderBarycentric) == (b->fragmentShaderBarycentric))) {
10922         onFail("a->fragmentShaderBarycentric (Error: Value not equal)");
10923     };
10924 }
10925 
checkEqual_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR * a,const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR * b,OnFailCompareFunc onFail)10926 void checkEqual_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
10927     const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* a,
10928     const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* b, OnFailCompareFunc onFail) {
10929     if (!((a->sType) == (b->sType))) {
10930         onFail("a->sType (Error: Value not equal)");
10931     };
10932     if (a->pNext) {
10933         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10934     }
10935     if (!((a->triStripVertexOrderIndependentOfProvokingVertex) ==
10936           (b->triStripVertexOrderIndependentOfProvokingVertex))) {
10937         onFail("a->triStripVertexOrderIndependentOfProvokingVertex (Error: Value not equal)");
10938     };
10939 }
10940 
10941 #endif
10942 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
checkEqual_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR * a,const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR * b,OnFailCompareFunc onFail)10943 void checkEqual_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
10944     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* a,
10945     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* b,
10946     OnFailCompareFunc onFail) {
10947     if (!((a->sType) == (b->sType))) {
10948         onFail("a->sType (Error: Value not equal)");
10949     };
10950     if (a->pNext) {
10951         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10952     }
10953     if (!((a->shaderSubgroupUniformControlFlow) == (b->shaderSubgroupUniformControlFlow))) {
10954         onFail("a->shaderSubgroupUniformControlFlow (Error: Value not equal)");
10955     };
10956 }
10957 
10958 #endif
10959 #ifdef VK_KHR_zero_initialize_workgroup_memory
10960 #endif
10961 #ifdef VK_KHR_workgroup_memory_explicit_layout
checkEqual_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR * a,const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR * b,OnFailCompareFunc onFail)10962 void checkEqual_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
10963     const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* a,
10964     const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* b, OnFailCompareFunc onFail) {
10965     if (!((a->sType) == (b->sType))) {
10966         onFail("a->sType (Error: Value not equal)");
10967     };
10968     if (a->pNext) {
10969         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
10970     }
10971     if (!((a->workgroupMemoryExplicitLayout) == (b->workgroupMemoryExplicitLayout))) {
10972         onFail("a->workgroupMemoryExplicitLayout (Error: Value not equal)");
10973     };
10974     if (!((a->workgroupMemoryExplicitLayoutScalarBlockLayout) ==
10975           (b->workgroupMemoryExplicitLayoutScalarBlockLayout))) {
10976         onFail("a->workgroupMemoryExplicitLayoutScalarBlockLayout (Error: Value not equal)");
10977     };
10978     if (!((a->workgroupMemoryExplicitLayout8BitAccess) ==
10979           (b->workgroupMemoryExplicitLayout8BitAccess))) {
10980         onFail("a->workgroupMemoryExplicitLayout8BitAccess (Error: Value not equal)");
10981     };
10982     if (!((a->workgroupMemoryExplicitLayout16BitAccess) ==
10983           (b->workgroupMemoryExplicitLayout16BitAccess))) {
10984         onFail("a->workgroupMemoryExplicitLayout16BitAccess (Error: Value not equal)");
10985     };
10986 }
10987 
10988 #endif
10989 #ifdef VK_KHR_copy_commands2
10990 #endif
10991 #ifdef VK_KHR_format_feature_flags2
10992 #endif
10993 #ifdef VK_KHR_ray_tracing_maintenance1
checkEqual_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR * a,const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR * b,OnFailCompareFunc onFail)10994 void checkEqual_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
10995     const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* a,
10996     const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* b, OnFailCompareFunc onFail) {
10997     if (!((a->sType) == (b->sType))) {
10998         onFail("a->sType (Error: Value not equal)");
10999     };
11000     if (a->pNext) {
11001         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11002     }
11003     if (!((a->rayTracingMaintenance1) == (b->rayTracingMaintenance1))) {
11004         onFail("a->rayTracingMaintenance1 (Error: Value not equal)");
11005     };
11006     if (!((a->rayTracingPipelineTraceRaysIndirect2) == (b->rayTracingPipelineTraceRaysIndirect2))) {
11007         onFail("a->rayTracingPipelineTraceRaysIndirect2 (Error: Value not equal)");
11008     };
11009 }
11010 
checkEqual_VkTraceRaysIndirectCommand2KHR(const VkTraceRaysIndirectCommand2KHR * a,const VkTraceRaysIndirectCommand2KHR * b,OnFailCompareFunc onFail)11011 void checkEqual_VkTraceRaysIndirectCommand2KHR(const VkTraceRaysIndirectCommand2KHR* a,
11012                                                const VkTraceRaysIndirectCommand2KHR* b,
11013                                                OnFailCompareFunc onFail) {
11014     if (!((a->raygenShaderRecordAddress) == (b->raygenShaderRecordAddress))) {
11015         onFail("a->raygenShaderRecordAddress (Error: Value not equal)");
11016     };
11017     if (!((a->raygenShaderRecordSize) == (b->raygenShaderRecordSize))) {
11018         onFail("a->raygenShaderRecordSize (Error: Value not equal)");
11019     };
11020     if (!((a->missShaderBindingTableAddress) == (b->missShaderBindingTableAddress))) {
11021         onFail("a->missShaderBindingTableAddress (Error: Value not equal)");
11022     };
11023     if (!((a->missShaderBindingTableSize) == (b->missShaderBindingTableSize))) {
11024         onFail("a->missShaderBindingTableSize (Error: Value not equal)");
11025     };
11026     if (!((a->missShaderBindingTableStride) == (b->missShaderBindingTableStride))) {
11027         onFail("a->missShaderBindingTableStride (Error: Value not equal)");
11028     };
11029     if (!((a->hitShaderBindingTableAddress) == (b->hitShaderBindingTableAddress))) {
11030         onFail("a->hitShaderBindingTableAddress (Error: Value not equal)");
11031     };
11032     if (!((a->hitShaderBindingTableSize) == (b->hitShaderBindingTableSize))) {
11033         onFail("a->hitShaderBindingTableSize (Error: Value not equal)");
11034     };
11035     if (!((a->hitShaderBindingTableStride) == (b->hitShaderBindingTableStride))) {
11036         onFail("a->hitShaderBindingTableStride (Error: Value not equal)");
11037     };
11038     if (!((a->callableShaderBindingTableAddress) == (b->callableShaderBindingTableAddress))) {
11039         onFail("a->callableShaderBindingTableAddress (Error: Value not equal)");
11040     };
11041     if (!((a->callableShaderBindingTableSize) == (b->callableShaderBindingTableSize))) {
11042         onFail("a->callableShaderBindingTableSize (Error: Value not equal)");
11043     };
11044     if (!((a->callableShaderBindingTableStride) == (b->callableShaderBindingTableStride))) {
11045         onFail("a->callableShaderBindingTableStride (Error: Value not equal)");
11046     };
11047     if (!((a->width) == (b->width))) {
11048         onFail("a->width (Error: Value not equal)");
11049     };
11050     if (!((a->height) == (b->height))) {
11051         onFail("a->height (Error: Value not equal)");
11052     };
11053     if (!((a->depth) == (b->depth))) {
11054         onFail("a->depth (Error: Value not equal)");
11055     };
11056 }
11057 
11058 #endif
11059 #ifdef VK_KHR_portability_enumeration
11060 #endif
11061 #ifdef VK_KHR_maintenance4
11062 #endif
11063 #ifdef VK_KHR_ray_tracing_position_fetch
checkEqual_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR * a,const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR * b,OnFailCompareFunc onFail)11064 void checkEqual_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
11065     const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* a,
11066     const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* b, OnFailCompareFunc onFail) {
11067     if (!((a->sType) == (b->sType))) {
11068         onFail("a->sType (Error: Value not equal)");
11069     };
11070     if (a->pNext) {
11071         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11072     }
11073     if (!((a->rayTracingPositionFetch) == (b->rayTracingPositionFetch))) {
11074         onFail("a->rayTracingPositionFetch (Error: Value not equal)");
11075     };
11076 }
11077 
11078 #endif
11079 #ifdef VK_ANDROID_native_buffer
checkEqual_VkNativeBufferUsage2ANDROID(const VkNativeBufferUsage2ANDROID * a,const VkNativeBufferUsage2ANDROID * b,OnFailCompareFunc onFail)11080 void checkEqual_VkNativeBufferUsage2ANDROID(const VkNativeBufferUsage2ANDROID* a,
11081                                             const VkNativeBufferUsage2ANDROID* b,
11082                                             OnFailCompareFunc onFail) {
11083     if (!((a->consumer) == (b->consumer))) {
11084         onFail("a->consumer (Error: Value not equal)");
11085     };
11086     if (!((a->producer) == (b->producer))) {
11087         onFail("a->producer (Error: Value not equal)");
11088     };
11089 }
11090 
checkEqual_VkNativeBufferANDROID(const VkNativeBufferANDROID * a,const VkNativeBufferANDROID * b,OnFailCompareFunc onFail)11091 void checkEqual_VkNativeBufferANDROID(const VkNativeBufferANDROID* a,
11092                                       const VkNativeBufferANDROID* b, OnFailCompareFunc onFail) {
11093     if (!((a->sType) == (b->sType))) {
11094         onFail("a->sType (Error: Value not equal)");
11095     };
11096     if (a->pNext) {
11097         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11098     }
11099     if (!((!(a->handle) && !(b->handle)) || ((a->handle) && (b->handle)))) {
11100         onFail("a->handle (Error: Mismatch in optional field)");
11101     };
11102     if (a->handle && b->handle) {
11103         if (!((memcmp(a->handle, b->handle, sizeof(const uint32_t)) == 0))) {
11104             onFail("a->handle (Error: Unequal dyn array)");
11105         };
11106     }
11107     if (!((a->stride) == (b->stride))) {
11108         onFail("a->stride (Error: Value not equal)");
11109     };
11110     if (!((a->format) == (b->format))) {
11111         onFail("a->format (Error: Value not equal)");
11112     };
11113     if (!((a->usage) == (b->usage))) {
11114         onFail("a->usage (Error: Value not equal)");
11115     };
11116     checkEqual_VkNativeBufferUsage2ANDROID(&a->usage2, &b->usage2, onFail);
11117 }
11118 
checkEqual_VkSwapchainImageCreateInfoANDROID(const VkSwapchainImageCreateInfoANDROID * a,const VkSwapchainImageCreateInfoANDROID * b,OnFailCompareFunc onFail)11119 void checkEqual_VkSwapchainImageCreateInfoANDROID(const VkSwapchainImageCreateInfoANDROID* a,
11120                                                   const VkSwapchainImageCreateInfoANDROID* b,
11121                                                   OnFailCompareFunc onFail) {
11122     if (!((a->sType) == (b->sType))) {
11123         onFail("a->sType (Error: Value not equal)");
11124     };
11125     if (a->pNext) {
11126         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11127     }
11128     if (!((a->usage) == (b->usage))) {
11129         onFail("a->usage (Error: Value not equal)");
11130     };
11131 }
11132 
checkEqual_VkPhysicalDevicePresentationPropertiesANDROID(const VkPhysicalDevicePresentationPropertiesANDROID * a,const VkPhysicalDevicePresentationPropertiesANDROID * b,OnFailCompareFunc onFail)11133 void checkEqual_VkPhysicalDevicePresentationPropertiesANDROID(
11134     const VkPhysicalDevicePresentationPropertiesANDROID* a,
11135     const VkPhysicalDevicePresentationPropertiesANDROID* b, OnFailCompareFunc onFail) {
11136     if (!((a->sType) == (b->sType))) {
11137         onFail("a->sType (Error: Value not equal)");
11138     };
11139     if (a->pNext) {
11140         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11141     }
11142     if (!((a->sharedImage) == (b->sharedImage))) {
11143         onFail("a->sharedImage (Error: Value not equal)");
11144     };
11145 }
11146 
11147 #endif
11148 #ifdef VK_EXT_debug_report
checkEqual_VkDebugReportCallbackCreateInfoEXT(const VkDebugReportCallbackCreateInfoEXT * a,const VkDebugReportCallbackCreateInfoEXT * b,OnFailCompareFunc onFail)11149 void checkEqual_VkDebugReportCallbackCreateInfoEXT(const VkDebugReportCallbackCreateInfoEXT* a,
11150                                                    const VkDebugReportCallbackCreateInfoEXT* b,
11151                                                    OnFailCompareFunc onFail) {
11152     if (!((a->sType) == (b->sType))) {
11153         onFail("a->sType (Error: Value not equal)");
11154     };
11155     if (a->pNext) {
11156         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11157     }
11158     if (!((a->flags) == (b->flags))) {
11159         onFail("a->flags (Error: Value not equal)");
11160     };
11161     if (!((a->pfnCallback) == (b->pfnCallback))) {
11162         onFail("a->pfnCallback (Error: Value not equal)");
11163     };
11164     if (!((!(a->pUserData) && !(b->pUserData)) || ((a->pUserData) && (b->pUserData)))) {
11165         onFail("a->pUserData (Error: Mismatch in optional field)");
11166     };
11167 }
11168 
11169 #endif
11170 #ifdef VK_NV_glsl_shader
11171 #endif
11172 #ifdef VK_EXT_depth_range_unrestricted
11173 #endif
11174 #ifdef VK_IMG_filter_cubic
11175 #endif
11176 #ifdef VK_AMD_rasterization_order
checkEqual_VkPipelineRasterizationStateRasterizationOrderAMD(const VkPipelineRasterizationStateRasterizationOrderAMD * a,const VkPipelineRasterizationStateRasterizationOrderAMD * b,OnFailCompareFunc onFail)11177 void checkEqual_VkPipelineRasterizationStateRasterizationOrderAMD(
11178     const VkPipelineRasterizationStateRasterizationOrderAMD* a,
11179     const VkPipelineRasterizationStateRasterizationOrderAMD* b, OnFailCompareFunc onFail) {
11180     if (!((a->sType) == (b->sType))) {
11181         onFail("a->sType (Error: Value not equal)");
11182     };
11183     if (a->pNext) {
11184         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11185     }
11186     if (!((a->rasterizationOrder) == (b->rasterizationOrder))) {
11187         onFail("a->rasterizationOrder (Error: Value not equal)");
11188     };
11189 }
11190 
11191 #endif
11192 #ifdef VK_AMD_shader_trinary_minmax
11193 #endif
11194 #ifdef VK_AMD_shader_explicit_vertex_parameter
11195 #endif
11196 #ifdef VK_EXT_debug_marker
checkEqual_VkDebugMarkerObjectNameInfoEXT(const VkDebugMarkerObjectNameInfoEXT * a,const VkDebugMarkerObjectNameInfoEXT * b,OnFailCompareFunc onFail)11197 void checkEqual_VkDebugMarkerObjectNameInfoEXT(const VkDebugMarkerObjectNameInfoEXT* a,
11198                                                const VkDebugMarkerObjectNameInfoEXT* b,
11199                                                OnFailCompareFunc onFail) {
11200     if (!((a->sType) == (b->sType))) {
11201         onFail("a->sType (Error: Value not equal)");
11202     };
11203     if (a->pNext) {
11204         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11205     }
11206     if (!((a->objectType) == (b->objectType))) {
11207         onFail("a->objectType (Error: Value not equal)");
11208     };
11209     if (!((a->object) == (b->object))) {
11210         onFail("a->object (Error: Value not equal)");
11211     };
11212     if (!((!(a->pObjectName) && !(b->pObjectName)) || ((a->pObjectName) && (b->pObjectName)))) {
11213         onFail("a->pObjectName (Error: Mismatch in string pointer nullness)");
11214     };
11215     if ((a->pObjectName) && (b->pObjectName)) {
11216         if (!((strcmp(a->pObjectName, b->pObjectName) == 0))) {
11217             onFail("a->pObjectName (Error: Unequal strings)");
11218         };
11219     }
11220 }
11221 
checkEqual_VkDebugMarkerObjectTagInfoEXT(const VkDebugMarkerObjectTagInfoEXT * a,const VkDebugMarkerObjectTagInfoEXT * b,OnFailCompareFunc onFail)11222 void checkEqual_VkDebugMarkerObjectTagInfoEXT(const VkDebugMarkerObjectTagInfoEXT* a,
11223                                               const VkDebugMarkerObjectTagInfoEXT* b,
11224                                               OnFailCompareFunc onFail) {
11225     if (!((a->sType) == (b->sType))) {
11226         onFail("a->sType (Error: Value not equal)");
11227     };
11228     if (a->pNext) {
11229         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11230     }
11231     if (!((a->objectType) == (b->objectType))) {
11232         onFail("a->objectType (Error: Value not equal)");
11233     };
11234     if (!((a->object) == (b->object))) {
11235         onFail("a->object (Error: Value not equal)");
11236     };
11237     if (!((a->tagName) == (b->tagName))) {
11238         onFail("a->tagName (Error: Value not equal)");
11239     };
11240     if (!((a->tagSize) == (b->tagSize))) {
11241         onFail("a->tagSize (Error: Value not equal)");
11242     };
11243 }
11244 
checkEqual_VkDebugMarkerMarkerInfoEXT(const VkDebugMarkerMarkerInfoEXT * a,const VkDebugMarkerMarkerInfoEXT * b,OnFailCompareFunc onFail)11245 void checkEqual_VkDebugMarkerMarkerInfoEXT(const VkDebugMarkerMarkerInfoEXT* a,
11246                                            const VkDebugMarkerMarkerInfoEXT* b,
11247                                            OnFailCompareFunc onFail) {
11248     if (!((a->sType) == (b->sType))) {
11249         onFail("a->sType (Error: Value not equal)");
11250     };
11251     if (a->pNext) {
11252         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11253     }
11254     if (!((!(a->pMarkerName) && !(b->pMarkerName)) || ((a->pMarkerName) && (b->pMarkerName)))) {
11255         onFail("a->pMarkerName (Error: Mismatch in string pointer nullness)");
11256     };
11257     if ((a->pMarkerName) && (b->pMarkerName)) {
11258         if (!((strcmp(a->pMarkerName, b->pMarkerName) == 0))) {
11259             onFail("a->pMarkerName (Error: Unequal strings)");
11260         };
11261     }
11262     if (!((memcmp(a->color, b->color, 4 * sizeof(float)) == 0))) {
11263         onFail("a->color (Error: Unequal static array)");
11264     };
11265 }
11266 
11267 #endif
11268 #ifdef VK_AMD_gcn_shader
11269 #endif
11270 #ifdef VK_NV_dedicated_allocation
checkEqual_VkDedicatedAllocationImageCreateInfoNV(const VkDedicatedAllocationImageCreateInfoNV * a,const VkDedicatedAllocationImageCreateInfoNV * b,OnFailCompareFunc onFail)11271 void checkEqual_VkDedicatedAllocationImageCreateInfoNV(
11272     const VkDedicatedAllocationImageCreateInfoNV* a,
11273     const VkDedicatedAllocationImageCreateInfoNV* b, OnFailCompareFunc onFail) {
11274     if (!((a->sType) == (b->sType))) {
11275         onFail("a->sType (Error: Value not equal)");
11276     };
11277     if (a->pNext) {
11278         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11279     }
11280     if (!((a->dedicatedAllocation) == (b->dedicatedAllocation))) {
11281         onFail("a->dedicatedAllocation (Error: Value not equal)");
11282     };
11283 }
11284 
checkEqual_VkDedicatedAllocationBufferCreateInfoNV(const VkDedicatedAllocationBufferCreateInfoNV * a,const VkDedicatedAllocationBufferCreateInfoNV * b,OnFailCompareFunc onFail)11285 void checkEqual_VkDedicatedAllocationBufferCreateInfoNV(
11286     const VkDedicatedAllocationBufferCreateInfoNV* a,
11287     const VkDedicatedAllocationBufferCreateInfoNV* b, OnFailCompareFunc onFail) {
11288     if (!((a->sType) == (b->sType))) {
11289         onFail("a->sType (Error: Value not equal)");
11290     };
11291     if (a->pNext) {
11292         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11293     }
11294     if (!((a->dedicatedAllocation) == (b->dedicatedAllocation))) {
11295         onFail("a->dedicatedAllocation (Error: Value not equal)");
11296     };
11297 }
11298 
checkEqual_VkDedicatedAllocationMemoryAllocateInfoNV(const VkDedicatedAllocationMemoryAllocateInfoNV * a,const VkDedicatedAllocationMemoryAllocateInfoNV * b,OnFailCompareFunc onFail)11299 void checkEqual_VkDedicatedAllocationMemoryAllocateInfoNV(
11300     const VkDedicatedAllocationMemoryAllocateInfoNV* a,
11301     const VkDedicatedAllocationMemoryAllocateInfoNV* b, OnFailCompareFunc onFail) {
11302     if (!((a->sType) == (b->sType))) {
11303         onFail("a->sType (Error: Value not equal)");
11304     };
11305     if (a->pNext) {
11306         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11307     }
11308     if (!((a->image) == (b->image))) {
11309         onFail("a->image (Error: Value not equal)");
11310     };
11311     if (!((a->buffer) == (b->buffer))) {
11312         onFail("a->buffer (Error: Value not equal)");
11313     };
11314 }
11315 
11316 #endif
11317 #ifdef VK_EXT_transform_feedback
checkEqual_VkPhysicalDeviceTransformFeedbackFeaturesEXT(const VkPhysicalDeviceTransformFeedbackFeaturesEXT * a,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * b,OnFailCompareFunc onFail)11318 void checkEqual_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
11319     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* a,
11320     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* b, OnFailCompareFunc onFail) {
11321     if (!((a->sType) == (b->sType))) {
11322         onFail("a->sType (Error: Value not equal)");
11323     };
11324     if (a->pNext) {
11325         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11326     }
11327     if (!((a->transformFeedback) == (b->transformFeedback))) {
11328         onFail("a->transformFeedback (Error: Value not equal)");
11329     };
11330     if (!((a->geometryStreams) == (b->geometryStreams))) {
11331         onFail("a->geometryStreams (Error: Value not equal)");
11332     };
11333 }
11334 
checkEqual_VkPhysicalDeviceTransformFeedbackPropertiesEXT(const VkPhysicalDeviceTransformFeedbackPropertiesEXT * a,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * b,OnFailCompareFunc onFail)11335 void checkEqual_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
11336     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* a,
11337     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* b, OnFailCompareFunc onFail) {
11338     if (!((a->sType) == (b->sType))) {
11339         onFail("a->sType (Error: Value not equal)");
11340     };
11341     if (a->pNext) {
11342         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11343     }
11344     if (!((a->maxTransformFeedbackStreams) == (b->maxTransformFeedbackStreams))) {
11345         onFail("a->maxTransformFeedbackStreams (Error: Value not equal)");
11346     };
11347     if (!((a->maxTransformFeedbackBuffers) == (b->maxTransformFeedbackBuffers))) {
11348         onFail("a->maxTransformFeedbackBuffers (Error: Value not equal)");
11349     };
11350     if (!((a->maxTransformFeedbackBufferSize) == (b->maxTransformFeedbackBufferSize))) {
11351         onFail("a->maxTransformFeedbackBufferSize (Error: Value not equal)");
11352     };
11353     if (!((a->maxTransformFeedbackStreamDataSize) == (b->maxTransformFeedbackStreamDataSize))) {
11354         onFail("a->maxTransformFeedbackStreamDataSize (Error: Value not equal)");
11355     };
11356     if (!((a->maxTransformFeedbackBufferDataSize) == (b->maxTransformFeedbackBufferDataSize))) {
11357         onFail("a->maxTransformFeedbackBufferDataSize (Error: Value not equal)");
11358     };
11359     if (!((a->maxTransformFeedbackBufferDataStride) == (b->maxTransformFeedbackBufferDataStride))) {
11360         onFail("a->maxTransformFeedbackBufferDataStride (Error: Value not equal)");
11361     };
11362     if (!((a->transformFeedbackQueries) == (b->transformFeedbackQueries))) {
11363         onFail("a->transformFeedbackQueries (Error: Value not equal)");
11364     };
11365     if (!((a->transformFeedbackStreamsLinesTriangles) ==
11366           (b->transformFeedbackStreamsLinesTriangles))) {
11367         onFail("a->transformFeedbackStreamsLinesTriangles (Error: Value not equal)");
11368     };
11369     if (!((a->transformFeedbackRasterizationStreamSelect) ==
11370           (b->transformFeedbackRasterizationStreamSelect))) {
11371         onFail("a->transformFeedbackRasterizationStreamSelect (Error: Value not equal)");
11372     };
11373     if (!((a->transformFeedbackDraw) == (b->transformFeedbackDraw))) {
11374         onFail("a->transformFeedbackDraw (Error: Value not equal)");
11375     };
11376 }
11377 
checkEqual_VkPipelineRasterizationStateStreamCreateInfoEXT(const VkPipelineRasterizationStateStreamCreateInfoEXT * a,const VkPipelineRasterizationStateStreamCreateInfoEXT * b,OnFailCompareFunc onFail)11378 void checkEqual_VkPipelineRasterizationStateStreamCreateInfoEXT(
11379     const VkPipelineRasterizationStateStreamCreateInfoEXT* a,
11380     const VkPipelineRasterizationStateStreamCreateInfoEXT* b, OnFailCompareFunc onFail) {
11381     if (!((a->sType) == (b->sType))) {
11382         onFail("a->sType (Error: Value not equal)");
11383     };
11384     if (a->pNext) {
11385         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11386     }
11387     if (!((a->flags) == (b->flags))) {
11388         onFail("a->flags (Error: Value not equal)");
11389     };
11390     if (!((a->rasterizationStream) == (b->rasterizationStream))) {
11391         onFail("a->rasterizationStream (Error: Value not equal)");
11392     };
11393 }
11394 
11395 #endif
11396 #ifdef VK_NVX_binary_import
checkEqual_VkCuModuleCreateInfoNVX(const VkCuModuleCreateInfoNVX * a,const VkCuModuleCreateInfoNVX * b,OnFailCompareFunc onFail)11397 void checkEqual_VkCuModuleCreateInfoNVX(const VkCuModuleCreateInfoNVX* a,
11398                                         const VkCuModuleCreateInfoNVX* b,
11399                                         OnFailCompareFunc onFail) {
11400     if (!((a->sType) == (b->sType))) {
11401         onFail("a->sType (Error: Value not equal)");
11402     };
11403     if (a->pNext) {
11404         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11405     }
11406     if (!((a->dataSize) == (b->dataSize))) {
11407         onFail("a->dataSize (Error: Value not equal)");
11408     };
11409 }
11410 
checkEqual_VkCuFunctionCreateInfoNVX(const VkCuFunctionCreateInfoNVX * a,const VkCuFunctionCreateInfoNVX * b,OnFailCompareFunc onFail)11411 void checkEqual_VkCuFunctionCreateInfoNVX(const VkCuFunctionCreateInfoNVX* a,
11412                                           const VkCuFunctionCreateInfoNVX* b,
11413                                           OnFailCompareFunc onFail) {
11414     if (!((a->sType) == (b->sType))) {
11415         onFail("a->sType (Error: Value not equal)");
11416     };
11417     if (a->pNext) {
11418         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11419     }
11420     if (!((a->module) == (b->module))) {
11421         onFail("a->module (Error: Value not equal)");
11422     };
11423     if (!((!(a->pName) && !(b->pName)) || ((a->pName) && (b->pName)))) {
11424         onFail("a->pName (Error: Mismatch in string pointer nullness)");
11425     };
11426     if ((a->pName) && (b->pName)) {
11427         if (!((strcmp(a->pName, b->pName) == 0))) {
11428             onFail("a->pName (Error: Unequal strings)");
11429         };
11430     }
11431 }
11432 
checkEqual_VkCuLaunchInfoNVX(const VkCuLaunchInfoNVX * a,const VkCuLaunchInfoNVX * b,OnFailCompareFunc onFail)11433 void checkEqual_VkCuLaunchInfoNVX(const VkCuLaunchInfoNVX* a, const VkCuLaunchInfoNVX* b,
11434                                   OnFailCompareFunc onFail) {
11435     if (!((a->sType) == (b->sType))) {
11436         onFail("a->sType (Error: Value not equal)");
11437     };
11438     if (a->pNext) {
11439         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11440     }
11441     if (!((a->function) == (b->function))) {
11442         onFail("a->function (Error: Value not equal)");
11443     };
11444     if (!((a->gridDimX) == (b->gridDimX))) {
11445         onFail("a->gridDimX (Error: Value not equal)");
11446     };
11447     if (!((a->gridDimY) == (b->gridDimY))) {
11448         onFail("a->gridDimY (Error: Value not equal)");
11449     };
11450     if (!((a->gridDimZ) == (b->gridDimZ))) {
11451         onFail("a->gridDimZ (Error: Value not equal)");
11452     };
11453     if (!((a->blockDimX) == (b->blockDimX))) {
11454         onFail("a->blockDimX (Error: Value not equal)");
11455     };
11456     if (!((a->blockDimY) == (b->blockDimY))) {
11457         onFail("a->blockDimY (Error: Value not equal)");
11458     };
11459     if (!((a->blockDimZ) == (b->blockDimZ))) {
11460         onFail("a->blockDimZ (Error: Value not equal)");
11461     };
11462     if (!((a->sharedMemBytes) == (b->sharedMemBytes))) {
11463         onFail("a->sharedMemBytes (Error: Value not equal)");
11464     };
11465     if (!((a->paramCount) == (b->paramCount))) {
11466         onFail("a->paramCount (Error: Value not equal)");
11467     };
11468     if (!((a->extraCount) == (b->extraCount))) {
11469         onFail("a->extraCount (Error: Value not equal)");
11470     };
11471 }
11472 
11473 #endif
11474 #ifdef VK_NVX_image_view_handle
checkEqual_VkImageViewHandleInfoNVX(const VkImageViewHandleInfoNVX * a,const VkImageViewHandleInfoNVX * b,OnFailCompareFunc onFail)11475 void checkEqual_VkImageViewHandleInfoNVX(const VkImageViewHandleInfoNVX* a,
11476                                          const VkImageViewHandleInfoNVX* b,
11477                                          OnFailCompareFunc onFail) {
11478     if (!((a->sType) == (b->sType))) {
11479         onFail("a->sType (Error: Value not equal)");
11480     };
11481     if (a->pNext) {
11482         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11483     }
11484     if (!((a->imageView) == (b->imageView))) {
11485         onFail("a->imageView (Error: Value not equal)");
11486     };
11487     if (!((a->descriptorType) == (b->descriptorType))) {
11488         onFail("a->descriptorType (Error: Value not equal)");
11489     };
11490     if (!((a->sampler) == (b->sampler))) {
11491         onFail("a->sampler (Error: Value not equal)");
11492     };
11493 }
11494 
checkEqual_VkImageViewAddressPropertiesNVX(const VkImageViewAddressPropertiesNVX * a,const VkImageViewAddressPropertiesNVX * b,OnFailCompareFunc onFail)11495 void checkEqual_VkImageViewAddressPropertiesNVX(const VkImageViewAddressPropertiesNVX* a,
11496                                                 const VkImageViewAddressPropertiesNVX* b,
11497                                                 OnFailCompareFunc onFail) {
11498     if (!((a->sType) == (b->sType))) {
11499         onFail("a->sType (Error: Value not equal)");
11500     };
11501     if (a->pNext) {
11502         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11503     }
11504     if (!((a->deviceAddress) == (b->deviceAddress))) {
11505         onFail("a->deviceAddress (Error: Value not equal)");
11506     };
11507     if (!((a->size) == (b->size))) {
11508         onFail("a->size (Error: Value not equal)");
11509     };
11510 }
11511 
11512 #endif
11513 #ifdef VK_AMD_draw_indirect_count
11514 #endif
11515 #ifdef VK_AMD_negative_viewport_height
11516 #endif
11517 #ifdef VK_AMD_gpu_shader_half_float
11518 #endif
11519 #ifdef VK_AMD_shader_ballot
11520 #endif
11521 #ifdef VK_EXT_video_encode_h264
checkEqual_VkVideoEncodeH264CapabilitiesEXT(const VkVideoEncodeH264CapabilitiesEXT * a,const VkVideoEncodeH264CapabilitiesEXT * b,OnFailCompareFunc onFail)11522 void checkEqual_VkVideoEncodeH264CapabilitiesEXT(const VkVideoEncodeH264CapabilitiesEXT* a,
11523                                                  const VkVideoEncodeH264CapabilitiesEXT* b,
11524                                                  OnFailCompareFunc onFail) {
11525     if (!((a->sType) == (b->sType))) {
11526         onFail("a->sType (Error: Value not equal)");
11527     };
11528     if (a->pNext) {
11529         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11530     }
11531     if (!((a->flags) == (b->flags))) {
11532         onFail("a->flags (Error: Value not equal)");
11533     };
11534     if (!((a->maxPPictureL0ReferenceCount) == (b->maxPPictureL0ReferenceCount))) {
11535         onFail("a->maxPPictureL0ReferenceCount (Error: Value not equal)");
11536     };
11537     if (!((a->maxBPictureL0ReferenceCount) == (b->maxBPictureL0ReferenceCount))) {
11538         onFail("a->maxBPictureL0ReferenceCount (Error: Value not equal)");
11539     };
11540     if (!((a->maxL1ReferenceCount) == (b->maxL1ReferenceCount))) {
11541         onFail("a->maxL1ReferenceCount (Error: Value not equal)");
11542     };
11543     if (!((a->motionVectorsOverPicBoundariesFlag) == (b->motionVectorsOverPicBoundariesFlag))) {
11544         onFail("a->motionVectorsOverPicBoundariesFlag (Error: Value not equal)");
11545     };
11546     if (!((a->maxBytesPerPicDenom) == (b->maxBytesPerPicDenom))) {
11547         onFail("a->maxBytesPerPicDenom (Error: Value not equal)");
11548     };
11549     if (!((a->maxBitsPerMbDenom) == (b->maxBitsPerMbDenom))) {
11550         onFail("a->maxBitsPerMbDenom (Error: Value not equal)");
11551     };
11552     if (!((a->log2MaxMvLengthHorizontal) == (b->log2MaxMvLengthHorizontal))) {
11553         onFail("a->log2MaxMvLengthHorizontal (Error: Value not equal)");
11554     };
11555     if (!((a->log2MaxMvLengthVertical) == (b->log2MaxMvLengthVertical))) {
11556         onFail("a->log2MaxMvLengthVertical (Error: Value not equal)");
11557     };
11558 }
11559 
checkEqual_VkVideoEncodeH264SessionParametersAddInfoEXT(const VkVideoEncodeH264SessionParametersAddInfoEXT * a,const VkVideoEncodeH264SessionParametersAddInfoEXT * b,OnFailCompareFunc onFail)11560 void checkEqual_VkVideoEncodeH264SessionParametersAddInfoEXT(
11561     const VkVideoEncodeH264SessionParametersAddInfoEXT* a,
11562     const VkVideoEncodeH264SessionParametersAddInfoEXT* b, OnFailCompareFunc onFail) {
11563     if (!((a->sType) == (b->sType))) {
11564         onFail("a->sType (Error: Value not equal)");
11565     };
11566     if (a->pNext) {
11567         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11568     }
11569     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
11570         onFail("a->stdSPSCount (Error: Value not equal)");
11571     };
11572     if (!((!(a->pStdSPSs) && !(b->pStdSPSs)) || ((a->pStdSPSs) && (b->pStdSPSs)))) {
11573         onFail("a->pStdSPSs (Error: Mismatch in optional field)");
11574     };
11575     if (a->pStdSPSs && b->pStdSPSs) {
11576         if (!((a->stdSPSCount) == (b->stdSPSCount))) {
11577             onFail("a->pStdSPSs (Error: Lengths not equal)");
11578         };
11579         if (!((memcmp(a->pStdSPSs, b->pStdSPSs,
11580                       a->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet)) == 0))) {
11581             onFail("a->pStdSPSs (Error: Unequal dyn array)");
11582         };
11583     }
11584     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
11585         onFail("a->stdPPSCount (Error: Value not equal)");
11586     };
11587     if (!((!(a->pStdPPSs) && !(b->pStdPPSs)) || ((a->pStdPPSs) && (b->pStdPPSs)))) {
11588         onFail("a->pStdPPSs (Error: Mismatch in optional field)");
11589     };
11590     if (a->pStdPPSs && b->pStdPPSs) {
11591         if (!((a->stdPPSCount) == (b->stdPPSCount))) {
11592             onFail("a->pStdPPSs (Error: Lengths not equal)");
11593         };
11594         if (!((memcmp(a->pStdPPSs, b->pStdPPSs,
11595                       a->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet)) == 0))) {
11596             onFail("a->pStdPPSs (Error: Unequal dyn array)");
11597         };
11598     }
11599 }
11600 
checkEqual_VkVideoEncodeH264SessionParametersCreateInfoEXT(const VkVideoEncodeH264SessionParametersCreateInfoEXT * a,const VkVideoEncodeH264SessionParametersCreateInfoEXT * b,OnFailCompareFunc onFail)11601 void checkEqual_VkVideoEncodeH264SessionParametersCreateInfoEXT(
11602     const VkVideoEncodeH264SessionParametersCreateInfoEXT* a,
11603     const VkVideoEncodeH264SessionParametersCreateInfoEXT* b, OnFailCompareFunc onFail) {
11604     if (!((a->sType) == (b->sType))) {
11605         onFail("a->sType (Error: Value not equal)");
11606     };
11607     if (a->pNext) {
11608         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11609     }
11610     if (!((a->maxStdSPSCount) == (b->maxStdSPSCount))) {
11611         onFail("a->maxStdSPSCount (Error: Value not equal)");
11612     };
11613     if (!((a->maxStdPPSCount) == (b->maxStdPPSCount))) {
11614         onFail("a->maxStdPPSCount (Error: Value not equal)");
11615     };
11616     if (!((!(a->pParametersAddInfo) && !(b->pParametersAddInfo)) ||
11617           ((a->pParametersAddInfo) && (b->pParametersAddInfo)))) {
11618         onFail("a->pParametersAddInfo (Error: Mismatch in optional field)");
11619     };
11620     if (a->pParametersAddInfo && b->pParametersAddInfo) {
11621         if ((a->pParametersAddInfo) && (b->pParametersAddInfo)) {
11622             checkEqual_VkVideoEncodeH264SessionParametersAddInfoEXT(a->pParametersAddInfo,
11623                                                                     b->pParametersAddInfo, onFail);
11624         }
11625     }
11626 }
11627 
checkEqual_VkVideoEncodeH264NaluSliceInfoEXT(const VkVideoEncodeH264NaluSliceInfoEXT * a,const VkVideoEncodeH264NaluSliceInfoEXT * b,OnFailCompareFunc onFail)11628 void checkEqual_VkVideoEncodeH264NaluSliceInfoEXT(const VkVideoEncodeH264NaluSliceInfoEXT* a,
11629                                                   const VkVideoEncodeH264NaluSliceInfoEXT* b,
11630                                                   OnFailCompareFunc onFail) {
11631     if (!((a->sType) == (b->sType))) {
11632         onFail("a->sType (Error: Value not equal)");
11633     };
11634     if (a->pNext) {
11635         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11636     }
11637     if (!((a->mbCount) == (b->mbCount))) {
11638         onFail("a->mbCount (Error: Value not equal)");
11639     };
11640     if (!((!(a->pStdReferenceFinalLists) && !(b->pStdReferenceFinalLists)) ||
11641           ((a->pStdReferenceFinalLists) && (b->pStdReferenceFinalLists)))) {
11642         onFail("a->pStdReferenceFinalLists (Error: Mismatch in optional field)");
11643     };
11644     if (a->pStdReferenceFinalLists && b->pStdReferenceFinalLists) {
11645         if (!((memcmp(a->pStdReferenceFinalLists, b->pStdReferenceFinalLists,
11646                       sizeof(const StdVideoEncodeH264ReferenceListsInfo)) == 0))) {
11647             onFail("a->pStdReferenceFinalLists (Error: Unequal dyn array)");
11648         };
11649     }
11650     if (!((memcmp(a->pStdSliceHeader, b->pStdSliceHeader,
11651                   sizeof(const StdVideoEncodeH264SliceHeader)) == 0))) {
11652         onFail("a->pStdSliceHeader (Error: Unequal dyn array)");
11653     };
11654 }
11655 
checkEqual_VkVideoEncodeH264VclFrameInfoEXT(const VkVideoEncodeH264VclFrameInfoEXT * a,const VkVideoEncodeH264VclFrameInfoEXT * b,OnFailCompareFunc onFail)11656 void checkEqual_VkVideoEncodeH264VclFrameInfoEXT(const VkVideoEncodeH264VclFrameInfoEXT* a,
11657                                                  const VkVideoEncodeH264VclFrameInfoEXT* b,
11658                                                  OnFailCompareFunc onFail) {
11659     if (!((a->sType) == (b->sType))) {
11660         onFail("a->sType (Error: Value not equal)");
11661     };
11662     if (a->pNext) {
11663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11664     }
11665     if (!((!(a->pStdReferenceFinalLists) && !(b->pStdReferenceFinalLists)) ||
11666           ((a->pStdReferenceFinalLists) && (b->pStdReferenceFinalLists)))) {
11667         onFail("a->pStdReferenceFinalLists (Error: Mismatch in optional field)");
11668     };
11669     if (a->pStdReferenceFinalLists && b->pStdReferenceFinalLists) {
11670         if (!((memcmp(a->pStdReferenceFinalLists, b->pStdReferenceFinalLists,
11671                       sizeof(const StdVideoEncodeH264ReferenceListsInfo)) == 0))) {
11672             onFail("a->pStdReferenceFinalLists (Error: Unequal dyn array)");
11673         };
11674     }
11675     if (!((a->naluSliceEntryCount) == (b->naluSliceEntryCount))) {
11676         onFail("a->naluSliceEntryCount (Error: Value not equal)");
11677     };
11678     if ((a->pNaluSliceEntries) && (b->pNaluSliceEntries)) {
11679         if (!((a->naluSliceEntryCount) == (b->naluSliceEntryCount))) {
11680             onFail("a->pNaluSliceEntries (Error: Lengths not equal)");
11681         };
11682         if ((a->naluSliceEntryCount) == (b->naluSliceEntryCount)) {
11683             if (a) {
11684                 for (uint32_t i = 0; i < (uint32_t)a->naluSliceEntryCount; ++i) {
11685                     checkEqual_VkVideoEncodeH264NaluSliceInfoEXT(a->pNaluSliceEntries + i,
11686                                                                  b->pNaluSliceEntries + i, onFail);
11687                 }
11688             }
11689         }
11690     }
11691     if (!((memcmp(a->pStdPictureInfo, b->pStdPictureInfo,
11692                   sizeof(const StdVideoEncodeH264PictureInfo)) == 0))) {
11693         onFail("a->pStdPictureInfo (Error: Unequal dyn array)");
11694     };
11695 }
11696 
checkEqual_VkVideoEncodeH264DpbSlotInfoEXT(const VkVideoEncodeH264DpbSlotInfoEXT * a,const VkVideoEncodeH264DpbSlotInfoEXT * b,OnFailCompareFunc onFail)11697 void checkEqual_VkVideoEncodeH264DpbSlotInfoEXT(const VkVideoEncodeH264DpbSlotInfoEXT* a,
11698                                                 const VkVideoEncodeH264DpbSlotInfoEXT* b,
11699                                                 OnFailCompareFunc onFail) {
11700     if (!((a->sType) == (b->sType))) {
11701         onFail("a->sType (Error: Value not equal)");
11702     };
11703     if (a->pNext) {
11704         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11705     }
11706     if (!((memcmp(a->pStdReferenceInfo, b->pStdReferenceInfo,
11707                   sizeof(const StdVideoEncodeH264ReferenceInfo)) == 0))) {
11708         onFail("a->pStdReferenceInfo (Error: Unequal dyn array)");
11709     };
11710 }
11711 
checkEqual_VkVideoEncodeH264ProfileInfoEXT(const VkVideoEncodeH264ProfileInfoEXT * a,const VkVideoEncodeH264ProfileInfoEXT * b,OnFailCompareFunc onFail)11712 void checkEqual_VkVideoEncodeH264ProfileInfoEXT(const VkVideoEncodeH264ProfileInfoEXT* a,
11713                                                 const VkVideoEncodeH264ProfileInfoEXT* b,
11714                                                 OnFailCompareFunc onFail) {
11715     if (!((a->sType) == (b->sType))) {
11716         onFail("a->sType (Error: Value not equal)");
11717     };
11718     if (a->pNext) {
11719         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11720     }
11721     if (!((a->stdProfileIdc) == (b->stdProfileIdc))) {
11722         onFail("a->stdProfileIdc (Error: Value not equal)");
11723     };
11724 }
11725 
checkEqual_VkVideoEncodeH264RateControlInfoEXT(const VkVideoEncodeH264RateControlInfoEXT * a,const VkVideoEncodeH264RateControlInfoEXT * b,OnFailCompareFunc onFail)11726 void checkEqual_VkVideoEncodeH264RateControlInfoEXT(const VkVideoEncodeH264RateControlInfoEXT* a,
11727                                                     const VkVideoEncodeH264RateControlInfoEXT* b,
11728                                                     OnFailCompareFunc onFail) {
11729     if (!((a->sType) == (b->sType))) {
11730         onFail("a->sType (Error: Value not equal)");
11731     };
11732     if (a->pNext) {
11733         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11734     }
11735     if (!((a->gopFrameCount) == (b->gopFrameCount))) {
11736         onFail("a->gopFrameCount (Error: Value not equal)");
11737     };
11738     if (!((a->idrPeriod) == (b->idrPeriod))) {
11739         onFail("a->idrPeriod (Error: Value not equal)");
11740     };
11741     if (!((a->consecutiveBFrameCount) == (b->consecutiveBFrameCount))) {
11742         onFail("a->consecutiveBFrameCount (Error: Value not equal)");
11743     };
11744     if (!((a->rateControlStructure) == (b->rateControlStructure))) {
11745         onFail("a->rateControlStructure (Error: Value not equal)");
11746     };
11747     if (!((a->temporalLayerCount) == (b->temporalLayerCount))) {
11748         onFail("a->temporalLayerCount (Error: Value not equal)");
11749     };
11750 }
11751 
checkEqual_VkVideoEncodeH264QpEXT(const VkVideoEncodeH264QpEXT * a,const VkVideoEncodeH264QpEXT * b,OnFailCompareFunc onFail)11752 void checkEqual_VkVideoEncodeH264QpEXT(const VkVideoEncodeH264QpEXT* a,
11753                                        const VkVideoEncodeH264QpEXT* b, OnFailCompareFunc onFail) {
11754     if (!((a->qpI) == (b->qpI))) {
11755         onFail("a->qpI (Error: Value not equal)");
11756     };
11757     if (!((a->qpP) == (b->qpP))) {
11758         onFail("a->qpP (Error: Value not equal)");
11759     };
11760     if (!((a->qpB) == (b->qpB))) {
11761         onFail("a->qpB (Error: Value not equal)");
11762     };
11763 }
11764 
checkEqual_VkVideoEncodeH264FrameSizeEXT(const VkVideoEncodeH264FrameSizeEXT * a,const VkVideoEncodeH264FrameSizeEXT * b,OnFailCompareFunc onFail)11765 void checkEqual_VkVideoEncodeH264FrameSizeEXT(const VkVideoEncodeH264FrameSizeEXT* a,
11766                                               const VkVideoEncodeH264FrameSizeEXT* b,
11767                                               OnFailCompareFunc onFail) {
11768     if (!((a->frameISize) == (b->frameISize))) {
11769         onFail("a->frameISize (Error: Value not equal)");
11770     };
11771     if (!((a->framePSize) == (b->framePSize))) {
11772         onFail("a->framePSize (Error: Value not equal)");
11773     };
11774     if (!((a->frameBSize) == (b->frameBSize))) {
11775         onFail("a->frameBSize (Error: Value not equal)");
11776     };
11777 }
11778 
checkEqual_VkVideoEncodeH264RateControlLayerInfoEXT(const VkVideoEncodeH264RateControlLayerInfoEXT * a,const VkVideoEncodeH264RateControlLayerInfoEXT * b,OnFailCompareFunc onFail)11779 void checkEqual_VkVideoEncodeH264RateControlLayerInfoEXT(
11780     const VkVideoEncodeH264RateControlLayerInfoEXT* a,
11781     const VkVideoEncodeH264RateControlLayerInfoEXT* b, OnFailCompareFunc onFail) {
11782     if (!((a->sType) == (b->sType))) {
11783         onFail("a->sType (Error: Value not equal)");
11784     };
11785     if (a->pNext) {
11786         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11787     }
11788     if (!((a->temporalLayerId) == (b->temporalLayerId))) {
11789         onFail("a->temporalLayerId (Error: Value not equal)");
11790     };
11791     if (!((a->useInitialRcQp) == (b->useInitialRcQp))) {
11792         onFail("a->useInitialRcQp (Error: Value not equal)");
11793     };
11794     checkEqual_VkVideoEncodeH264QpEXT(&a->initialRcQp, &b->initialRcQp, onFail);
11795     if (!((a->useMinQp) == (b->useMinQp))) {
11796         onFail("a->useMinQp (Error: Value not equal)");
11797     };
11798     checkEqual_VkVideoEncodeH264QpEXT(&a->minQp, &b->minQp, onFail);
11799     if (!((a->useMaxQp) == (b->useMaxQp))) {
11800         onFail("a->useMaxQp (Error: Value not equal)");
11801     };
11802     checkEqual_VkVideoEncodeH264QpEXT(&a->maxQp, &b->maxQp, onFail);
11803     if (!((a->useMaxFrameSize) == (b->useMaxFrameSize))) {
11804         onFail("a->useMaxFrameSize (Error: Value not equal)");
11805     };
11806     checkEqual_VkVideoEncodeH264FrameSizeEXT(&a->maxFrameSize, &b->maxFrameSize, onFail);
11807 }
11808 
11809 #endif
11810 #ifdef VK_EXT_video_encode_h265
checkEqual_VkVideoEncodeH265CapabilitiesEXT(const VkVideoEncodeH265CapabilitiesEXT * a,const VkVideoEncodeH265CapabilitiesEXT * b,OnFailCompareFunc onFail)11811 void checkEqual_VkVideoEncodeH265CapabilitiesEXT(const VkVideoEncodeH265CapabilitiesEXT* a,
11812                                                  const VkVideoEncodeH265CapabilitiesEXT* b,
11813                                                  OnFailCompareFunc onFail) {
11814     if (!((a->sType) == (b->sType))) {
11815         onFail("a->sType (Error: Value not equal)");
11816     };
11817     if (a->pNext) {
11818         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11819     }
11820     if (!((a->flags) == (b->flags))) {
11821         onFail("a->flags (Error: Value not equal)");
11822     };
11823     if (!((a->ctbSizes) == (b->ctbSizes))) {
11824         onFail("a->ctbSizes (Error: Value not equal)");
11825     };
11826     if (!((a->transformBlockSizes) == (b->transformBlockSizes))) {
11827         onFail("a->transformBlockSizes (Error: Value not equal)");
11828     };
11829     if (!((a->maxPPictureL0ReferenceCount) == (b->maxPPictureL0ReferenceCount))) {
11830         onFail("a->maxPPictureL0ReferenceCount (Error: Value not equal)");
11831     };
11832     if (!((a->maxBPictureL0ReferenceCount) == (b->maxBPictureL0ReferenceCount))) {
11833         onFail("a->maxBPictureL0ReferenceCount (Error: Value not equal)");
11834     };
11835     if (!((a->maxL1ReferenceCount) == (b->maxL1ReferenceCount))) {
11836         onFail("a->maxL1ReferenceCount (Error: Value not equal)");
11837     };
11838     if (!((a->maxSubLayersCount) == (b->maxSubLayersCount))) {
11839         onFail("a->maxSubLayersCount (Error: Value not equal)");
11840     };
11841     if (!((a->minLog2MinLumaCodingBlockSizeMinus3) == (b->minLog2MinLumaCodingBlockSizeMinus3))) {
11842         onFail("a->minLog2MinLumaCodingBlockSizeMinus3 (Error: Value not equal)");
11843     };
11844     if (!((a->maxLog2MinLumaCodingBlockSizeMinus3) == (b->maxLog2MinLumaCodingBlockSizeMinus3))) {
11845         onFail("a->maxLog2MinLumaCodingBlockSizeMinus3 (Error: Value not equal)");
11846     };
11847     if (!((a->minLog2MinLumaTransformBlockSizeMinus2) ==
11848           (b->minLog2MinLumaTransformBlockSizeMinus2))) {
11849         onFail("a->minLog2MinLumaTransformBlockSizeMinus2 (Error: Value not equal)");
11850     };
11851     if (!((a->maxLog2MinLumaTransformBlockSizeMinus2) ==
11852           (b->maxLog2MinLumaTransformBlockSizeMinus2))) {
11853         onFail("a->maxLog2MinLumaTransformBlockSizeMinus2 (Error: Value not equal)");
11854     };
11855     if (!((a->minMaxTransformHierarchyDepthInter) == (b->minMaxTransformHierarchyDepthInter))) {
11856         onFail("a->minMaxTransformHierarchyDepthInter (Error: Value not equal)");
11857     };
11858     if (!((a->maxMaxTransformHierarchyDepthInter) == (b->maxMaxTransformHierarchyDepthInter))) {
11859         onFail("a->maxMaxTransformHierarchyDepthInter (Error: Value not equal)");
11860     };
11861     if (!((a->minMaxTransformHierarchyDepthIntra) == (b->minMaxTransformHierarchyDepthIntra))) {
11862         onFail("a->minMaxTransformHierarchyDepthIntra (Error: Value not equal)");
11863     };
11864     if (!((a->maxMaxTransformHierarchyDepthIntra) == (b->maxMaxTransformHierarchyDepthIntra))) {
11865         onFail("a->maxMaxTransformHierarchyDepthIntra (Error: Value not equal)");
11866     };
11867     if (!((a->maxDiffCuQpDeltaDepth) == (b->maxDiffCuQpDeltaDepth))) {
11868         onFail("a->maxDiffCuQpDeltaDepth (Error: Value not equal)");
11869     };
11870     if (!((a->minMaxNumMergeCand) == (b->minMaxNumMergeCand))) {
11871         onFail("a->minMaxNumMergeCand (Error: Value not equal)");
11872     };
11873     if (!((a->maxMaxNumMergeCand) == (b->maxMaxNumMergeCand))) {
11874         onFail("a->maxMaxNumMergeCand (Error: Value not equal)");
11875     };
11876 }
11877 
checkEqual_VkVideoEncodeH265SessionParametersAddInfoEXT(const VkVideoEncodeH265SessionParametersAddInfoEXT * a,const VkVideoEncodeH265SessionParametersAddInfoEXT * b,OnFailCompareFunc onFail)11878 void checkEqual_VkVideoEncodeH265SessionParametersAddInfoEXT(
11879     const VkVideoEncodeH265SessionParametersAddInfoEXT* a,
11880     const VkVideoEncodeH265SessionParametersAddInfoEXT* b, OnFailCompareFunc onFail) {
11881     if (!((a->sType) == (b->sType))) {
11882         onFail("a->sType (Error: Value not equal)");
11883     };
11884     if (a->pNext) {
11885         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11886     }
11887     if (!((a->stdVPSCount) == (b->stdVPSCount))) {
11888         onFail("a->stdVPSCount (Error: Value not equal)");
11889     };
11890     if (!((!(a->pStdVPSs) && !(b->pStdVPSs)) || ((a->pStdVPSs) && (b->pStdVPSs)))) {
11891         onFail("a->pStdVPSs (Error: Mismatch in optional field)");
11892     };
11893     if (a->pStdVPSs && b->pStdVPSs) {
11894         if (!((a->stdVPSCount) == (b->stdVPSCount))) {
11895             onFail("a->pStdVPSs (Error: Lengths not equal)");
11896         };
11897         if (!((memcmp(a->pStdVPSs, b->pStdVPSs,
11898                       a->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet)) == 0))) {
11899             onFail("a->pStdVPSs (Error: Unequal dyn array)");
11900         };
11901     }
11902     if (!((a->stdSPSCount) == (b->stdSPSCount))) {
11903         onFail("a->stdSPSCount (Error: Value not equal)");
11904     };
11905     if (!((!(a->pStdSPSs) && !(b->pStdSPSs)) || ((a->pStdSPSs) && (b->pStdSPSs)))) {
11906         onFail("a->pStdSPSs (Error: Mismatch in optional field)");
11907     };
11908     if (a->pStdSPSs && b->pStdSPSs) {
11909         if (!((a->stdSPSCount) == (b->stdSPSCount))) {
11910             onFail("a->pStdSPSs (Error: Lengths not equal)");
11911         };
11912         if (!((memcmp(a->pStdSPSs, b->pStdSPSs,
11913                       a->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet)) == 0))) {
11914             onFail("a->pStdSPSs (Error: Unequal dyn array)");
11915         };
11916     }
11917     if (!((a->stdPPSCount) == (b->stdPPSCount))) {
11918         onFail("a->stdPPSCount (Error: Value not equal)");
11919     };
11920     if (!((!(a->pStdPPSs) && !(b->pStdPPSs)) || ((a->pStdPPSs) && (b->pStdPPSs)))) {
11921         onFail("a->pStdPPSs (Error: Mismatch in optional field)");
11922     };
11923     if (a->pStdPPSs && b->pStdPPSs) {
11924         if (!((a->stdPPSCount) == (b->stdPPSCount))) {
11925             onFail("a->pStdPPSs (Error: Lengths not equal)");
11926         };
11927         if (!((memcmp(a->pStdPPSs, b->pStdPPSs,
11928                       a->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet)) == 0))) {
11929             onFail("a->pStdPPSs (Error: Unequal dyn array)");
11930         };
11931     }
11932 }
11933 
checkEqual_VkVideoEncodeH265SessionParametersCreateInfoEXT(const VkVideoEncodeH265SessionParametersCreateInfoEXT * a,const VkVideoEncodeH265SessionParametersCreateInfoEXT * b,OnFailCompareFunc onFail)11934 void checkEqual_VkVideoEncodeH265SessionParametersCreateInfoEXT(
11935     const VkVideoEncodeH265SessionParametersCreateInfoEXT* a,
11936     const VkVideoEncodeH265SessionParametersCreateInfoEXT* b, OnFailCompareFunc onFail) {
11937     if (!((a->sType) == (b->sType))) {
11938         onFail("a->sType (Error: Value not equal)");
11939     };
11940     if (a->pNext) {
11941         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11942     }
11943     if (!((a->maxStdVPSCount) == (b->maxStdVPSCount))) {
11944         onFail("a->maxStdVPSCount (Error: Value not equal)");
11945     };
11946     if (!((a->maxStdSPSCount) == (b->maxStdSPSCount))) {
11947         onFail("a->maxStdSPSCount (Error: Value not equal)");
11948     };
11949     if (!((a->maxStdPPSCount) == (b->maxStdPPSCount))) {
11950         onFail("a->maxStdPPSCount (Error: Value not equal)");
11951     };
11952     if (!((!(a->pParametersAddInfo) && !(b->pParametersAddInfo)) ||
11953           ((a->pParametersAddInfo) && (b->pParametersAddInfo)))) {
11954         onFail("a->pParametersAddInfo (Error: Mismatch in optional field)");
11955     };
11956     if (a->pParametersAddInfo && b->pParametersAddInfo) {
11957         if ((a->pParametersAddInfo) && (b->pParametersAddInfo)) {
11958             checkEqual_VkVideoEncodeH265SessionParametersAddInfoEXT(a->pParametersAddInfo,
11959                                                                     b->pParametersAddInfo, onFail);
11960         }
11961     }
11962 }
11963 
checkEqual_VkVideoEncodeH265NaluSliceSegmentInfoEXT(const VkVideoEncodeH265NaluSliceSegmentInfoEXT * a,const VkVideoEncodeH265NaluSliceSegmentInfoEXT * b,OnFailCompareFunc onFail)11964 void checkEqual_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
11965     const VkVideoEncodeH265NaluSliceSegmentInfoEXT* a,
11966     const VkVideoEncodeH265NaluSliceSegmentInfoEXT* b, OnFailCompareFunc onFail) {
11967     if (!((a->sType) == (b->sType))) {
11968         onFail("a->sType (Error: Value not equal)");
11969     };
11970     if (a->pNext) {
11971         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
11972     }
11973     if (!((a->ctbCount) == (b->ctbCount))) {
11974         onFail("a->ctbCount (Error: Value not equal)");
11975     };
11976     if (!((!(a->pStdReferenceFinalLists) && !(b->pStdReferenceFinalLists)) ||
11977           ((a->pStdReferenceFinalLists) && (b->pStdReferenceFinalLists)))) {
11978         onFail("a->pStdReferenceFinalLists (Error: Mismatch in optional field)");
11979     };
11980     if (a->pStdReferenceFinalLists && b->pStdReferenceFinalLists) {
11981         if (!((memcmp(a->pStdReferenceFinalLists, b->pStdReferenceFinalLists,
11982                       sizeof(const StdVideoEncodeH265ReferenceListsInfo)) == 0))) {
11983             onFail("a->pStdReferenceFinalLists (Error: Unequal dyn array)");
11984         };
11985     }
11986     if (!((memcmp(a->pStdSliceSegmentHeader, b->pStdSliceSegmentHeader,
11987                   sizeof(const StdVideoEncodeH265SliceSegmentHeader)) == 0))) {
11988         onFail("a->pStdSliceSegmentHeader (Error: Unequal dyn array)");
11989     };
11990 }
11991 
checkEqual_VkVideoEncodeH265VclFrameInfoEXT(const VkVideoEncodeH265VclFrameInfoEXT * a,const VkVideoEncodeH265VclFrameInfoEXT * b,OnFailCompareFunc onFail)11992 void checkEqual_VkVideoEncodeH265VclFrameInfoEXT(const VkVideoEncodeH265VclFrameInfoEXT* a,
11993                                                  const VkVideoEncodeH265VclFrameInfoEXT* b,
11994                                                  OnFailCompareFunc onFail) {
11995     if (!((a->sType) == (b->sType))) {
11996         onFail("a->sType (Error: Value not equal)");
11997     };
11998     if (a->pNext) {
11999         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12000     }
12001     if (!((!(a->pStdReferenceFinalLists) && !(b->pStdReferenceFinalLists)) ||
12002           ((a->pStdReferenceFinalLists) && (b->pStdReferenceFinalLists)))) {
12003         onFail("a->pStdReferenceFinalLists (Error: Mismatch in optional field)");
12004     };
12005     if (a->pStdReferenceFinalLists && b->pStdReferenceFinalLists) {
12006         if (!((memcmp(a->pStdReferenceFinalLists, b->pStdReferenceFinalLists,
12007                       sizeof(const StdVideoEncodeH265ReferenceListsInfo)) == 0))) {
12008             onFail("a->pStdReferenceFinalLists (Error: Unequal dyn array)");
12009         };
12010     }
12011     if (!((a->naluSliceSegmentEntryCount) == (b->naluSliceSegmentEntryCount))) {
12012         onFail("a->naluSliceSegmentEntryCount (Error: Value not equal)");
12013     };
12014     if ((a->pNaluSliceSegmentEntries) && (b->pNaluSliceSegmentEntries)) {
12015         if (!((a->naluSliceSegmentEntryCount) == (b->naluSliceSegmentEntryCount))) {
12016             onFail("a->pNaluSliceSegmentEntries (Error: Lengths not equal)");
12017         };
12018         if ((a->naluSliceSegmentEntryCount) == (b->naluSliceSegmentEntryCount)) {
12019             if (a) {
12020                 for (uint32_t i = 0; i < (uint32_t)a->naluSliceSegmentEntryCount; ++i) {
12021                     checkEqual_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
12022                         a->pNaluSliceSegmentEntries + i, b->pNaluSliceSegmentEntries + i, onFail);
12023                 }
12024             }
12025         }
12026     }
12027     if (!((memcmp(a->pStdPictureInfo, b->pStdPictureInfo,
12028                   sizeof(const StdVideoEncodeH265PictureInfo)) == 0))) {
12029         onFail("a->pStdPictureInfo (Error: Unequal dyn array)");
12030     };
12031 }
12032 
checkEqual_VkVideoEncodeH265DpbSlotInfoEXT(const VkVideoEncodeH265DpbSlotInfoEXT * a,const VkVideoEncodeH265DpbSlotInfoEXT * b,OnFailCompareFunc onFail)12033 void checkEqual_VkVideoEncodeH265DpbSlotInfoEXT(const VkVideoEncodeH265DpbSlotInfoEXT* a,
12034                                                 const VkVideoEncodeH265DpbSlotInfoEXT* b,
12035                                                 OnFailCompareFunc onFail) {
12036     if (!((a->sType) == (b->sType))) {
12037         onFail("a->sType (Error: Value not equal)");
12038     };
12039     if (a->pNext) {
12040         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12041     }
12042     if (!((memcmp(a->pStdReferenceInfo, b->pStdReferenceInfo,
12043                   sizeof(const StdVideoEncodeH265ReferenceInfo)) == 0))) {
12044         onFail("a->pStdReferenceInfo (Error: Unequal dyn array)");
12045     };
12046 }
12047 
checkEqual_VkVideoEncodeH265ProfileInfoEXT(const VkVideoEncodeH265ProfileInfoEXT * a,const VkVideoEncodeH265ProfileInfoEXT * b,OnFailCompareFunc onFail)12048 void checkEqual_VkVideoEncodeH265ProfileInfoEXT(const VkVideoEncodeH265ProfileInfoEXT* a,
12049                                                 const VkVideoEncodeH265ProfileInfoEXT* b,
12050                                                 OnFailCompareFunc onFail) {
12051     if (!((a->sType) == (b->sType))) {
12052         onFail("a->sType (Error: Value not equal)");
12053     };
12054     if (a->pNext) {
12055         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12056     }
12057     if (!((a->stdProfileIdc) == (b->stdProfileIdc))) {
12058         onFail("a->stdProfileIdc (Error: Value not equal)");
12059     };
12060 }
12061 
checkEqual_VkVideoEncodeH265RateControlInfoEXT(const VkVideoEncodeH265RateControlInfoEXT * a,const VkVideoEncodeH265RateControlInfoEXT * b,OnFailCompareFunc onFail)12062 void checkEqual_VkVideoEncodeH265RateControlInfoEXT(const VkVideoEncodeH265RateControlInfoEXT* a,
12063                                                     const VkVideoEncodeH265RateControlInfoEXT* b,
12064                                                     OnFailCompareFunc onFail) {
12065     if (!((a->sType) == (b->sType))) {
12066         onFail("a->sType (Error: Value not equal)");
12067     };
12068     if (a->pNext) {
12069         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12070     }
12071     if (!((a->gopFrameCount) == (b->gopFrameCount))) {
12072         onFail("a->gopFrameCount (Error: Value not equal)");
12073     };
12074     if (!((a->idrPeriod) == (b->idrPeriod))) {
12075         onFail("a->idrPeriod (Error: Value not equal)");
12076     };
12077     if (!((a->consecutiveBFrameCount) == (b->consecutiveBFrameCount))) {
12078         onFail("a->consecutiveBFrameCount (Error: Value not equal)");
12079     };
12080     if (!((a->rateControlStructure) == (b->rateControlStructure))) {
12081         onFail("a->rateControlStructure (Error: Value not equal)");
12082     };
12083     if (!((a->subLayerCount) == (b->subLayerCount))) {
12084         onFail("a->subLayerCount (Error: Value not equal)");
12085     };
12086 }
12087 
checkEqual_VkVideoEncodeH265QpEXT(const VkVideoEncodeH265QpEXT * a,const VkVideoEncodeH265QpEXT * b,OnFailCompareFunc onFail)12088 void checkEqual_VkVideoEncodeH265QpEXT(const VkVideoEncodeH265QpEXT* a,
12089                                        const VkVideoEncodeH265QpEXT* b, OnFailCompareFunc onFail) {
12090     if (!((a->qpI) == (b->qpI))) {
12091         onFail("a->qpI (Error: Value not equal)");
12092     };
12093     if (!((a->qpP) == (b->qpP))) {
12094         onFail("a->qpP (Error: Value not equal)");
12095     };
12096     if (!((a->qpB) == (b->qpB))) {
12097         onFail("a->qpB (Error: Value not equal)");
12098     };
12099 }
12100 
checkEqual_VkVideoEncodeH265FrameSizeEXT(const VkVideoEncodeH265FrameSizeEXT * a,const VkVideoEncodeH265FrameSizeEXT * b,OnFailCompareFunc onFail)12101 void checkEqual_VkVideoEncodeH265FrameSizeEXT(const VkVideoEncodeH265FrameSizeEXT* a,
12102                                               const VkVideoEncodeH265FrameSizeEXT* b,
12103                                               OnFailCompareFunc onFail) {
12104     if (!((a->frameISize) == (b->frameISize))) {
12105         onFail("a->frameISize (Error: Value not equal)");
12106     };
12107     if (!((a->framePSize) == (b->framePSize))) {
12108         onFail("a->framePSize (Error: Value not equal)");
12109     };
12110     if (!((a->frameBSize) == (b->frameBSize))) {
12111         onFail("a->frameBSize (Error: Value not equal)");
12112     };
12113 }
12114 
checkEqual_VkVideoEncodeH265RateControlLayerInfoEXT(const VkVideoEncodeH265RateControlLayerInfoEXT * a,const VkVideoEncodeH265RateControlLayerInfoEXT * b,OnFailCompareFunc onFail)12115 void checkEqual_VkVideoEncodeH265RateControlLayerInfoEXT(
12116     const VkVideoEncodeH265RateControlLayerInfoEXT* a,
12117     const VkVideoEncodeH265RateControlLayerInfoEXT* b, OnFailCompareFunc onFail) {
12118     if (!((a->sType) == (b->sType))) {
12119         onFail("a->sType (Error: Value not equal)");
12120     };
12121     if (a->pNext) {
12122         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12123     }
12124     if (!((a->temporalId) == (b->temporalId))) {
12125         onFail("a->temporalId (Error: Value not equal)");
12126     };
12127     if (!((a->useInitialRcQp) == (b->useInitialRcQp))) {
12128         onFail("a->useInitialRcQp (Error: Value not equal)");
12129     };
12130     checkEqual_VkVideoEncodeH265QpEXT(&a->initialRcQp, &b->initialRcQp, onFail);
12131     if (!((a->useMinQp) == (b->useMinQp))) {
12132         onFail("a->useMinQp (Error: Value not equal)");
12133     };
12134     checkEqual_VkVideoEncodeH265QpEXT(&a->minQp, &b->minQp, onFail);
12135     if (!((a->useMaxQp) == (b->useMaxQp))) {
12136         onFail("a->useMaxQp (Error: Value not equal)");
12137     };
12138     checkEqual_VkVideoEncodeH265QpEXT(&a->maxQp, &b->maxQp, onFail);
12139     if (!((a->useMaxFrameSize) == (b->useMaxFrameSize))) {
12140         onFail("a->useMaxFrameSize (Error: Value not equal)");
12141     };
12142     checkEqual_VkVideoEncodeH265FrameSizeEXT(&a->maxFrameSize, &b->maxFrameSize, onFail);
12143 }
12144 
12145 #endif
12146 #ifdef VK_AMD_texture_gather_bias_lod
checkEqual_VkTextureLODGatherFormatPropertiesAMD(const VkTextureLODGatherFormatPropertiesAMD * a,const VkTextureLODGatherFormatPropertiesAMD * b,OnFailCompareFunc onFail)12147 void checkEqual_VkTextureLODGatherFormatPropertiesAMD(
12148     const VkTextureLODGatherFormatPropertiesAMD* a, const VkTextureLODGatherFormatPropertiesAMD* b,
12149     OnFailCompareFunc onFail) {
12150     if (!((a->sType) == (b->sType))) {
12151         onFail("a->sType (Error: Value not equal)");
12152     };
12153     if (a->pNext) {
12154         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12155     }
12156     if (!((a->supportsTextureGatherLODBiasAMD) == (b->supportsTextureGatherLODBiasAMD))) {
12157         onFail("a->supportsTextureGatherLODBiasAMD (Error: Value not equal)");
12158     };
12159 }
12160 
12161 #endif
12162 #ifdef VK_AMD_shader_info
checkEqual_VkShaderResourceUsageAMD(const VkShaderResourceUsageAMD * a,const VkShaderResourceUsageAMD * b,OnFailCompareFunc onFail)12163 void checkEqual_VkShaderResourceUsageAMD(const VkShaderResourceUsageAMD* a,
12164                                          const VkShaderResourceUsageAMD* b,
12165                                          OnFailCompareFunc onFail) {
12166     if (!((a->numUsedVgprs) == (b->numUsedVgprs))) {
12167         onFail("a->numUsedVgprs (Error: Value not equal)");
12168     };
12169     if (!((a->numUsedSgprs) == (b->numUsedSgprs))) {
12170         onFail("a->numUsedSgprs (Error: Value not equal)");
12171     };
12172     if (!((a->ldsSizePerLocalWorkGroup) == (b->ldsSizePerLocalWorkGroup))) {
12173         onFail("a->ldsSizePerLocalWorkGroup (Error: Value not equal)");
12174     };
12175     if (!((a->ldsUsageSizeInBytes) == (b->ldsUsageSizeInBytes))) {
12176         onFail("a->ldsUsageSizeInBytes (Error: Value not equal)");
12177     };
12178     if (!((a->scratchMemUsageInBytes) == (b->scratchMemUsageInBytes))) {
12179         onFail("a->scratchMemUsageInBytes (Error: Value not equal)");
12180     };
12181 }
12182 
checkEqual_VkShaderStatisticsInfoAMD(const VkShaderStatisticsInfoAMD * a,const VkShaderStatisticsInfoAMD * b,OnFailCompareFunc onFail)12183 void checkEqual_VkShaderStatisticsInfoAMD(const VkShaderStatisticsInfoAMD* a,
12184                                           const VkShaderStatisticsInfoAMD* b,
12185                                           OnFailCompareFunc onFail) {
12186     if (!((a->shaderStageMask) == (b->shaderStageMask))) {
12187         onFail("a->shaderStageMask (Error: Value not equal)");
12188     };
12189     checkEqual_VkShaderResourceUsageAMD(&a->resourceUsage, &b->resourceUsage, onFail);
12190     if (!((a->numPhysicalVgprs) == (b->numPhysicalVgprs))) {
12191         onFail("a->numPhysicalVgprs (Error: Value not equal)");
12192     };
12193     if (!((a->numPhysicalSgprs) == (b->numPhysicalSgprs))) {
12194         onFail("a->numPhysicalSgprs (Error: Value not equal)");
12195     };
12196     if (!((a->numAvailableVgprs) == (b->numAvailableVgprs))) {
12197         onFail("a->numAvailableVgprs (Error: Value not equal)");
12198     };
12199     if (!((a->numAvailableSgprs) == (b->numAvailableSgprs))) {
12200         onFail("a->numAvailableSgprs (Error: Value not equal)");
12201     };
12202     if (!((memcmp(a->computeWorkGroupSize, b->computeWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
12203         onFail("a->computeWorkGroupSize (Error: Unequal static array)");
12204     };
12205 }
12206 
12207 #endif
12208 #ifdef VK_AMD_shader_image_load_store_lod
12209 #endif
12210 #ifdef VK_GGP_stream_descriptor_surface
checkEqual_VkStreamDescriptorSurfaceCreateInfoGGP(const VkStreamDescriptorSurfaceCreateInfoGGP * a,const VkStreamDescriptorSurfaceCreateInfoGGP * b,OnFailCompareFunc onFail)12211 void checkEqual_VkStreamDescriptorSurfaceCreateInfoGGP(
12212     const VkStreamDescriptorSurfaceCreateInfoGGP* a,
12213     const VkStreamDescriptorSurfaceCreateInfoGGP* b, OnFailCompareFunc onFail) {
12214     if (!((a->sType) == (b->sType))) {
12215         onFail("a->sType (Error: Value not equal)");
12216     };
12217     if (a->pNext) {
12218         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12219     }
12220     if (!((a->flags) == (b->flags))) {
12221         onFail("a->flags (Error: Value not equal)");
12222     };
12223     if (!((a->streamDescriptor) == (b->streamDescriptor))) {
12224         onFail("a->streamDescriptor (Error: Value not equal)");
12225     };
12226 }
12227 
12228 #endif
12229 #ifdef VK_NV_corner_sampled_image
checkEqual_VkPhysicalDeviceCornerSampledImageFeaturesNV(const VkPhysicalDeviceCornerSampledImageFeaturesNV * a,const VkPhysicalDeviceCornerSampledImageFeaturesNV * b,OnFailCompareFunc onFail)12230 void checkEqual_VkPhysicalDeviceCornerSampledImageFeaturesNV(
12231     const VkPhysicalDeviceCornerSampledImageFeaturesNV* a,
12232     const VkPhysicalDeviceCornerSampledImageFeaturesNV* b, OnFailCompareFunc onFail) {
12233     if (!((a->sType) == (b->sType))) {
12234         onFail("a->sType (Error: Value not equal)");
12235     };
12236     if (a->pNext) {
12237         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12238     }
12239     if (!((a->cornerSampledImage) == (b->cornerSampledImage))) {
12240         onFail("a->cornerSampledImage (Error: Value not equal)");
12241     };
12242 }
12243 
12244 #endif
12245 #ifdef VK_IMG_format_pvrtc
12246 #endif
12247 #ifdef VK_NV_external_memory_capabilities
checkEqual_VkExternalImageFormatPropertiesNV(const VkExternalImageFormatPropertiesNV * a,const VkExternalImageFormatPropertiesNV * b,OnFailCompareFunc onFail)12248 void checkEqual_VkExternalImageFormatPropertiesNV(const VkExternalImageFormatPropertiesNV* a,
12249                                                   const VkExternalImageFormatPropertiesNV* b,
12250                                                   OnFailCompareFunc onFail) {
12251     checkEqual_VkImageFormatProperties(&a->imageFormatProperties, &b->imageFormatProperties,
12252                                        onFail);
12253     if (!((a->externalMemoryFeatures) == (b->externalMemoryFeatures))) {
12254         onFail("a->externalMemoryFeatures (Error: Value not equal)");
12255     };
12256     if (!((a->exportFromImportedHandleTypes) == (b->exportFromImportedHandleTypes))) {
12257         onFail("a->exportFromImportedHandleTypes (Error: Value not equal)");
12258     };
12259     if (!((a->compatibleHandleTypes) == (b->compatibleHandleTypes))) {
12260         onFail("a->compatibleHandleTypes (Error: Value not equal)");
12261     };
12262 }
12263 
12264 #endif
12265 #ifdef VK_NV_external_memory
checkEqual_VkExternalMemoryImageCreateInfoNV(const VkExternalMemoryImageCreateInfoNV * a,const VkExternalMemoryImageCreateInfoNV * b,OnFailCompareFunc onFail)12266 void checkEqual_VkExternalMemoryImageCreateInfoNV(const VkExternalMemoryImageCreateInfoNV* a,
12267                                                   const VkExternalMemoryImageCreateInfoNV* b,
12268                                                   OnFailCompareFunc onFail) {
12269     if (!((a->sType) == (b->sType))) {
12270         onFail("a->sType (Error: Value not equal)");
12271     };
12272     if (a->pNext) {
12273         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12274     }
12275     if (!((a->handleTypes) == (b->handleTypes))) {
12276         onFail("a->handleTypes (Error: Value not equal)");
12277     };
12278 }
12279 
checkEqual_VkExportMemoryAllocateInfoNV(const VkExportMemoryAllocateInfoNV * a,const VkExportMemoryAllocateInfoNV * b,OnFailCompareFunc onFail)12280 void checkEqual_VkExportMemoryAllocateInfoNV(const VkExportMemoryAllocateInfoNV* a,
12281                                              const VkExportMemoryAllocateInfoNV* b,
12282                                              OnFailCompareFunc onFail) {
12283     if (!((a->sType) == (b->sType))) {
12284         onFail("a->sType (Error: Value not equal)");
12285     };
12286     if (a->pNext) {
12287         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12288     }
12289     if (!((a->handleTypes) == (b->handleTypes))) {
12290         onFail("a->handleTypes (Error: Value not equal)");
12291     };
12292 }
12293 
12294 #endif
12295 #ifdef VK_NV_external_memory_win32
checkEqual_VkImportMemoryWin32HandleInfoNV(const VkImportMemoryWin32HandleInfoNV * a,const VkImportMemoryWin32HandleInfoNV * b,OnFailCompareFunc onFail)12296 void checkEqual_VkImportMemoryWin32HandleInfoNV(const VkImportMemoryWin32HandleInfoNV* a,
12297                                                 const VkImportMemoryWin32HandleInfoNV* b,
12298                                                 OnFailCompareFunc onFail) {
12299     if (!((a->sType) == (b->sType))) {
12300         onFail("a->sType (Error: Value not equal)");
12301     };
12302     if (a->pNext) {
12303         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12304     }
12305     if (!((a->handleType) == (b->handleType))) {
12306         onFail("a->handleType (Error: Value not equal)");
12307     };
12308     if (!((a->handle) == (b->handle))) {
12309         onFail("a->handle (Error: Value not equal)");
12310     };
12311 }
12312 
checkEqual_VkExportMemoryWin32HandleInfoNV(const VkExportMemoryWin32HandleInfoNV * a,const VkExportMemoryWin32HandleInfoNV * b,OnFailCompareFunc onFail)12313 void checkEqual_VkExportMemoryWin32HandleInfoNV(const VkExportMemoryWin32HandleInfoNV* a,
12314                                                 const VkExportMemoryWin32HandleInfoNV* b,
12315                                                 OnFailCompareFunc onFail) {
12316     if (!((a->sType) == (b->sType))) {
12317         onFail("a->sType (Error: Value not equal)");
12318     };
12319     if (a->pNext) {
12320         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12321     }
12322     if (!((!(a->pAttributes) && !(b->pAttributes)) || ((a->pAttributes) && (b->pAttributes)))) {
12323         onFail("a->pAttributes (Error: Mismatch in optional field)");
12324     };
12325     if (a->pAttributes && b->pAttributes) {
12326         if (!((memcmp(a->pAttributes, b->pAttributes, sizeof(const SECURITY_ATTRIBUTES)) == 0))) {
12327             onFail("a->pAttributes (Error: Unequal dyn array)");
12328         };
12329     }
12330     if (!((a->dwAccess) == (b->dwAccess))) {
12331         onFail("a->dwAccess (Error: Value not equal)");
12332     };
12333 }
12334 
12335 #endif
12336 #ifdef VK_NV_win32_keyed_mutex
checkEqual_VkWin32KeyedMutexAcquireReleaseInfoNV(const VkWin32KeyedMutexAcquireReleaseInfoNV * a,const VkWin32KeyedMutexAcquireReleaseInfoNV * b,OnFailCompareFunc onFail)12337 void checkEqual_VkWin32KeyedMutexAcquireReleaseInfoNV(
12338     const VkWin32KeyedMutexAcquireReleaseInfoNV* a, const VkWin32KeyedMutexAcquireReleaseInfoNV* b,
12339     OnFailCompareFunc onFail) {
12340     if (!((a->sType) == (b->sType))) {
12341         onFail("a->sType (Error: Value not equal)");
12342     };
12343     if (a->pNext) {
12344         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12345     }
12346     if (!((a->acquireCount) == (b->acquireCount))) {
12347         onFail("a->acquireCount (Error: Value not equal)");
12348     };
12349     if (!((a->acquireCount) == (b->acquireCount))) {
12350         onFail("a->pAcquireSyncs (Error: Lengths not equal)");
12351     };
12352     if (!((memcmp(a->pAcquireSyncs, b->pAcquireSyncs,
12353                   a->acquireCount * sizeof(const VkDeviceMemory)) == 0))) {
12354         onFail("a->pAcquireSyncs (Error: Unequal dyn array)");
12355     };
12356     if (!((a->acquireCount) == (b->acquireCount))) {
12357         onFail("a->pAcquireKeys (Error: Lengths not equal)");
12358     };
12359     if (!((memcmp(a->pAcquireKeys, b->pAcquireKeys, a->acquireCount * sizeof(const uint64_t)) ==
12360            0))) {
12361         onFail("a->pAcquireKeys (Error: Unequal dyn array)");
12362     };
12363     if (!((a->acquireCount) == (b->acquireCount))) {
12364         onFail("a->pAcquireTimeoutMilliseconds (Error: Lengths not equal)");
12365     };
12366     if (!((memcmp(a->pAcquireTimeoutMilliseconds, b->pAcquireTimeoutMilliseconds,
12367                   a->acquireCount * sizeof(const uint32_t)) == 0))) {
12368         onFail("a->pAcquireTimeoutMilliseconds (Error: Unequal dyn array)");
12369     };
12370     if (!((a->releaseCount) == (b->releaseCount))) {
12371         onFail("a->releaseCount (Error: Value not equal)");
12372     };
12373     if (!((a->releaseCount) == (b->releaseCount))) {
12374         onFail("a->pReleaseSyncs (Error: Lengths not equal)");
12375     };
12376     if (!((memcmp(a->pReleaseSyncs, b->pReleaseSyncs,
12377                   a->releaseCount * sizeof(const VkDeviceMemory)) == 0))) {
12378         onFail("a->pReleaseSyncs (Error: Unequal dyn array)");
12379     };
12380     if (!((a->releaseCount) == (b->releaseCount))) {
12381         onFail("a->pReleaseKeys (Error: Lengths not equal)");
12382     };
12383     if (!((memcmp(a->pReleaseKeys, b->pReleaseKeys, a->releaseCount * sizeof(const uint64_t)) ==
12384            0))) {
12385         onFail("a->pReleaseKeys (Error: Unequal dyn array)");
12386     };
12387 }
12388 
12389 #endif
12390 #ifdef VK_EXT_validation_flags
checkEqual_VkValidationFlagsEXT(const VkValidationFlagsEXT * a,const VkValidationFlagsEXT * b,OnFailCompareFunc onFail)12391 void checkEqual_VkValidationFlagsEXT(const VkValidationFlagsEXT* a, const VkValidationFlagsEXT* b,
12392                                      OnFailCompareFunc onFail) {
12393     if (!((a->sType) == (b->sType))) {
12394         onFail("a->sType (Error: Value not equal)");
12395     };
12396     if (a->pNext) {
12397         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12398     }
12399     if (!((a->disabledValidationCheckCount) == (b->disabledValidationCheckCount))) {
12400         onFail("a->disabledValidationCheckCount (Error: Value not equal)");
12401     };
12402     if (!((a->disabledValidationCheckCount) == (b->disabledValidationCheckCount))) {
12403         onFail("a->pDisabledValidationChecks (Error: Lengths not equal)");
12404     };
12405     if (!((memcmp(a->pDisabledValidationChecks, b->pDisabledValidationChecks,
12406                   a->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT)) == 0))) {
12407         onFail("a->pDisabledValidationChecks (Error: Unequal dyn array)");
12408     };
12409 }
12410 
12411 #endif
12412 #ifdef VK_NN_vi_surface
checkEqual_VkViSurfaceCreateInfoNN(const VkViSurfaceCreateInfoNN * a,const VkViSurfaceCreateInfoNN * b,OnFailCompareFunc onFail)12413 void checkEqual_VkViSurfaceCreateInfoNN(const VkViSurfaceCreateInfoNN* a,
12414                                         const VkViSurfaceCreateInfoNN* b,
12415                                         OnFailCompareFunc onFail) {
12416     if (!((a->sType) == (b->sType))) {
12417         onFail("a->sType (Error: Value not equal)");
12418     };
12419     if (a->pNext) {
12420         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12421     }
12422     if (!((a->flags) == (b->flags))) {
12423         onFail("a->flags (Error: Value not equal)");
12424     };
12425     if (!((!(a->window) && !(b->window)) || ((a->window) && (b->window)))) {
12426         onFail("a->window (Error: Mismatch in optional field)");
12427     };
12428 }
12429 
12430 #endif
12431 #ifdef VK_EXT_shader_subgroup_ballot
12432 #endif
12433 #ifdef VK_EXT_shader_subgroup_vote
12434 #endif
12435 #ifdef VK_EXT_texture_compression_astc_hdr
12436 #endif
12437 #ifdef VK_EXT_astc_decode_mode
checkEqual_VkImageViewASTCDecodeModeEXT(const VkImageViewASTCDecodeModeEXT * a,const VkImageViewASTCDecodeModeEXT * b,OnFailCompareFunc onFail)12438 void checkEqual_VkImageViewASTCDecodeModeEXT(const VkImageViewASTCDecodeModeEXT* a,
12439                                              const VkImageViewASTCDecodeModeEXT* b,
12440                                              OnFailCompareFunc onFail) {
12441     if (!((a->sType) == (b->sType))) {
12442         onFail("a->sType (Error: Value not equal)");
12443     };
12444     if (a->pNext) {
12445         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12446     }
12447     if (!((a->decodeMode) == (b->decodeMode))) {
12448         onFail("a->decodeMode (Error: Value not equal)");
12449     };
12450 }
12451 
checkEqual_VkPhysicalDeviceASTCDecodeFeaturesEXT(const VkPhysicalDeviceASTCDecodeFeaturesEXT * a,const VkPhysicalDeviceASTCDecodeFeaturesEXT * b,OnFailCompareFunc onFail)12452 void checkEqual_VkPhysicalDeviceASTCDecodeFeaturesEXT(
12453     const VkPhysicalDeviceASTCDecodeFeaturesEXT* a, const VkPhysicalDeviceASTCDecodeFeaturesEXT* b,
12454     OnFailCompareFunc onFail) {
12455     if (!((a->sType) == (b->sType))) {
12456         onFail("a->sType (Error: Value not equal)");
12457     };
12458     if (a->pNext) {
12459         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12460     }
12461     if (!((a->decodeModeSharedExponent) == (b->decodeModeSharedExponent))) {
12462         onFail("a->decodeModeSharedExponent (Error: Value not equal)");
12463     };
12464 }
12465 
12466 #endif
12467 #ifdef VK_EXT_pipeline_robustness
checkEqual_VkPhysicalDevicePipelineRobustnessFeaturesEXT(const VkPhysicalDevicePipelineRobustnessFeaturesEXT * a,const VkPhysicalDevicePipelineRobustnessFeaturesEXT * b,OnFailCompareFunc onFail)12468 void checkEqual_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
12469     const VkPhysicalDevicePipelineRobustnessFeaturesEXT* a,
12470     const VkPhysicalDevicePipelineRobustnessFeaturesEXT* b, OnFailCompareFunc onFail) {
12471     if (!((a->sType) == (b->sType))) {
12472         onFail("a->sType (Error: Value not equal)");
12473     };
12474     if (a->pNext) {
12475         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12476     }
12477     if (!((a->pipelineRobustness) == (b->pipelineRobustness))) {
12478         onFail("a->pipelineRobustness (Error: Value not equal)");
12479     };
12480 }
12481 
checkEqual_VkPhysicalDevicePipelineRobustnessPropertiesEXT(const VkPhysicalDevicePipelineRobustnessPropertiesEXT * a,const VkPhysicalDevicePipelineRobustnessPropertiesEXT * b,OnFailCompareFunc onFail)12482 void checkEqual_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
12483     const VkPhysicalDevicePipelineRobustnessPropertiesEXT* a,
12484     const VkPhysicalDevicePipelineRobustnessPropertiesEXT* b, OnFailCompareFunc onFail) {
12485     if (!((a->sType) == (b->sType))) {
12486         onFail("a->sType (Error: Value not equal)");
12487     };
12488     if (a->pNext) {
12489         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12490     }
12491     if (!((a->defaultRobustnessStorageBuffers) == (b->defaultRobustnessStorageBuffers))) {
12492         onFail("a->defaultRobustnessStorageBuffers (Error: Value not equal)");
12493     };
12494     if (!((a->defaultRobustnessUniformBuffers) == (b->defaultRobustnessUniformBuffers))) {
12495         onFail("a->defaultRobustnessUniformBuffers (Error: Value not equal)");
12496     };
12497     if (!((a->defaultRobustnessVertexInputs) == (b->defaultRobustnessVertexInputs))) {
12498         onFail("a->defaultRobustnessVertexInputs (Error: Value not equal)");
12499     };
12500     if (!((a->defaultRobustnessImages) == (b->defaultRobustnessImages))) {
12501         onFail("a->defaultRobustnessImages (Error: Value not equal)");
12502     };
12503 }
12504 
checkEqual_VkPipelineRobustnessCreateInfoEXT(const VkPipelineRobustnessCreateInfoEXT * a,const VkPipelineRobustnessCreateInfoEXT * b,OnFailCompareFunc onFail)12505 void checkEqual_VkPipelineRobustnessCreateInfoEXT(const VkPipelineRobustnessCreateInfoEXT* a,
12506                                                   const VkPipelineRobustnessCreateInfoEXT* b,
12507                                                   OnFailCompareFunc onFail) {
12508     if (!((a->sType) == (b->sType))) {
12509         onFail("a->sType (Error: Value not equal)");
12510     };
12511     if (a->pNext) {
12512         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12513     }
12514     if (!((a->storageBuffers) == (b->storageBuffers))) {
12515         onFail("a->storageBuffers (Error: Value not equal)");
12516     };
12517     if (!((a->uniformBuffers) == (b->uniformBuffers))) {
12518         onFail("a->uniformBuffers (Error: Value not equal)");
12519     };
12520     if (!((a->vertexInputs) == (b->vertexInputs))) {
12521         onFail("a->vertexInputs (Error: Value not equal)");
12522     };
12523     if (!((a->images) == (b->images))) {
12524         onFail("a->images (Error: Value not equal)");
12525     };
12526 }
12527 
12528 #endif
12529 #ifdef VK_EXT_conditional_rendering
checkEqual_VkConditionalRenderingBeginInfoEXT(const VkConditionalRenderingBeginInfoEXT * a,const VkConditionalRenderingBeginInfoEXT * b,OnFailCompareFunc onFail)12530 void checkEqual_VkConditionalRenderingBeginInfoEXT(const VkConditionalRenderingBeginInfoEXT* a,
12531                                                    const VkConditionalRenderingBeginInfoEXT* b,
12532                                                    OnFailCompareFunc onFail) {
12533     if (!((a->sType) == (b->sType))) {
12534         onFail("a->sType (Error: Value not equal)");
12535     };
12536     if (a->pNext) {
12537         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12538     }
12539     if (!((a->buffer) == (b->buffer))) {
12540         onFail("a->buffer (Error: Value not equal)");
12541     };
12542     if (!((a->offset) == (b->offset))) {
12543         onFail("a->offset (Error: Value not equal)");
12544     };
12545     if (!((a->flags) == (b->flags))) {
12546         onFail("a->flags (Error: Value not equal)");
12547     };
12548 }
12549 
checkEqual_VkPhysicalDeviceConditionalRenderingFeaturesEXT(const VkPhysicalDeviceConditionalRenderingFeaturesEXT * a,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * b,OnFailCompareFunc onFail)12550 void checkEqual_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
12551     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* a,
12552     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* b, OnFailCompareFunc onFail) {
12553     if (!((a->sType) == (b->sType))) {
12554         onFail("a->sType (Error: Value not equal)");
12555     };
12556     if (a->pNext) {
12557         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12558     }
12559     if (!((a->conditionalRendering) == (b->conditionalRendering))) {
12560         onFail("a->conditionalRendering (Error: Value not equal)");
12561     };
12562     if (!((a->inheritedConditionalRendering) == (b->inheritedConditionalRendering))) {
12563         onFail("a->inheritedConditionalRendering (Error: Value not equal)");
12564     };
12565 }
12566 
checkEqual_VkCommandBufferInheritanceConditionalRenderingInfoEXT(const VkCommandBufferInheritanceConditionalRenderingInfoEXT * a,const VkCommandBufferInheritanceConditionalRenderingInfoEXT * b,OnFailCompareFunc onFail)12567 void checkEqual_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
12568     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* a,
12569     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* b, OnFailCompareFunc onFail) {
12570     if (!((a->sType) == (b->sType))) {
12571         onFail("a->sType (Error: Value not equal)");
12572     };
12573     if (a->pNext) {
12574         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12575     }
12576     if (!((a->conditionalRenderingEnable) == (b->conditionalRenderingEnable))) {
12577         onFail("a->conditionalRenderingEnable (Error: Value not equal)");
12578     };
12579 }
12580 
12581 #endif
12582 #ifdef VK_NV_clip_space_w_scaling
checkEqual_VkViewportWScalingNV(const VkViewportWScalingNV * a,const VkViewportWScalingNV * b,OnFailCompareFunc onFail)12583 void checkEqual_VkViewportWScalingNV(const VkViewportWScalingNV* a, const VkViewportWScalingNV* b,
12584                                      OnFailCompareFunc onFail) {
12585     if (!((a->xcoeff) == (b->xcoeff))) {
12586         onFail("a->xcoeff (Error: Value not equal)");
12587     };
12588     if (!((a->ycoeff) == (b->ycoeff))) {
12589         onFail("a->ycoeff (Error: Value not equal)");
12590     };
12591 }
12592 
checkEqual_VkPipelineViewportWScalingStateCreateInfoNV(const VkPipelineViewportWScalingStateCreateInfoNV * a,const VkPipelineViewportWScalingStateCreateInfoNV * b,OnFailCompareFunc onFail)12593 void checkEqual_VkPipelineViewportWScalingStateCreateInfoNV(
12594     const VkPipelineViewportWScalingStateCreateInfoNV* a,
12595     const VkPipelineViewportWScalingStateCreateInfoNV* b, OnFailCompareFunc onFail) {
12596     if (!((a->sType) == (b->sType))) {
12597         onFail("a->sType (Error: Value not equal)");
12598     };
12599     if (a->pNext) {
12600         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12601     }
12602     if (!((a->viewportWScalingEnable) == (b->viewportWScalingEnable))) {
12603         onFail("a->viewportWScalingEnable (Error: Value not equal)");
12604     };
12605     if (!((a->viewportCount) == (b->viewportCount))) {
12606         onFail("a->viewportCount (Error: Value not equal)");
12607     };
12608     if (!((!(a->pViewportWScalings) && !(b->pViewportWScalings)) ||
12609           ((a->pViewportWScalings) && (b->pViewportWScalings)))) {
12610         onFail("a->pViewportWScalings (Error: Mismatch in optional field)");
12611     };
12612     if (a->pViewportWScalings && b->pViewportWScalings) {
12613         if ((a->pViewportWScalings) && (b->pViewportWScalings)) {
12614             if (!((a->viewportCount) == (b->viewportCount))) {
12615                 onFail("a->pViewportWScalings (Error: Lengths not equal)");
12616             };
12617             if ((a->viewportCount) == (b->viewportCount)) {
12618                 if (a) {
12619                     for (uint32_t i = 0; i < (uint32_t)a->viewportCount; ++i) {
12620                         checkEqual_VkViewportWScalingNV(a->pViewportWScalings + i,
12621                                                         b->pViewportWScalings + i, onFail);
12622                     }
12623                 }
12624             }
12625         }
12626     }
12627 }
12628 
12629 #endif
12630 #ifdef VK_EXT_direct_mode_display
12631 #endif
12632 #ifdef VK_EXT_acquire_xlib_display
12633 #endif
12634 #ifdef VK_EXT_display_surface_counter
checkEqual_VkSurfaceCapabilities2EXT(const VkSurfaceCapabilities2EXT * a,const VkSurfaceCapabilities2EXT * b,OnFailCompareFunc onFail)12635 void checkEqual_VkSurfaceCapabilities2EXT(const VkSurfaceCapabilities2EXT* a,
12636                                           const VkSurfaceCapabilities2EXT* b,
12637                                           OnFailCompareFunc onFail) {
12638     if (!((a->sType) == (b->sType))) {
12639         onFail("a->sType (Error: Value not equal)");
12640     };
12641     if (a->pNext) {
12642         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12643     }
12644     if (!((a->minImageCount) == (b->minImageCount))) {
12645         onFail("a->minImageCount (Error: Value not equal)");
12646     };
12647     if (!((a->maxImageCount) == (b->maxImageCount))) {
12648         onFail("a->maxImageCount (Error: Value not equal)");
12649     };
12650     checkEqual_VkExtent2D(&a->currentExtent, &b->currentExtent, onFail);
12651     checkEqual_VkExtent2D(&a->minImageExtent, &b->minImageExtent, onFail);
12652     checkEqual_VkExtent2D(&a->maxImageExtent, &b->maxImageExtent, onFail);
12653     if (!((a->maxImageArrayLayers) == (b->maxImageArrayLayers))) {
12654         onFail("a->maxImageArrayLayers (Error: Value not equal)");
12655     };
12656     if (!((a->supportedTransforms) == (b->supportedTransforms))) {
12657         onFail("a->supportedTransforms (Error: Value not equal)");
12658     };
12659     if (!((a->currentTransform) == (b->currentTransform))) {
12660         onFail("a->currentTransform (Error: Value not equal)");
12661     };
12662     if (!((a->supportedCompositeAlpha) == (b->supportedCompositeAlpha))) {
12663         onFail("a->supportedCompositeAlpha (Error: Value not equal)");
12664     };
12665     if (!((a->supportedUsageFlags) == (b->supportedUsageFlags))) {
12666         onFail("a->supportedUsageFlags (Error: Value not equal)");
12667     };
12668     if (!((a->supportedSurfaceCounters) == (b->supportedSurfaceCounters))) {
12669         onFail("a->supportedSurfaceCounters (Error: Value not equal)");
12670     };
12671 }
12672 
12673 #endif
12674 #ifdef VK_EXT_display_control
checkEqual_VkDisplayPowerInfoEXT(const VkDisplayPowerInfoEXT * a,const VkDisplayPowerInfoEXT * b,OnFailCompareFunc onFail)12675 void checkEqual_VkDisplayPowerInfoEXT(const VkDisplayPowerInfoEXT* a,
12676                                       const VkDisplayPowerInfoEXT* b, OnFailCompareFunc onFail) {
12677     if (!((a->sType) == (b->sType))) {
12678         onFail("a->sType (Error: Value not equal)");
12679     };
12680     if (a->pNext) {
12681         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12682     }
12683     if (!((a->powerState) == (b->powerState))) {
12684         onFail("a->powerState (Error: Value not equal)");
12685     };
12686 }
12687 
checkEqual_VkDeviceEventInfoEXT(const VkDeviceEventInfoEXT * a,const VkDeviceEventInfoEXT * b,OnFailCompareFunc onFail)12688 void checkEqual_VkDeviceEventInfoEXT(const VkDeviceEventInfoEXT* a, const VkDeviceEventInfoEXT* b,
12689                                      OnFailCompareFunc onFail) {
12690     if (!((a->sType) == (b->sType))) {
12691         onFail("a->sType (Error: Value not equal)");
12692     };
12693     if (a->pNext) {
12694         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12695     }
12696     if (!((a->deviceEvent) == (b->deviceEvent))) {
12697         onFail("a->deviceEvent (Error: Value not equal)");
12698     };
12699 }
12700 
checkEqual_VkDisplayEventInfoEXT(const VkDisplayEventInfoEXT * a,const VkDisplayEventInfoEXT * b,OnFailCompareFunc onFail)12701 void checkEqual_VkDisplayEventInfoEXT(const VkDisplayEventInfoEXT* a,
12702                                       const VkDisplayEventInfoEXT* b, OnFailCompareFunc onFail) {
12703     if (!((a->sType) == (b->sType))) {
12704         onFail("a->sType (Error: Value not equal)");
12705     };
12706     if (a->pNext) {
12707         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12708     }
12709     if (!((a->displayEvent) == (b->displayEvent))) {
12710         onFail("a->displayEvent (Error: Value not equal)");
12711     };
12712 }
12713 
checkEqual_VkSwapchainCounterCreateInfoEXT(const VkSwapchainCounterCreateInfoEXT * a,const VkSwapchainCounterCreateInfoEXT * b,OnFailCompareFunc onFail)12714 void checkEqual_VkSwapchainCounterCreateInfoEXT(const VkSwapchainCounterCreateInfoEXT* a,
12715                                                 const VkSwapchainCounterCreateInfoEXT* b,
12716                                                 OnFailCompareFunc onFail) {
12717     if (!((a->sType) == (b->sType))) {
12718         onFail("a->sType (Error: Value not equal)");
12719     };
12720     if (a->pNext) {
12721         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12722     }
12723     if (!((a->surfaceCounters) == (b->surfaceCounters))) {
12724         onFail("a->surfaceCounters (Error: Value not equal)");
12725     };
12726 }
12727 
12728 #endif
12729 #ifdef VK_GOOGLE_display_timing
checkEqual_VkRefreshCycleDurationGOOGLE(const VkRefreshCycleDurationGOOGLE * a,const VkRefreshCycleDurationGOOGLE * b,OnFailCompareFunc onFail)12730 void checkEqual_VkRefreshCycleDurationGOOGLE(const VkRefreshCycleDurationGOOGLE* a,
12731                                              const VkRefreshCycleDurationGOOGLE* b,
12732                                              OnFailCompareFunc onFail) {
12733     if (!((a->refreshDuration) == (b->refreshDuration))) {
12734         onFail("a->refreshDuration (Error: Value not equal)");
12735     };
12736 }
12737 
checkEqual_VkPastPresentationTimingGOOGLE(const VkPastPresentationTimingGOOGLE * a,const VkPastPresentationTimingGOOGLE * b,OnFailCompareFunc onFail)12738 void checkEqual_VkPastPresentationTimingGOOGLE(const VkPastPresentationTimingGOOGLE* a,
12739                                                const VkPastPresentationTimingGOOGLE* b,
12740                                                OnFailCompareFunc onFail) {
12741     if (!((a->presentID) == (b->presentID))) {
12742         onFail("a->presentID (Error: Value not equal)");
12743     };
12744     if (!((a->desiredPresentTime) == (b->desiredPresentTime))) {
12745         onFail("a->desiredPresentTime (Error: Value not equal)");
12746     };
12747     if (!((a->actualPresentTime) == (b->actualPresentTime))) {
12748         onFail("a->actualPresentTime (Error: Value not equal)");
12749     };
12750     if (!((a->earliestPresentTime) == (b->earliestPresentTime))) {
12751         onFail("a->earliestPresentTime (Error: Value not equal)");
12752     };
12753     if (!((a->presentMargin) == (b->presentMargin))) {
12754         onFail("a->presentMargin (Error: Value not equal)");
12755     };
12756 }
12757 
checkEqual_VkPresentTimeGOOGLE(const VkPresentTimeGOOGLE * a,const VkPresentTimeGOOGLE * b,OnFailCompareFunc onFail)12758 void checkEqual_VkPresentTimeGOOGLE(const VkPresentTimeGOOGLE* a, const VkPresentTimeGOOGLE* b,
12759                                     OnFailCompareFunc onFail) {
12760     if (!((a->presentID) == (b->presentID))) {
12761         onFail("a->presentID (Error: Value not equal)");
12762     };
12763     if (!((a->desiredPresentTime) == (b->desiredPresentTime))) {
12764         onFail("a->desiredPresentTime (Error: Value not equal)");
12765     };
12766 }
12767 
checkEqual_VkPresentTimesInfoGOOGLE(const VkPresentTimesInfoGOOGLE * a,const VkPresentTimesInfoGOOGLE * b,OnFailCompareFunc onFail)12768 void checkEqual_VkPresentTimesInfoGOOGLE(const VkPresentTimesInfoGOOGLE* a,
12769                                          const VkPresentTimesInfoGOOGLE* b,
12770                                          OnFailCompareFunc onFail) {
12771     if (!((a->sType) == (b->sType))) {
12772         onFail("a->sType (Error: Value not equal)");
12773     };
12774     if (a->pNext) {
12775         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12776     }
12777     if (!((a->swapchainCount) == (b->swapchainCount))) {
12778         onFail("a->swapchainCount (Error: Value not equal)");
12779     };
12780     if (!((!(a->pTimes) && !(b->pTimes)) || ((a->pTimes) && (b->pTimes)))) {
12781         onFail("a->pTimes (Error: Mismatch in optional field)");
12782     };
12783     if (a->pTimes && b->pTimes) {
12784         if ((a->pTimes) && (b->pTimes)) {
12785             if (!((a->swapchainCount) == (b->swapchainCount))) {
12786                 onFail("a->pTimes (Error: Lengths not equal)");
12787             };
12788             if ((a->swapchainCount) == (b->swapchainCount)) {
12789                 if (a) {
12790                     for (uint32_t i = 0; i < (uint32_t)a->swapchainCount; ++i) {
12791                         checkEqual_VkPresentTimeGOOGLE(a->pTimes + i, b->pTimes + i, onFail);
12792                     }
12793                 }
12794             }
12795         }
12796     }
12797 }
12798 
12799 #endif
12800 #ifdef VK_NV_sample_mask_override_coverage
12801 #endif
12802 #ifdef VK_NV_geometry_shader_passthrough
12803 #endif
12804 #ifdef VK_NV_viewport_array2
12805 #endif
12806 #ifdef VK_NVX_multiview_per_view_attributes
checkEqual_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * a,const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * b,OnFailCompareFunc onFail)12807 void checkEqual_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
12808     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* a,
12809     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* b, OnFailCompareFunc onFail) {
12810     if (!((a->sType) == (b->sType))) {
12811         onFail("a->sType (Error: Value not equal)");
12812     };
12813     if (a->pNext) {
12814         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12815     }
12816     if (!((a->perViewPositionAllComponents) == (b->perViewPositionAllComponents))) {
12817         onFail("a->perViewPositionAllComponents (Error: Value not equal)");
12818     };
12819 }
12820 
12821 #endif
12822 #ifdef VK_NV_viewport_swizzle
checkEqual_VkViewportSwizzleNV(const VkViewportSwizzleNV * a,const VkViewportSwizzleNV * b,OnFailCompareFunc onFail)12823 void checkEqual_VkViewportSwizzleNV(const VkViewportSwizzleNV* a, const VkViewportSwizzleNV* b,
12824                                     OnFailCompareFunc onFail) {
12825     if (!((a->x) == (b->x))) {
12826         onFail("a->x (Error: Value not equal)");
12827     };
12828     if (!((a->y) == (b->y))) {
12829         onFail("a->y (Error: Value not equal)");
12830     };
12831     if (!((a->z) == (b->z))) {
12832         onFail("a->z (Error: Value not equal)");
12833     };
12834     if (!((a->w) == (b->w))) {
12835         onFail("a->w (Error: Value not equal)");
12836     };
12837 }
12838 
checkEqual_VkPipelineViewportSwizzleStateCreateInfoNV(const VkPipelineViewportSwizzleStateCreateInfoNV * a,const VkPipelineViewportSwizzleStateCreateInfoNV * b,OnFailCompareFunc onFail)12839 void checkEqual_VkPipelineViewportSwizzleStateCreateInfoNV(
12840     const VkPipelineViewportSwizzleStateCreateInfoNV* a,
12841     const VkPipelineViewportSwizzleStateCreateInfoNV* b, OnFailCompareFunc onFail) {
12842     if (!((a->sType) == (b->sType))) {
12843         onFail("a->sType (Error: Value not equal)");
12844     };
12845     if (a->pNext) {
12846         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12847     }
12848     if (!((a->flags) == (b->flags))) {
12849         onFail("a->flags (Error: Value not equal)");
12850     };
12851     if (!((a->viewportCount) == (b->viewportCount))) {
12852         onFail("a->viewportCount (Error: Value not equal)");
12853     };
12854     if ((a->pViewportSwizzles) && (b->pViewportSwizzles)) {
12855         if (!((a->viewportCount) == (b->viewportCount))) {
12856             onFail("a->pViewportSwizzles (Error: Lengths not equal)");
12857         };
12858         if ((a->viewportCount) == (b->viewportCount)) {
12859             if (a) {
12860                 for (uint32_t i = 0; i < (uint32_t)a->viewportCount; ++i) {
12861                     checkEqual_VkViewportSwizzleNV(a->pViewportSwizzles + i,
12862                                                    b->pViewportSwizzles + i, onFail);
12863                 }
12864             }
12865         }
12866     }
12867 }
12868 
12869 #endif
12870 #ifdef VK_EXT_discard_rectangles
checkEqual_VkPhysicalDeviceDiscardRectanglePropertiesEXT(const VkPhysicalDeviceDiscardRectanglePropertiesEXT * a,const VkPhysicalDeviceDiscardRectanglePropertiesEXT * b,OnFailCompareFunc onFail)12871 void checkEqual_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
12872     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* a,
12873     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* b, OnFailCompareFunc onFail) {
12874     if (!((a->sType) == (b->sType))) {
12875         onFail("a->sType (Error: Value not equal)");
12876     };
12877     if (a->pNext) {
12878         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12879     }
12880     if (!((a->maxDiscardRectangles) == (b->maxDiscardRectangles))) {
12881         onFail("a->maxDiscardRectangles (Error: Value not equal)");
12882     };
12883 }
12884 
checkEqual_VkPipelineDiscardRectangleStateCreateInfoEXT(const VkPipelineDiscardRectangleStateCreateInfoEXT * a,const VkPipelineDiscardRectangleStateCreateInfoEXT * b,OnFailCompareFunc onFail)12885 void checkEqual_VkPipelineDiscardRectangleStateCreateInfoEXT(
12886     const VkPipelineDiscardRectangleStateCreateInfoEXT* a,
12887     const VkPipelineDiscardRectangleStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
12888     if (!((a->sType) == (b->sType))) {
12889         onFail("a->sType (Error: Value not equal)");
12890     };
12891     if (a->pNext) {
12892         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12893     }
12894     if (!((a->flags) == (b->flags))) {
12895         onFail("a->flags (Error: Value not equal)");
12896     };
12897     if (!((a->discardRectangleMode) == (b->discardRectangleMode))) {
12898         onFail("a->discardRectangleMode (Error: Value not equal)");
12899     };
12900     if (!((a->discardRectangleCount) == (b->discardRectangleCount))) {
12901         onFail("a->discardRectangleCount (Error: Value not equal)");
12902     };
12903     if (!((!(a->pDiscardRectangles) && !(b->pDiscardRectangles)) ||
12904           ((a->pDiscardRectangles) && (b->pDiscardRectangles)))) {
12905         onFail("a->pDiscardRectangles (Error: Mismatch in optional field)");
12906     };
12907     if (a->pDiscardRectangles && b->pDiscardRectangles) {
12908         if ((a->pDiscardRectangles) && (b->pDiscardRectangles)) {
12909             if (!((a->discardRectangleCount) == (b->discardRectangleCount))) {
12910                 onFail("a->pDiscardRectangles (Error: Lengths not equal)");
12911             };
12912             if ((a->discardRectangleCount) == (b->discardRectangleCount)) {
12913                 if (a) {
12914                     for (uint32_t i = 0; i < (uint32_t)a->discardRectangleCount; ++i) {
12915                         checkEqual_VkRect2D(a->pDiscardRectangles + i, b->pDiscardRectangles + i,
12916                                             onFail);
12917                     }
12918                 }
12919             }
12920         }
12921     }
12922 }
12923 
12924 #endif
12925 #ifdef VK_EXT_conservative_rasterization
checkEqual_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * a,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * b,OnFailCompareFunc onFail)12926 void checkEqual_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
12927     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* a,
12928     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* b, OnFailCompareFunc onFail) {
12929     if (!((a->sType) == (b->sType))) {
12930         onFail("a->sType (Error: Value not equal)");
12931     };
12932     if (a->pNext) {
12933         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12934     }
12935     if (!((a->primitiveOverestimationSize) == (b->primitiveOverestimationSize))) {
12936         onFail("a->primitiveOverestimationSize (Error: Value not equal)");
12937     };
12938     if (!((a->maxExtraPrimitiveOverestimationSize) == (b->maxExtraPrimitiveOverestimationSize))) {
12939         onFail("a->maxExtraPrimitiveOverestimationSize (Error: Value not equal)");
12940     };
12941     if (!((a->extraPrimitiveOverestimationSizeGranularity) ==
12942           (b->extraPrimitiveOverestimationSizeGranularity))) {
12943         onFail("a->extraPrimitiveOverestimationSizeGranularity (Error: Value not equal)");
12944     };
12945     if (!((a->primitiveUnderestimation) == (b->primitiveUnderestimation))) {
12946         onFail("a->primitiveUnderestimation (Error: Value not equal)");
12947     };
12948     if (!((a->conservativePointAndLineRasterization) ==
12949           (b->conservativePointAndLineRasterization))) {
12950         onFail("a->conservativePointAndLineRasterization (Error: Value not equal)");
12951     };
12952     if (!((a->degenerateTrianglesRasterized) == (b->degenerateTrianglesRasterized))) {
12953         onFail("a->degenerateTrianglesRasterized (Error: Value not equal)");
12954     };
12955     if (!((a->degenerateLinesRasterized) == (b->degenerateLinesRasterized))) {
12956         onFail("a->degenerateLinesRasterized (Error: Value not equal)");
12957     };
12958     if (!((a->fullyCoveredFragmentShaderInputVariable) ==
12959           (b->fullyCoveredFragmentShaderInputVariable))) {
12960         onFail("a->fullyCoveredFragmentShaderInputVariable (Error: Value not equal)");
12961     };
12962     if (!((a->conservativeRasterizationPostDepthCoverage) ==
12963           (b->conservativeRasterizationPostDepthCoverage))) {
12964         onFail("a->conservativeRasterizationPostDepthCoverage (Error: Value not equal)");
12965     };
12966 }
12967 
checkEqual_VkPipelineRasterizationConservativeStateCreateInfoEXT(const VkPipelineRasterizationConservativeStateCreateInfoEXT * a,const VkPipelineRasterizationConservativeStateCreateInfoEXT * b,OnFailCompareFunc onFail)12968 void checkEqual_VkPipelineRasterizationConservativeStateCreateInfoEXT(
12969     const VkPipelineRasterizationConservativeStateCreateInfoEXT* a,
12970     const VkPipelineRasterizationConservativeStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
12971     if (!((a->sType) == (b->sType))) {
12972         onFail("a->sType (Error: Value not equal)");
12973     };
12974     if (a->pNext) {
12975         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12976     }
12977     if (!((a->flags) == (b->flags))) {
12978         onFail("a->flags (Error: Value not equal)");
12979     };
12980     if (!((a->conservativeRasterizationMode) == (b->conservativeRasterizationMode))) {
12981         onFail("a->conservativeRasterizationMode (Error: Value not equal)");
12982     };
12983     if (!((a->extraPrimitiveOverestimationSize) == (b->extraPrimitiveOverestimationSize))) {
12984         onFail("a->extraPrimitiveOverestimationSize (Error: Value not equal)");
12985     };
12986 }
12987 
12988 #endif
12989 #ifdef VK_EXT_depth_clip_enable
checkEqual_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const VkPhysicalDeviceDepthClipEnableFeaturesEXT * a,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * b,OnFailCompareFunc onFail)12990 void checkEqual_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
12991     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* a,
12992     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* b, OnFailCompareFunc onFail) {
12993     if (!((a->sType) == (b->sType))) {
12994         onFail("a->sType (Error: Value not equal)");
12995     };
12996     if (a->pNext) {
12997         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
12998     }
12999     if (!((a->depthClipEnable) == (b->depthClipEnable))) {
13000         onFail("a->depthClipEnable (Error: Value not equal)");
13001     };
13002 }
13003 
checkEqual_VkPipelineRasterizationDepthClipStateCreateInfoEXT(const VkPipelineRasterizationDepthClipStateCreateInfoEXT * a,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * b,OnFailCompareFunc onFail)13004 void checkEqual_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
13005     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* a,
13006     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
13007     if (!((a->sType) == (b->sType))) {
13008         onFail("a->sType (Error: Value not equal)");
13009     };
13010     if (a->pNext) {
13011         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13012     }
13013     if (!((a->flags) == (b->flags))) {
13014         onFail("a->flags (Error: Value not equal)");
13015     };
13016     if (!((a->depthClipEnable) == (b->depthClipEnable))) {
13017         onFail("a->depthClipEnable (Error: Value not equal)");
13018     };
13019 }
13020 
13021 #endif
13022 #ifdef VK_EXT_swapchain_colorspace
13023 #endif
13024 #ifdef VK_EXT_hdr_metadata
checkEqual_VkXYColorEXT(const VkXYColorEXT * a,const VkXYColorEXT * b,OnFailCompareFunc onFail)13025 void checkEqual_VkXYColorEXT(const VkXYColorEXT* a, const VkXYColorEXT* b,
13026                              OnFailCompareFunc onFail) {
13027     if (!((a->x) == (b->x))) {
13028         onFail("a->x (Error: Value not equal)");
13029     };
13030     if (!((a->y) == (b->y))) {
13031         onFail("a->y (Error: Value not equal)");
13032     };
13033 }
13034 
checkEqual_VkHdrMetadataEXT(const VkHdrMetadataEXT * a,const VkHdrMetadataEXT * b,OnFailCompareFunc onFail)13035 void checkEqual_VkHdrMetadataEXT(const VkHdrMetadataEXT* a, const VkHdrMetadataEXT* b,
13036                                  OnFailCompareFunc onFail) {
13037     if (!((a->sType) == (b->sType))) {
13038         onFail("a->sType (Error: Value not equal)");
13039     };
13040     if (a->pNext) {
13041         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13042     }
13043     checkEqual_VkXYColorEXT(&a->displayPrimaryRed, &b->displayPrimaryRed, onFail);
13044     checkEqual_VkXYColorEXT(&a->displayPrimaryGreen, &b->displayPrimaryGreen, onFail);
13045     checkEqual_VkXYColorEXT(&a->displayPrimaryBlue, &b->displayPrimaryBlue, onFail);
13046     checkEqual_VkXYColorEXT(&a->whitePoint, &b->whitePoint, onFail);
13047     if (!((a->maxLuminance) == (b->maxLuminance))) {
13048         onFail("a->maxLuminance (Error: Value not equal)");
13049     };
13050     if (!((a->minLuminance) == (b->minLuminance))) {
13051         onFail("a->minLuminance (Error: Value not equal)");
13052     };
13053     if (!((a->maxContentLightLevel) == (b->maxContentLightLevel))) {
13054         onFail("a->maxContentLightLevel (Error: Value not equal)");
13055     };
13056     if (!((a->maxFrameAverageLightLevel) == (b->maxFrameAverageLightLevel))) {
13057         onFail("a->maxFrameAverageLightLevel (Error: Value not equal)");
13058     };
13059 }
13060 
13061 #endif
13062 #ifdef VK_MVK_ios_surface
checkEqual_VkIOSSurfaceCreateInfoMVK(const VkIOSSurfaceCreateInfoMVK * a,const VkIOSSurfaceCreateInfoMVK * b,OnFailCompareFunc onFail)13063 void checkEqual_VkIOSSurfaceCreateInfoMVK(const VkIOSSurfaceCreateInfoMVK* a,
13064                                           const VkIOSSurfaceCreateInfoMVK* b,
13065                                           OnFailCompareFunc onFail) {
13066     if (!((a->sType) == (b->sType))) {
13067         onFail("a->sType (Error: Value not equal)");
13068     };
13069     if (a->pNext) {
13070         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13071     }
13072     if (!((a->flags) == (b->flags))) {
13073         onFail("a->flags (Error: Value not equal)");
13074     };
13075     if (!((!(a->pView) && !(b->pView)) || ((a->pView) && (b->pView)))) {
13076         onFail("a->pView (Error: Mismatch in optional field)");
13077     };
13078 }
13079 
13080 #endif
13081 #ifdef VK_MVK_macos_surface
checkEqual_VkMacOSSurfaceCreateInfoMVK(const VkMacOSSurfaceCreateInfoMVK * a,const VkMacOSSurfaceCreateInfoMVK * b,OnFailCompareFunc onFail)13082 void checkEqual_VkMacOSSurfaceCreateInfoMVK(const VkMacOSSurfaceCreateInfoMVK* a,
13083                                             const VkMacOSSurfaceCreateInfoMVK* b,
13084                                             OnFailCompareFunc onFail) {
13085     if (!((a->sType) == (b->sType))) {
13086         onFail("a->sType (Error: Value not equal)");
13087     };
13088     if (a->pNext) {
13089         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13090     }
13091     if (!((a->flags) == (b->flags))) {
13092         onFail("a->flags (Error: Value not equal)");
13093     };
13094     if (!((!(a->pView) && !(b->pView)) || ((a->pView) && (b->pView)))) {
13095         onFail("a->pView (Error: Mismatch in optional field)");
13096     };
13097 }
13098 
13099 #endif
13100 #ifdef VK_EXT_external_memory_dma_buf
13101 #endif
13102 #ifdef VK_EXT_queue_family_foreign
13103 #endif
13104 #ifdef VK_EXT_debug_utils
checkEqual_VkDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT * a,const VkDebugUtilsLabelEXT * b,OnFailCompareFunc onFail)13105 void checkEqual_VkDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* a, const VkDebugUtilsLabelEXT* b,
13106                                      OnFailCompareFunc onFail) {
13107     if (!((a->sType) == (b->sType))) {
13108         onFail("a->sType (Error: Value not equal)");
13109     };
13110     if (a->pNext) {
13111         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13112     }
13113     if (!((!(a->pLabelName) && !(b->pLabelName)) || ((a->pLabelName) && (b->pLabelName)))) {
13114         onFail("a->pLabelName (Error: Mismatch in string pointer nullness)");
13115     };
13116     if ((a->pLabelName) && (b->pLabelName)) {
13117         if (!((strcmp(a->pLabelName, b->pLabelName) == 0))) {
13118             onFail("a->pLabelName (Error: Unequal strings)");
13119         };
13120     }
13121     if (!((memcmp(a->color, b->color, 4 * sizeof(float)) == 0))) {
13122         onFail("a->color (Error: Unequal static array)");
13123     };
13124 }
13125 
checkEqual_VkDebugUtilsObjectNameInfoEXT(const VkDebugUtilsObjectNameInfoEXT * a,const VkDebugUtilsObjectNameInfoEXT * b,OnFailCompareFunc onFail)13126 void checkEqual_VkDebugUtilsObjectNameInfoEXT(const VkDebugUtilsObjectNameInfoEXT* a,
13127                                               const VkDebugUtilsObjectNameInfoEXT* b,
13128                                               OnFailCompareFunc onFail) {
13129     if (!((a->sType) == (b->sType))) {
13130         onFail("a->sType (Error: Value not equal)");
13131     };
13132     if (a->pNext) {
13133         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13134     }
13135     if (!((a->objectType) == (b->objectType))) {
13136         onFail("a->objectType (Error: Value not equal)");
13137     };
13138     if (!((a->objectHandle) == (b->objectHandle))) {
13139         onFail("a->objectHandle (Error: Value not equal)");
13140     };
13141     if (!((!(a->pObjectName) && !(b->pObjectName)) || ((a->pObjectName) && (b->pObjectName)))) {
13142         onFail("a->pObjectName (Error: Mismatch in optional field)");
13143     };
13144     if (a->pObjectName && b->pObjectName) {
13145         if (!((!(a->pObjectName) && !(b->pObjectName)) || ((a->pObjectName) && (b->pObjectName)))) {
13146             onFail("a->pObjectName (Error: Mismatch in string pointer nullness)");
13147         };
13148         if ((a->pObjectName) && (b->pObjectName)) {
13149             if (!((strcmp(a->pObjectName, b->pObjectName) == 0))) {
13150                 onFail("a->pObjectName (Error: Unequal strings)");
13151             };
13152         }
13153     }
13154 }
13155 
checkEqual_VkDebugUtilsMessengerCallbackDataEXT(const VkDebugUtilsMessengerCallbackDataEXT * a,const VkDebugUtilsMessengerCallbackDataEXT * b,OnFailCompareFunc onFail)13156 void checkEqual_VkDebugUtilsMessengerCallbackDataEXT(const VkDebugUtilsMessengerCallbackDataEXT* a,
13157                                                      const VkDebugUtilsMessengerCallbackDataEXT* b,
13158                                                      OnFailCompareFunc onFail) {
13159     if (!((a->sType) == (b->sType))) {
13160         onFail("a->sType (Error: Value not equal)");
13161     };
13162     if (a->pNext) {
13163         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13164     }
13165     if (!((a->flags) == (b->flags))) {
13166         onFail("a->flags (Error: Value not equal)");
13167     };
13168     if (!((!(a->pMessageIdName) && !(b->pMessageIdName)) ||
13169           ((a->pMessageIdName) && (b->pMessageIdName)))) {
13170         onFail("a->pMessageIdName (Error: Mismatch in optional field)");
13171     };
13172     if (a->pMessageIdName && b->pMessageIdName) {
13173         if (!((!(a->pMessageIdName) && !(b->pMessageIdName)) ||
13174               ((a->pMessageIdName) && (b->pMessageIdName)))) {
13175             onFail("a->pMessageIdName (Error: Mismatch in string pointer nullness)");
13176         };
13177         if ((a->pMessageIdName) && (b->pMessageIdName)) {
13178             if (!((strcmp(a->pMessageIdName, b->pMessageIdName) == 0))) {
13179                 onFail("a->pMessageIdName (Error: Unequal strings)");
13180             };
13181         }
13182     }
13183     if (!((a->messageIdNumber) == (b->messageIdNumber))) {
13184         onFail("a->messageIdNumber (Error: Value not equal)");
13185     };
13186     if (!((!(a->pMessage) && !(b->pMessage)) || ((a->pMessage) && (b->pMessage)))) {
13187         onFail("a->pMessage (Error: Mismatch in string pointer nullness)");
13188     };
13189     if ((a->pMessage) && (b->pMessage)) {
13190         if (!((strcmp(a->pMessage, b->pMessage) == 0))) {
13191             onFail("a->pMessage (Error: Unequal strings)");
13192         };
13193     }
13194     if (!((a->queueLabelCount) == (b->queueLabelCount))) {
13195         onFail("a->queueLabelCount (Error: Value not equal)");
13196     };
13197     if ((a->pQueueLabels) && (b->pQueueLabels)) {
13198         if (!((a->queueLabelCount) == (b->queueLabelCount))) {
13199             onFail("a->pQueueLabels (Error: Lengths not equal)");
13200         };
13201         if ((a->queueLabelCount) == (b->queueLabelCount)) {
13202             if (a) {
13203                 for (uint32_t i = 0; i < (uint32_t)a->queueLabelCount; ++i) {
13204                     checkEqual_VkDebugUtilsLabelEXT(a->pQueueLabels + i, b->pQueueLabels + i,
13205                                                     onFail);
13206                 }
13207             }
13208         }
13209     }
13210     if (!((a->cmdBufLabelCount) == (b->cmdBufLabelCount))) {
13211         onFail("a->cmdBufLabelCount (Error: Value not equal)");
13212     };
13213     if ((a->pCmdBufLabels) && (b->pCmdBufLabels)) {
13214         if (!((a->cmdBufLabelCount) == (b->cmdBufLabelCount))) {
13215             onFail("a->pCmdBufLabels (Error: Lengths not equal)");
13216         };
13217         if ((a->cmdBufLabelCount) == (b->cmdBufLabelCount)) {
13218             if (a) {
13219                 for (uint32_t i = 0; i < (uint32_t)a->cmdBufLabelCount; ++i) {
13220                     checkEqual_VkDebugUtilsLabelEXT(a->pCmdBufLabels + i, b->pCmdBufLabels + i,
13221                                                     onFail);
13222                 }
13223             }
13224         }
13225     }
13226     if (!((a->objectCount) == (b->objectCount))) {
13227         onFail("a->objectCount (Error: Value not equal)");
13228     };
13229     if ((a->pObjects) && (b->pObjects)) {
13230         if (!((a->objectCount) == (b->objectCount))) {
13231             onFail("a->pObjects (Error: Lengths not equal)");
13232         };
13233         if ((a->objectCount) == (b->objectCount)) {
13234             if (a) {
13235                 for (uint32_t i = 0; i < (uint32_t)a->objectCount; ++i) {
13236                     checkEqual_VkDebugUtilsObjectNameInfoEXT(a->pObjects + i, b->pObjects + i,
13237                                                              onFail);
13238                 }
13239             }
13240         }
13241     }
13242 }
13243 
checkEqual_VkDebugUtilsMessengerCreateInfoEXT(const VkDebugUtilsMessengerCreateInfoEXT * a,const VkDebugUtilsMessengerCreateInfoEXT * b,OnFailCompareFunc onFail)13244 void checkEqual_VkDebugUtilsMessengerCreateInfoEXT(const VkDebugUtilsMessengerCreateInfoEXT* a,
13245                                                    const VkDebugUtilsMessengerCreateInfoEXT* b,
13246                                                    OnFailCompareFunc onFail) {
13247     if (!((a->sType) == (b->sType))) {
13248         onFail("a->sType (Error: Value not equal)");
13249     };
13250     if (a->pNext) {
13251         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13252     }
13253     if (!((a->flags) == (b->flags))) {
13254         onFail("a->flags (Error: Value not equal)");
13255     };
13256     if (!((a->messageSeverity) == (b->messageSeverity))) {
13257         onFail("a->messageSeverity (Error: Value not equal)");
13258     };
13259     if (!((a->messageType) == (b->messageType))) {
13260         onFail("a->messageType (Error: Value not equal)");
13261     };
13262     if (!((a->pfnUserCallback) == (b->pfnUserCallback))) {
13263         onFail("a->pfnUserCallback (Error: Value not equal)");
13264     };
13265     if (!((!(a->pUserData) && !(b->pUserData)) || ((a->pUserData) && (b->pUserData)))) {
13266         onFail("a->pUserData (Error: Mismatch in optional field)");
13267     };
13268 }
13269 
checkEqual_VkDebugUtilsObjectTagInfoEXT(const VkDebugUtilsObjectTagInfoEXT * a,const VkDebugUtilsObjectTagInfoEXT * b,OnFailCompareFunc onFail)13270 void checkEqual_VkDebugUtilsObjectTagInfoEXT(const VkDebugUtilsObjectTagInfoEXT* a,
13271                                              const VkDebugUtilsObjectTagInfoEXT* b,
13272                                              OnFailCompareFunc onFail) {
13273     if (!((a->sType) == (b->sType))) {
13274         onFail("a->sType (Error: Value not equal)");
13275     };
13276     if (a->pNext) {
13277         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13278     }
13279     if (!((a->objectType) == (b->objectType))) {
13280         onFail("a->objectType (Error: Value not equal)");
13281     };
13282     if (!((a->objectHandle) == (b->objectHandle))) {
13283         onFail("a->objectHandle (Error: Value not equal)");
13284     };
13285     if (!((a->tagName) == (b->tagName))) {
13286         onFail("a->tagName (Error: Value not equal)");
13287     };
13288     if (!((a->tagSize) == (b->tagSize))) {
13289         onFail("a->tagSize (Error: Value not equal)");
13290     };
13291 }
13292 
13293 #endif
13294 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
checkEqual_VkAndroidHardwareBufferUsageANDROID(const VkAndroidHardwareBufferUsageANDROID * a,const VkAndroidHardwareBufferUsageANDROID * b,OnFailCompareFunc onFail)13295 void checkEqual_VkAndroidHardwareBufferUsageANDROID(const VkAndroidHardwareBufferUsageANDROID* a,
13296                                                     const VkAndroidHardwareBufferUsageANDROID* b,
13297                                                     OnFailCompareFunc onFail) {
13298     if (!((a->sType) == (b->sType))) {
13299         onFail("a->sType (Error: Value not equal)");
13300     };
13301     if (a->pNext) {
13302         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13303     }
13304     if (!((a->androidHardwareBufferUsage) == (b->androidHardwareBufferUsage))) {
13305         onFail("a->androidHardwareBufferUsage (Error: Value not equal)");
13306     };
13307 }
13308 
checkEqual_VkAndroidHardwareBufferPropertiesANDROID(const VkAndroidHardwareBufferPropertiesANDROID * a,const VkAndroidHardwareBufferPropertiesANDROID * b,OnFailCompareFunc onFail)13309 void checkEqual_VkAndroidHardwareBufferPropertiesANDROID(
13310     const VkAndroidHardwareBufferPropertiesANDROID* a,
13311     const VkAndroidHardwareBufferPropertiesANDROID* b, OnFailCompareFunc onFail) {
13312     if (!((a->sType) == (b->sType))) {
13313         onFail("a->sType (Error: Value not equal)");
13314     };
13315     if (a->pNext) {
13316         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13317     }
13318     if (!((a->allocationSize) == (b->allocationSize))) {
13319         onFail("a->allocationSize (Error: Value not equal)");
13320     };
13321     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
13322         onFail("a->memoryTypeBits (Error: Value not equal)");
13323     };
13324 }
13325 
checkEqual_VkAndroidHardwareBufferFormatPropertiesANDROID(const VkAndroidHardwareBufferFormatPropertiesANDROID * a,const VkAndroidHardwareBufferFormatPropertiesANDROID * b,OnFailCompareFunc onFail)13326 void checkEqual_VkAndroidHardwareBufferFormatPropertiesANDROID(
13327     const VkAndroidHardwareBufferFormatPropertiesANDROID* a,
13328     const VkAndroidHardwareBufferFormatPropertiesANDROID* b, OnFailCompareFunc onFail) {
13329     if (!((a->sType) == (b->sType))) {
13330         onFail("a->sType (Error: Value not equal)");
13331     };
13332     if (a->pNext) {
13333         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13334     }
13335     if (!((a->format) == (b->format))) {
13336         onFail("a->format (Error: Value not equal)");
13337     };
13338     if (!((a->externalFormat) == (b->externalFormat))) {
13339         onFail("a->externalFormat (Error: Value not equal)");
13340     };
13341     if (!((a->formatFeatures) == (b->formatFeatures))) {
13342         onFail("a->formatFeatures (Error: Value not equal)");
13343     };
13344     checkEqual_VkComponentMapping(&a->samplerYcbcrConversionComponents,
13345                                   &b->samplerYcbcrConversionComponents, onFail);
13346     if (!((a->suggestedYcbcrModel) == (b->suggestedYcbcrModel))) {
13347         onFail("a->suggestedYcbcrModel (Error: Value not equal)");
13348     };
13349     if (!((a->suggestedYcbcrRange) == (b->suggestedYcbcrRange))) {
13350         onFail("a->suggestedYcbcrRange (Error: Value not equal)");
13351     };
13352     if (!((a->suggestedXChromaOffset) == (b->suggestedXChromaOffset))) {
13353         onFail("a->suggestedXChromaOffset (Error: Value not equal)");
13354     };
13355     if (!((a->suggestedYChromaOffset) == (b->suggestedYChromaOffset))) {
13356         onFail("a->suggestedYChromaOffset (Error: Value not equal)");
13357     };
13358 }
13359 
checkEqual_VkImportAndroidHardwareBufferInfoANDROID(const VkImportAndroidHardwareBufferInfoANDROID * a,const VkImportAndroidHardwareBufferInfoANDROID * b,OnFailCompareFunc onFail)13360 void checkEqual_VkImportAndroidHardwareBufferInfoANDROID(
13361     const VkImportAndroidHardwareBufferInfoANDROID* a,
13362     const VkImportAndroidHardwareBufferInfoANDROID* b, OnFailCompareFunc onFail) {
13363     if (!((a->sType) == (b->sType))) {
13364         onFail("a->sType (Error: Value not equal)");
13365     };
13366     if (a->pNext) {
13367         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13368     }
13369     if (!((memcmp(a->buffer, b->buffer, sizeof(AHardwareBuffer)) == 0))) {
13370         onFail("a->buffer (Error: Unequal dyn array)");
13371     };
13372 }
13373 
checkEqual_VkMemoryGetAndroidHardwareBufferInfoANDROID(const VkMemoryGetAndroidHardwareBufferInfoANDROID * a,const VkMemoryGetAndroidHardwareBufferInfoANDROID * b,OnFailCompareFunc onFail)13374 void checkEqual_VkMemoryGetAndroidHardwareBufferInfoANDROID(
13375     const VkMemoryGetAndroidHardwareBufferInfoANDROID* a,
13376     const VkMemoryGetAndroidHardwareBufferInfoANDROID* b, OnFailCompareFunc onFail) {
13377     if (!((a->sType) == (b->sType))) {
13378         onFail("a->sType (Error: Value not equal)");
13379     };
13380     if (a->pNext) {
13381         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13382     }
13383     if (!((a->memory) == (b->memory))) {
13384         onFail("a->memory (Error: Value not equal)");
13385     };
13386 }
13387 
checkEqual_VkExternalFormatANDROID(const VkExternalFormatANDROID * a,const VkExternalFormatANDROID * b,OnFailCompareFunc onFail)13388 void checkEqual_VkExternalFormatANDROID(const VkExternalFormatANDROID* a,
13389                                         const VkExternalFormatANDROID* b,
13390                                         OnFailCompareFunc onFail) {
13391     if (!((a->sType) == (b->sType))) {
13392         onFail("a->sType (Error: Value not equal)");
13393     };
13394     if (a->pNext) {
13395         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13396     }
13397     if (!((a->externalFormat) == (b->externalFormat))) {
13398         onFail("a->externalFormat (Error: Value not equal)");
13399     };
13400 }
13401 
checkEqual_VkAndroidHardwareBufferFormatProperties2ANDROID(const VkAndroidHardwareBufferFormatProperties2ANDROID * a,const VkAndroidHardwareBufferFormatProperties2ANDROID * b,OnFailCompareFunc onFail)13402 void checkEqual_VkAndroidHardwareBufferFormatProperties2ANDROID(
13403     const VkAndroidHardwareBufferFormatProperties2ANDROID* a,
13404     const VkAndroidHardwareBufferFormatProperties2ANDROID* b, OnFailCompareFunc onFail) {
13405     if (!((a->sType) == (b->sType))) {
13406         onFail("a->sType (Error: Value not equal)");
13407     };
13408     if (a->pNext) {
13409         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13410     }
13411     if (!((a->format) == (b->format))) {
13412         onFail("a->format (Error: Value not equal)");
13413     };
13414     if (!((a->externalFormat) == (b->externalFormat))) {
13415         onFail("a->externalFormat (Error: Value not equal)");
13416     };
13417     if (!((a->formatFeatures) == (b->formatFeatures))) {
13418         onFail("a->formatFeatures (Error: Value not equal)");
13419     };
13420     checkEqual_VkComponentMapping(&a->samplerYcbcrConversionComponents,
13421                                   &b->samplerYcbcrConversionComponents, onFail);
13422     if (!((a->suggestedYcbcrModel) == (b->suggestedYcbcrModel))) {
13423         onFail("a->suggestedYcbcrModel (Error: Value not equal)");
13424     };
13425     if (!((a->suggestedYcbcrRange) == (b->suggestedYcbcrRange))) {
13426         onFail("a->suggestedYcbcrRange (Error: Value not equal)");
13427     };
13428     if (!((a->suggestedXChromaOffset) == (b->suggestedXChromaOffset))) {
13429         onFail("a->suggestedXChromaOffset (Error: Value not equal)");
13430     };
13431     if (!((a->suggestedYChromaOffset) == (b->suggestedYChromaOffset))) {
13432         onFail("a->suggestedYChromaOffset (Error: Value not equal)");
13433     };
13434 }
13435 
13436 #endif
13437 #ifdef VK_EXT_sampler_filter_minmax
13438 #endif
13439 #ifdef VK_AMD_gpu_shader_int16
13440 #endif
13441 #ifdef VK_AMD_mixed_attachment_samples
13442 #endif
13443 #ifdef VK_AMD_shader_fragment_mask
13444 #endif
13445 #ifdef VK_EXT_inline_uniform_block
13446 #endif
13447 #ifdef VK_EXT_shader_stencil_export
13448 #endif
13449 #ifdef VK_EXT_sample_locations
checkEqual_VkSampleLocationEXT(const VkSampleLocationEXT * a,const VkSampleLocationEXT * b,OnFailCompareFunc onFail)13450 void checkEqual_VkSampleLocationEXT(const VkSampleLocationEXT* a, const VkSampleLocationEXT* b,
13451                                     OnFailCompareFunc onFail) {
13452     if (!((a->x) == (b->x))) {
13453         onFail("a->x (Error: Value not equal)");
13454     };
13455     if (!((a->y) == (b->y))) {
13456         onFail("a->y (Error: Value not equal)");
13457     };
13458 }
13459 
checkEqual_VkSampleLocationsInfoEXT(const VkSampleLocationsInfoEXT * a,const VkSampleLocationsInfoEXT * b,OnFailCompareFunc onFail)13460 void checkEqual_VkSampleLocationsInfoEXT(const VkSampleLocationsInfoEXT* a,
13461                                          const VkSampleLocationsInfoEXT* b,
13462                                          OnFailCompareFunc onFail) {
13463     if (!((a->sType) == (b->sType))) {
13464         onFail("a->sType (Error: Value not equal)");
13465     };
13466     if (a->pNext) {
13467         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13468     }
13469     if (!((a->sampleLocationsPerPixel) == (b->sampleLocationsPerPixel))) {
13470         onFail("a->sampleLocationsPerPixel (Error: Value not equal)");
13471     };
13472     checkEqual_VkExtent2D(&a->sampleLocationGridSize, &b->sampleLocationGridSize, onFail);
13473     if (!((a->sampleLocationsCount) == (b->sampleLocationsCount))) {
13474         onFail("a->sampleLocationsCount (Error: Value not equal)");
13475     };
13476     if ((a->pSampleLocations) && (b->pSampleLocations)) {
13477         if (!((a->sampleLocationsCount) == (b->sampleLocationsCount))) {
13478             onFail("a->pSampleLocations (Error: Lengths not equal)");
13479         };
13480         if ((a->sampleLocationsCount) == (b->sampleLocationsCount)) {
13481             if (a) {
13482                 for (uint32_t i = 0; i < (uint32_t)a->sampleLocationsCount; ++i) {
13483                     checkEqual_VkSampleLocationEXT(a->pSampleLocations + i, b->pSampleLocations + i,
13484                                                    onFail);
13485                 }
13486             }
13487         }
13488     }
13489 }
13490 
checkEqual_VkAttachmentSampleLocationsEXT(const VkAttachmentSampleLocationsEXT * a,const VkAttachmentSampleLocationsEXT * b,OnFailCompareFunc onFail)13491 void checkEqual_VkAttachmentSampleLocationsEXT(const VkAttachmentSampleLocationsEXT* a,
13492                                                const VkAttachmentSampleLocationsEXT* b,
13493                                                OnFailCompareFunc onFail) {
13494     if (!((a->attachmentIndex) == (b->attachmentIndex))) {
13495         onFail("a->attachmentIndex (Error: Value not equal)");
13496     };
13497     checkEqual_VkSampleLocationsInfoEXT(&a->sampleLocationsInfo, &b->sampleLocationsInfo, onFail);
13498 }
13499 
checkEqual_VkSubpassSampleLocationsEXT(const VkSubpassSampleLocationsEXT * a,const VkSubpassSampleLocationsEXT * b,OnFailCompareFunc onFail)13500 void checkEqual_VkSubpassSampleLocationsEXT(const VkSubpassSampleLocationsEXT* a,
13501                                             const VkSubpassSampleLocationsEXT* b,
13502                                             OnFailCompareFunc onFail) {
13503     if (!((a->subpassIndex) == (b->subpassIndex))) {
13504         onFail("a->subpassIndex (Error: Value not equal)");
13505     };
13506     checkEqual_VkSampleLocationsInfoEXT(&a->sampleLocationsInfo, &b->sampleLocationsInfo, onFail);
13507 }
13508 
checkEqual_VkRenderPassSampleLocationsBeginInfoEXT(const VkRenderPassSampleLocationsBeginInfoEXT * a,const VkRenderPassSampleLocationsBeginInfoEXT * b,OnFailCompareFunc onFail)13509 void checkEqual_VkRenderPassSampleLocationsBeginInfoEXT(
13510     const VkRenderPassSampleLocationsBeginInfoEXT* a,
13511     const VkRenderPassSampleLocationsBeginInfoEXT* b, OnFailCompareFunc onFail) {
13512     if (!((a->sType) == (b->sType))) {
13513         onFail("a->sType (Error: Value not equal)");
13514     };
13515     if (a->pNext) {
13516         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13517     }
13518     if (!((a->attachmentInitialSampleLocationsCount) ==
13519           (b->attachmentInitialSampleLocationsCount))) {
13520         onFail("a->attachmentInitialSampleLocationsCount (Error: Value not equal)");
13521     };
13522     if ((a->pAttachmentInitialSampleLocations) && (b->pAttachmentInitialSampleLocations)) {
13523         if (!((a->attachmentInitialSampleLocationsCount) ==
13524               (b->attachmentInitialSampleLocationsCount))) {
13525             onFail("a->pAttachmentInitialSampleLocations (Error: Lengths not equal)");
13526         };
13527         if ((a->attachmentInitialSampleLocationsCount) ==
13528             (b->attachmentInitialSampleLocationsCount)) {
13529             if (a) {
13530                 for (uint32_t i = 0; i < (uint32_t)a->attachmentInitialSampleLocationsCount; ++i) {
13531                     checkEqual_VkAttachmentSampleLocationsEXT(
13532                         a->pAttachmentInitialSampleLocations + i,
13533                         b->pAttachmentInitialSampleLocations + i, onFail);
13534                 }
13535             }
13536         }
13537     }
13538     if (!((a->postSubpassSampleLocationsCount) == (b->postSubpassSampleLocationsCount))) {
13539         onFail("a->postSubpassSampleLocationsCount (Error: Value not equal)");
13540     };
13541     if ((a->pPostSubpassSampleLocations) && (b->pPostSubpassSampleLocations)) {
13542         if (!((a->postSubpassSampleLocationsCount) == (b->postSubpassSampleLocationsCount))) {
13543             onFail("a->pPostSubpassSampleLocations (Error: Lengths not equal)");
13544         };
13545         if ((a->postSubpassSampleLocationsCount) == (b->postSubpassSampleLocationsCount)) {
13546             if (a) {
13547                 for (uint32_t i = 0; i < (uint32_t)a->postSubpassSampleLocationsCount; ++i) {
13548                     checkEqual_VkSubpassSampleLocationsEXT(a->pPostSubpassSampleLocations + i,
13549                                                            b->pPostSubpassSampleLocations + i,
13550                                                            onFail);
13551                 }
13552             }
13553         }
13554     }
13555 }
13556 
checkEqual_VkPipelineSampleLocationsStateCreateInfoEXT(const VkPipelineSampleLocationsStateCreateInfoEXT * a,const VkPipelineSampleLocationsStateCreateInfoEXT * b,OnFailCompareFunc onFail)13557 void checkEqual_VkPipelineSampleLocationsStateCreateInfoEXT(
13558     const VkPipelineSampleLocationsStateCreateInfoEXT* a,
13559     const VkPipelineSampleLocationsStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
13560     if (!((a->sType) == (b->sType))) {
13561         onFail("a->sType (Error: Value not equal)");
13562     };
13563     if (a->pNext) {
13564         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13565     }
13566     if (!((a->sampleLocationsEnable) == (b->sampleLocationsEnable))) {
13567         onFail("a->sampleLocationsEnable (Error: Value not equal)");
13568     };
13569     checkEqual_VkSampleLocationsInfoEXT(&a->sampleLocationsInfo, &b->sampleLocationsInfo, onFail);
13570 }
13571 
checkEqual_VkPhysicalDeviceSampleLocationsPropertiesEXT(const VkPhysicalDeviceSampleLocationsPropertiesEXT * a,const VkPhysicalDeviceSampleLocationsPropertiesEXT * b,OnFailCompareFunc onFail)13572 void checkEqual_VkPhysicalDeviceSampleLocationsPropertiesEXT(
13573     const VkPhysicalDeviceSampleLocationsPropertiesEXT* a,
13574     const VkPhysicalDeviceSampleLocationsPropertiesEXT* b, OnFailCompareFunc onFail) {
13575     if (!((a->sType) == (b->sType))) {
13576         onFail("a->sType (Error: Value not equal)");
13577     };
13578     if (a->pNext) {
13579         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13580     }
13581     if (!((a->sampleLocationSampleCounts) == (b->sampleLocationSampleCounts))) {
13582         onFail("a->sampleLocationSampleCounts (Error: Value not equal)");
13583     };
13584     checkEqual_VkExtent2D(&a->maxSampleLocationGridSize, &b->maxSampleLocationGridSize, onFail);
13585     if (!((memcmp(a->sampleLocationCoordinateRange, b->sampleLocationCoordinateRange,
13586                   2 * sizeof(float)) == 0))) {
13587         onFail("a->sampleLocationCoordinateRange (Error: Unequal static array)");
13588     };
13589     if (!((a->sampleLocationSubPixelBits) == (b->sampleLocationSubPixelBits))) {
13590         onFail("a->sampleLocationSubPixelBits (Error: Value not equal)");
13591     };
13592     if (!((a->variableSampleLocations) == (b->variableSampleLocations))) {
13593         onFail("a->variableSampleLocations (Error: Value not equal)");
13594     };
13595 }
13596 
checkEqual_VkMultisamplePropertiesEXT(const VkMultisamplePropertiesEXT * a,const VkMultisamplePropertiesEXT * b,OnFailCompareFunc onFail)13597 void checkEqual_VkMultisamplePropertiesEXT(const VkMultisamplePropertiesEXT* a,
13598                                            const VkMultisamplePropertiesEXT* b,
13599                                            OnFailCompareFunc onFail) {
13600     if (!((a->sType) == (b->sType))) {
13601         onFail("a->sType (Error: Value not equal)");
13602     };
13603     if (a->pNext) {
13604         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13605     }
13606     checkEqual_VkExtent2D(&a->maxSampleLocationGridSize, &b->maxSampleLocationGridSize, onFail);
13607 }
13608 
13609 #endif
13610 #ifdef VK_EXT_blend_operation_advanced
checkEqual_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * a,const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * b,OnFailCompareFunc onFail)13611 void checkEqual_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
13612     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* a,
13613     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* b, OnFailCompareFunc onFail) {
13614     if (!((a->sType) == (b->sType))) {
13615         onFail("a->sType (Error: Value not equal)");
13616     };
13617     if (a->pNext) {
13618         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13619     }
13620     if (!((a->advancedBlendCoherentOperations) == (b->advancedBlendCoherentOperations))) {
13621         onFail("a->advancedBlendCoherentOperations (Error: Value not equal)");
13622     };
13623 }
13624 
checkEqual_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * a,const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * b,OnFailCompareFunc onFail)13625 void checkEqual_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
13626     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* a,
13627     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* b, OnFailCompareFunc onFail) {
13628     if (!((a->sType) == (b->sType))) {
13629         onFail("a->sType (Error: Value not equal)");
13630     };
13631     if (a->pNext) {
13632         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13633     }
13634     if (!((a->advancedBlendMaxColorAttachments) == (b->advancedBlendMaxColorAttachments))) {
13635         onFail("a->advancedBlendMaxColorAttachments (Error: Value not equal)");
13636     };
13637     if (!((a->advancedBlendIndependentBlend) == (b->advancedBlendIndependentBlend))) {
13638         onFail("a->advancedBlendIndependentBlend (Error: Value not equal)");
13639     };
13640     if (!((a->advancedBlendNonPremultipliedSrcColor) ==
13641           (b->advancedBlendNonPremultipliedSrcColor))) {
13642         onFail("a->advancedBlendNonPremultipliedSrcColor (Error: Value not equal)");
13643     };
13644     if (!((a->advancedBlendNonPremultipliedDstColor) ==
13645           (b->advancedBlendNonPremultipliedDstColor))) {
13646         onFail("a->advancedBlendNonPremultipliedDstColor (Error: Value not equal)");
13647     };
13648     if (!((a->advancedBlendCorrelatedOverlap) == (b->advancedBlendCorrelatedOverlap))) {
13649         onFail("a->advancedBlendCorrelatedOverlap (Error: Value not equal)");
13650     };
13651     if (!((a->advancedBlendAllOperations) == (b->advancedBlendAllOperations))) {
13652         onFail("a->advancedBlendAllOperations (Error: Value not equal)");
13653     };
13654 }
13655 
checkEqual_VkPipelineColorBlendAdvancedStateCreateInfoEXT(const VkPipelineColorBlendAdvancedStateCreateInfoEXT * a,const VkPipelineColorBlendAdvancedStateCreateInfoEXT * b,OnFailCompareFunc onFail)13656 void checkEqual_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
13657     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* a,
13658     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
13659     if (!((a->sType) == (b->sType))) {
13660         onFail("a->sType (Error: Value not equal)");
13661     };
13662     if (a->pNext) {
13663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13664     }
13665     if (!((a->srcPremultiplied) == (b->srcPremultiplied))) {
13666         onFail("a->srcPremultiplied (Error: Value not equal)");
13667     };
13668     if (!((a->dstPremultiplied) == (b->dstPremultiplied))) {
13669         onFail("a->dstPremultiplied (Error: Value not equal)");
13670     };
13671     if (!((a->blendOverlap) == (b->blendOverlap))) {
13672         onFail("a->blendOverlap (Error: Value not equal)");
13673     };
13674 }
13675 
13676 #endif
13677 #ifdef VK_NV_fragment_coverage_to_color
checkEqual_VkPipelineCoverageToColorStateCreateInfoNV(const VkPipelineCoverageToColorStateCreateInfoNV * a,const VkPipelineCoverageToColorStateCreateInfoNV * b,OnFailCompareFunc onFail)13678 void checkEqual_VkPipelineCoverageToColorStateCreateInfoNV(
13679     const VkPipelineCoverageToColorStateCreateInfoNV* a,
13680     const VkPipelineCoverageToColorStateCreateInfoNV* b, OnFailCompareFunc onFail) {
13681     if (!((a->sType) == (b->sType))) {
13682         onFail("a->sType (Error: Value not equal)");
13683     };
13684     if (a->pNext) {
13685         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13686     }
13687     if (!((a->flags) == (b->flags))) {
13688         onFail("a->flags (Error: Value not equal)");
13689     };
13690     if (!((a->coverageToColorEnable) == (b->coverageToColorEnable))) {
13691         onFail("a->coverageToColorEnable (Error: Value not equal)");
13692     };
13693     if (!((a->coverageToColorLocation) == (b->coverageToColorLocation))) {
13694         onFail("a->coverageToColorLocation (Error: Value not equal)");
13695     };
13696 }
13697 
13698 #endif
13699 #ifdef VK_NV_framebuffer_mixed_samples
checkEqual_VkPipelineCoverageModulationStateCreateInfoNV(const VkPipelineCoverageModulationStateCreateInfoNV * a,const VkPipelineCoverageModulationStateCreateInfoNV * b,OnFailCompareFunc onFail)13700 void checkEqual_VkPipelineCoverageModulationStateCreateInfoNV(
13701     const VkPipelineCoverageModulationStateCreateInfoNV* a,
13702     const VkPipelineCoverageModulationStateCreateInfoNV* b, OnFailCompareFunc onFail) {
13703     if (!((a->sType) == (b->sType))) {
13704         onFail("a->sType (Error: Value not equal)");
13705     };
13706     if (a->pNext) {
13707         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13708     }
13709     if (!((a->flags) == (b->flags))) {
13710         onFail("a->flags (Error: Value not equal)");
13711     };
13712     if (!((a->coverageModulationMode) == (b->coverageModulationMode))) {
13713         onFail("a->coverageModulationMode (Error: Value not equal)");
13714     };
13715     if (!((a->coverageModulationTableEnable) == (b->coverageModulationTableEnable))) {
13716         onFail("a->coverageModulationTableEnable (Error: Value not equal)");
13717     };
13718     if (!((a->coverageModulationTableCount) == (b->coverageModulationTableCount))) {
13719         onFail("a->coverageModulationTableCount (Error: Value not equal)");
13720     };
13721     if (!((!(a->pCoverageModulationTable) && !(b->pCoverageModulationTable)) ||
13722           ((a->pCoverageModulationTable) && (b->pCoverageModulationTable)))) {
13723         onFail("a->pCoverageModulationTable (Error: Mismatch in optional field)");
13724     };
13725     if (a->pCoverageModulationTable && b->pCoverageModulationTable) {
13726         if (!((a->coverageModulationTableCount) == (b->coverageModulationTableCount))) {
13727             onFail("a->pCoverageModulationTable (Error: Lengths not equal)");
13728         };
13729         if (!((memcmp(a->pCoverageModulationTable, b->pCoverageModulationTable,
13730                       a->coverageModulationTableCount * sizeof(const float)) == 0))) {
13731             onFail("a->pCoverageModulationTable (Error: Unequal dyn array)");
13732         };
13733     }
13734 }
13735 
13736 #endif
13737 #ifdef VK_NV_fill_rectangle
13738 #endif
13739 #ifdef VK_NV_shader_sm_builtins
checkEqual_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV * a,const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV * b,OnFailCompareFunc onFail)13740 void checkEqual_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
13741     const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* a,
13742     const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* b, OnFailCompareFunc onFail) {
13743     if (!((a->sType) == (b->sType))) {
13744         onFail("a->sType (Error: Value not equal)");
13745     };
13746     if (a->pNext) {
13747         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13748     }
13749     if (!((a->shaderSMCount) == (b->shaderSMCount))) {
13750         onFail("a->shaderSMCount (Error: Value not equal)");
13751     };
13752     if (!((a->shaderWarpsPerSM) == (b->shaderWarpsPerSM))) {
13753         onFail("a->shaderWarpsPerSM (Error: Value not equal)");
13754     };
13755 }
13756 
checkEqual_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV * a,const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV * b,OnFailCompareFunc onFail)13757 void checkEqual_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
13758     const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* a,
13759     const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* b, OnFailCompareFunc onFail) {
13760     if (!((a->sType) == (b->sType))) {
13761         onFail("a->sType (Error: Value not equal)");
13762     };
13763     if (a->pNext) {
13764         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13765     }
13766     if (!((a->shaderSMBuiltins) == (b->shaderSMBuiltins))) {
13767         onFail("a->shaderSMBuiltins (Error: Value not equal)");
13768     };
13769 }
13770 
13771 #endif
13772 #ifdef VK_EXT_post_depth_coverage
13773 #endif
13774 #ifdef VK_EXT_image_drm_format_modifier
checkEqual_VkDrmFormatModifierPropertiesEXT(const VkDrmFormatModifierPropertiesEXT * a,const VkDrmFormatModifierPropertiesEXT * b,OnFailCompareFunc onFail)13775 void checkEqual_VkDrmFormatModifierPropertiesEXT(const VkDrmFormatModifierPropertiesEXT* a,
13776                                                  const VkDrmFormatModifierPropertiesEXT* b,
13777                                                  OnFailCompareFunc onFail) {
13778     if (!((a->drmFormatModifier) == (b->drmFormatModifier))) {
13779         onFail("a->drmFormatModifier (Error: Value not equal)");
13780     };
13781     if (!((a->drmFormatModifierPlaneCount) == (b->drmFormatModifierPlaneCount))) {
13782         onFail("a->drmFormatModifierPlaneCount (Error: Value not equal)");
13783     };
13784     if (!((a->drmFormatModifierTilingFeatures) == (b->drmFormatModifierTilingFeatures))) {
13785         onFail("a->drmFormatModifierTilingFeatures (Error: Value not equal)");
13786     };
13787 }
13788 
checkEqual_VkDrmFormatModifierPropertiesListEXT(const VkDrmFormatModifierPropertiesListEXT * a,const VkDrmFormatModifierPropertiesListEXT * b,OnFailCompareFunc onFail)13789 void checkEqual_VkDrmFormatModifierPropertiesListEXT(const VkDrmFormatModifierPropertiesListEXT* a,
13790                                                      const VkDrmFormatModifierPropertiesListEXT* b,
13791                                                      OnFailCompareFunc onFail) {
13792     if (!((a->sType) == (b->sType))) {
13793         onFail("a->sType (Error: Value not equal)");
13794     };
13795     if (a->pNext) {
13796         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13797     }
13798     if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13799         onFail("a->drmFormatModifierCount (Error: Value not equal)");
13800     };
13801     if (!((!(a->pDrmFormatModifierProperties) && !(b->pDrmFormatModifierProperties)) ||
13802           ((a->pDrmFormatModifierProperties) && (b->pDrmFormatModifierProperties)))) {
13803         onFail("a->pDrmFormatModifierProperties (Error: Mismatch in optional field)");
13804     };
13805     if (a->pDrmFormatModifierProperties && b->pDrmFormatModifierProperties) {
13806         if ((a->pDrmFormatModifierProperties) && (b->pDrmFormatModifierProperties)) {
13807             if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13808                 onFail("a->pDrmFormatModifierProperties (Error: Lengths not equal)");
13809             };
13810             if ((a->drmFormatModifierCount) == (b->drmFormatModifierCount)) {
13811                 if (a) {
13812                     for (uint32_t i = 0; i < (uint32_t)a->drmFormatModifierCount; ++i) {
13813                         checkEqual_VkDrmFormatModifierPropertiesEXT(
13814                             a->pDrmFormatModifierProperties + i,
13815                             b->pDrmFormatModifierProperties + i, onFail);
13816                     }
13817                 }
13818             }
13819         }
13820     }
13821 }
13822 
checkEqual_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * a,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * b,OnFailCompareFunc onFail)13823 void checkEqual_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
13824     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* a,
13825     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* b, OnFailCompareFunc onFail) {
13826     if (!((a->sType) == (b->sType))) {
13827         onFail("a->sType (Error: Value not equal)");
13828     };
13829     if (a->pNext) {
13830         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13831     }
13832     if (!((a->drmFormatModifier) == (b->drmFormatModifier))) {
13833         onFail("a->drmFormatModifier (Error: Value not equal)");
13834     };
13835     if (!((a->sharingMode) == (b->sharingMode))) {
13836         onFail("a->sharingMode (Error: Value not equal)");
13837     };
13838     if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
13839         onFail("a->queueFamilyIndexCount (Error: Value not equal)");
13840     };
13841     if (!((!(a->pQueueFamilyIndices) && !(b->pQueueFamilyIndices)) ||
13842           ((a->pQueueFamilyIndices) && (b->pQueueFamilyIndices)))) {
13843         onFail("a->pQueueFamilyIndices (Error: Mismatch in optional field)");
13844     };
13845     if (a->pQueueFamilyIndices && b->pQueueFamilyIndices) {
13846         if (!((a->queueFamilyIndexCount) == (b->queueFamilyIndexCount))) {
13847             onFail("a->pQueueFamilyIndices (Error: Lengths not equal)");
13848         };
13849         if (!((memcmp(a->pQueueFamilyIndices, b->pQueueFamilyIndices,
13850                       a->queueFamilyIndexCount * sizeof(const uint32_t)) == 0))) {
13851             onFail("a->pQueueFamilyIndices (Error: Unequal dyn array)");
13852         };
13853     }
13854 }
13855 
checkEqual_VkImageDrmFormatModifierListCreateInfoEXT(const VkImageDrmFormatModifierListCreateInfoEXT * a,const VkImageDrmFormatModifierListCreateInfoEXT * b,OnFailCompareFunc onFail)13856 void checkEqual_VkImageDrmFormatModifierListCreateInfoEXT(
13857     const VkImageDrmFormatModifierListCreateInfoEXT* a,
13858     const VkImageDrmFormatModifierListCreateInfoEXT* b, OnFailCompareFunc onFail) {
13859     if (!((a->sType) == (b->sType))) {
13860         onFail("a->sType (Error: Value not equal)");
13861     };
13862     if (a->pNext) {
13863         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13864     }
13865     if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13866         onFail("a->drmFormatModifierCount (Error: Value not equal)");
13867     };
13868     if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13869         onFail("a->pDrmFormatModifiers (Error: Lengths not equal)");
13870     };
13871     if (!((memcmp(a->pDrmFormatModifiers, b->pDrmFormatModifiers,
13872                   a->drmFormatModifierCount * sizeof(const uint64_t)) == 0))) {
13873         onFail("a->pDrmFormatModifiers (Error: Unequal dyn array)");
13874     };
13875 }
13876 
checkEqual_VkImageDrmFormatModifierExplicitCreateInfoEXT(const VkImageDrmFormatModifierExplicitCreateInfoEXT * a,const VkImageDrmFormatModifierExplicitCreateInfoEXT * b,OnFailCompareFunc onFail)13877 void checkEqual_VkImageDrmFormatModifierExplicitCreateInfoEXT(
13878     const VkImageDrmFormatModifierExplicitCreateInfoEXT* a,
13879     const VkImageDrmFormatModifierExplicitCreateInfoEXT* b, OnFailCompareFunc onFail) {
13880     if (!((a->sType) == (b->sType))) {
13881         onFail("a->sType (Error: Value not equal)");
13882     };
13883     if (a->pNext) {
13884         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13885     }
13886     if (!((a->drmFormatModifier) == (b->drmFormatModifier))) {
13887         onFail("a->drmFormatModifier (Error: Value not equal)");
13888     };
13889     if (!((a->drmFormatModifierPlaneCount) == (b->drmFormatModifierPlaneCount))) {
13890         onFail("a->drmFormatModifierPlaneCount (Error: Value not equal)");
13891     };
13892     if ((a->pPlaneLayouts) && (b->pPlaneLayouts)) {
13893         if (!((a->drmFormatModifierPlaneCount) == (b->drmFormatModifierPlaneCount))) {
13894             onFail("a->pPlaneLayouts (Error: Lengths not equal)");
13895         };
13896         if ((a->drmFormatModifierPlaneCount) == (b->drmFormatModifierPlaneCount)) {
13897             if (a) {
13898                 for (uint32_t i = 0; i < (uint32_t)a->drmFormatModifierPlaneCount; ++i) {
13899                     checkEqual_VkSubresourceLayout(a->pPlaneLayouts + i, b->pPlaneLayouts + i,
13900                                                    onFail);
13901                 }
13902             }
13903         }
13904     }
13905 }
13906 
checkEqual_VkImageDrmFormatModifierPropertiesEXT(const VkImageDrmFormatModifierPropertiesEXT * a,const VkImageDrmFormatModifierPropertiesEXT * b,OnFailCompareFunc onFail)13907 void checkEqual_VkImageDrmFormatModifierPropertiesEXT(
13908     const VkImageDrmFormatModifierPropertiesEXT* a, const VkImageDrmFormatModifierPropertiesEXT* b,
13909     OnFailCompareFunc onFail) {
13910     if (!((a->sType) == (b->sType))) {
13911         onFail("a->sType (Error: Value not equal)");
13912     };
13913     if (a->pNext) {
13914         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13915     }
13916     if (!((a->drmFormatModifier) == (b->drmFormatModifier))) {
13917         onFail("a->drmFormatModifier (Error: Value not equal)");
13918     };
13919 }
13920 
checkEqual_VkDrmFormatModifierProperties2EXT(const VkDrmFormatModifierProperties2EXT * a,const VkDrmFormatModifierProperties2EXT * b,OnFailCompareFunc onFail)13921 void checkEqual_VkDrmFormatModifierProperties2EXT(const VkDrmFormatModifierProperties2EXT* a,
13922                                                   const VkDrmFormatModifierProperties2EXT* b,
13923                                                   OnFailCompareFunc onFail) {
13924     if (!((a->drmFormatModifier) == (b->drmFormatModifier))) {
13925         onFail("a->drmFormatModifier (Error: Value not equal)");
13926     };
13927     if (!((a->drmFormatModifierPlaneCount) == (b->drmFormatModifierPlaneCount))) {
13928         onFail("a->drmFormatModifierPlaneCount (Error: Value not equal)");
13929     };
13930     if (!((a->drmFormatModifierTilingFeatures) == (b->drmFormatModifierTilingFeatures))) {
13931         onFail("a->drmFormatModifierTilingFeatures (Error: Value not equal)");
13932     };
13933 }
13934 
checkEqual_VkDrmFormatModifierPropertiesList2EXT(const VkDrmFormatModifierPropertiesList2EXT * a,const VkDrmFormatModifierPropertiesList2EXT * b,OnFailCompareFunc onFail)13935 void checkEqual_VkDrmFormatModifierPropertiesList2EXT(
13936     const VkDrmFormatModifierPropertiesList2EXT* a, const VkDrmFormatModifierPropertiesList2EXT* b,
13937     OnFailCompareFunc onFail) {
13938     if (!((a->sType) == (b->sType))) {
13939         onFail("a->sType (Error: Value not equal)");
13940     };
13941     if (a->pNext) {
13942         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13943     }
13944     if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13945         onFail("a->drmFormatModifierCount (Error: Value not equal)");
13946     };
13947     if (!((!(a->pDrmFormatModifierProperties) && !(b->pDrmFormatModifierProperties)) ||
13948           ((a->pDrmFormatModifierProperties) && (b->pDrmFormatModifierProperties)))) {
13949         onFail("a->pDrmFormatModifierProperties (Error: Mismatch in optional field)");
13950     };
13951     if (a->pDrmFormatModifierProperties && b->pDrmFormatModifierProperties) {
13952         if ((a->pDrmFormatModifierProperties) && (b->pDrmFormatModifierProperties)) {
13953             if (!((a->drmFormatModifierCount) == (b->drmFormatModifierCount))) {
13954                 onFail("a->pDrmFormatModifierProperties (Error: Lengths not equal)");
13955             };
13956             if ((a->drmFormatModifierCount) == (b->drmFormatModifierCount)) {
13957                 if (a) {
13958                     for (uint32_t i = 0; i < (uint32_t)a->drmFormatModifierCount; ++i) {
13959                         checkEqual_VkDrmFormatModifierProperties2EXT(
13960                             a->pDrmFormatModifierProperties + i,
13961                             b->pDrmFormatModifierProperties + i, onFail);
13962                     }
13963                 }
13964             }
13965         }
13966     }
13967 }
13968 
13969 #endif
13970 #ifdef VK_EXT_validation_cache
checkEqual_VkValidationCacheCreateInfoEXT(const VkValidationCacheCreateInfoEXT * a,const VkValidationCacheCreateInfoEXT * b,OnFailCompareFunc onFail)13971 void checkEqual_VkValidationCacheCreateInfoEXT(const VkValidationCacheCreateInfoEXT* a,
13972                                                const VkValidationCacheCreateInfoEXT* b,
13973                                                OnFailCompareFunc onFail) {
13974     if (!((a->sType) == (b->sType))) {
13975         onFail("a->sType (Error: Value not equal)");
13976     };
13977     if (a->pNext) {
13978         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13979     }
13980     if (!((a->flags) == (b->flags))) {
13981         onFail("a->flags (Error: Value not equal)");
13982     };
13983     if (!((a->initialDataSize) == (b->initialDataSize))) {
13984         onFail("a->initialDataSize (Error: Value not equal)");
13985     };
13986 }
13987 
checkEqual_VkShaderModuleValidationCacheCreateInfoEXT(const VkShaderModuleValidationCacheCreateInfoEXT * a,const VkShaderModuleValidationCacheCreateInfoEXT * b,OnFailCompareFunc onFail)13988 void checkEqual_VkShaderModuleValidationCacheCreateInfoEXT(
13989     const VkShaderModuleValidationCacheCreateInfoEXT* a,
13990     const VkShaderModuleValidationCacheCreateInfoEXT* b, OnFailCompareFunc onFail) {
13991     if (!((a->sType) == (b->sType))) {
13992         onFail("a->sType (Error: Value not equal)");
13993     };
13994     if (a->pNext) {
13995         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
13996     }
13997     if (!((a->validationCache) == (b->validationCache))) {
13998         onFail("a->validationCache (Error: Value not equal)");
13999     };
14000 }
14001 
14002 #endif
14003 #ifdef VK_EXT_descriptor_indexing
14004 #endif
14005 #ifdef VK_EXT_shader_viewport_index_layer
14006 #endif
14007 #ifdef VK_NV_shading_rate_image
checkEqual_VkShadingRatePaletteNV(const VkShadingRatePaletteNV * a,const VkShadingRatePaletteNV * b,OnFailCompareFunc onFail)14008 void checkEqual_VkShadingRatePaletteNV(const VkShadingRatePaletteNV* a,
14009                                        const VkShadingRatePaletteNV* b, OnFailCompareFunc onFail) {
14010     if (!((a->shadingRatePaletteEntryCount) == (b->shadingRatePaletteEntryCount))) {
14011         onFail("a->shadingRatePaletteEntryCount (Error: Value not equal)");
14012     };
14013     if (!((a->shadingRatePaletteEntryCount) == (b->shadingRatePaletteEntryCount))) {
14014         onFail("a->pShadingRatePaletteEntries (Error: Lengths not equal)");
14015     };
14016     if (!((memcmp(a->pShadingRatePaletteEntries, b->pShadingRatePaletteEntries,
14017                   a->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV)) ==
14018            0))) {
14019         onFail("a->pShadingRatePaletteEntries (Error: Unequal dyn array)");
14020     };
14021 }
14022 
checkEqual_VkPipelineViewportShadingRateImageStateCreateInfoNV(const VkPipelineViewportShadingRateImageStateCreateInfoNV * a,const VkPipelineViewportShadingRateImageStateCreateInfoNV * b,OnFailCompareFunc onFail)14023 void checkEqual_VkPipelineViewportShadingRateImageStateCreateInfoNV(
14024     const VkPipelineViewportShadingRateImageStateCreateInfoNV* a,
14025     const VkPipelineViewportShadingRateImageStateCreateInfoNV* b, OnFailCompareFunc onFail) {
14026     if (!((a->sType) == (b->sType))) {
14027         onFail("a->sType (Error: Value not equal)");
14028     };
14029     if (a->pNext) {
14030         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14031     }
14032     if (!((a->shadingRateImageEnable) == (b->shadingRateImageEnable))) {
14033         onFail("a->shadingRateImageEnable (Error: Value not equal)");
14034     };
14035     if (!((a->viewportCount) == (b->viewportCount))) {
14036         onFail("a->viewportCount (Error: Value not equal)");
14037     };
14038     if (!((!(a->pShadingRatePalettes) && !(b->pShadingRatePalettes)) ||
14039           ((a->pShadingRatePalettes) && (b->pShadingRatePalettes)))) {
14040         onFail("a->pShadingRatePalettes (Error: Mismatch in optional field)");
14041     };
14042     if (a->pShadingRatePalettes && b->pShadingRatePalettes) {
14043         if ((a->pShadingRatePalettes) && (b->pShadingRatePalettes)) {
14044             if (!((a->viewportCount) == (b->viewportCount))) {
14045                 onFail("a->pShadingRatePalettes (Error: Lengths not equal)");
14046             };
14047             if ((a->viewportCount) == (b->viewportCount)) {
14048                 if (a) {
14049                     for (uint32_t i = 0; i < (uint32_t)a->viewportCount; ++i) {
14050                         checkEqual_VkShadingRatePaletteNV(a->pShadingRatePalettes + i,
14051                                                           b->pShadingRatePalettes + i, onFail);
14052                     }
14053                 }
14054             }
14055         }
14056     }
14057 }
14058 
checkEqual_VkPhysicalDeviceShadingRateImageFeaturesNV(const VkPhysicalDeviceShadingRateImageFeaturesNV * a,const VkPhysicalDeviceShadingRateImageFeaturesNV * b,OnFailCompareFunc onFail)14059 void checkEqual_VkPhysicalDeviceShadingRateImageFeaturesNV(
14060     const VkPhysicalDeviceShadingRateImageFeaturesNV* a,
14061     const VkPhysicalDeviceShadingRateImageFeaturesNV* b, OnFailCompareFunc onFail) {
14062     if (!((a->sType) == (b->sType))) {
14063         onFail("a->sType (Error: Value not equal)");
14064     };
14065     if (a->pNext) {
14066         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14067     }
14068     if (!((a->shadingRateImage) == (b->shadingRateImage))) {
14069         onFail("a->shadingRateImage (Error: Value not equal)");
14070     };
14071     if (!((a->shadingRateCoarseSampleOrder) == (b->shadingRateCoarseSampleOrder))) {
14072         onFail("a->shadingRateCoarseSampleOrder (Error: Value not equal)");
14073     };
14074 }
14075 
checkEqual_VkPhysicalDeviceShadingRateImagePropertiesNV(const VkPhysicalDeviceShadingRateImagePropertiesNV * a,const VkPhysicalDeviceShadingRateImagePropertiesNV * b,OnFailCompareFunc onFail)14076 void checkEqual_VkPhysicalDeviceShadingRateImagePropertiesNV(
14077     const VkPhysicalDeviceShadingRateImagePropertiesNV* a,
14078     const VkPhysicalDeviceShadingRateImagePropertiesNV* b, OnFailCompareFunc onFail) {
14079     if (!((a->sType) == (b->sType))) {
14080         onFail("a->sType (Error: Value not equal)");
14081     };
14082     if (a->pNext) {
14083         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14084     }
14085     checkEqual_VkExtent2D(&a->shadingRateTexelSize, &b->shadingRateTexelSize, onFail);
14086     if (!((a->shadingRatePaletteSize) == (b->shadingRatePaletteSize))) {
14087         onFail("a->shadingRatePaletteSize (Error: Value not equal)");
14088     };
14089     if (!((a->shadingRateMaxCoarseSamples) == (b->shadingRateMaxCoarseSamples))) {
14090         onFail("a->shadingRateMaxCoarseSamples (Error: Value not equal)");
14091     };
14092 }
14093 
checkEqual_VkCoarseSampleLocationNV(const VkCoarseSampleLocationNV * a,const VkCoarseSampleLocationNV * b,OnFailCompareFunc onFail)14094 void checkEqual_VkCoarseSampleLocationNV(const VkCoarseSampleLocationNV* a,
14095                                          const VkCoarseSampleLocationNV* b,
14096                                          OnFailCompareFunc onFail) {
14097     if (!((a->pixelX) == (b->pixelX))) {
14098         onFail("a->pixelX (Error: Value not equal)");
14099     };
14100     if (!((a->pixelY) == (b->pixelY))) {
14101         onFail("a->pixelY (Error: Value not equal)");
14102     };
14103     if (!((a->sample) == (b->sample))) {
14104         onFail("a->sample (Error: Value not equal)");
14105     };
14106 }
14107 
checkEqual_VkCoarseSampleOrderCustomNV(const VkCoarseSampleOrderCustomNV * a,const VkCoarseSampleOrderCustomNV * b,OnFailCompareFunc onFail)14108 void checkEqual_VkCoarseSampleOrderCustomNV(const VkCoarseSampleOrderCustomNV* a,
14109                                             const VkCoarseSampleOrderCustomNV* b,
14110                                             OnFailCompareFunc onFail) {
14111     if (!((a->shadingRate) == (b->shadingRate))) {
14112         onFail("a->shadingRate (Error: Value not equal)");
14113     };
14114     if (!((a->sampleCount) == (b->sampleCount))) {
14115         onFail("a->sampleCount (Error: Value not equal)");
14116     };
14117     if (!((a->sampleLocationCount) == (b->sampleLocationCount))) {
14118         onFail("a->sampleLocationCount (Error: Value not equal)");
14119     };
14120     if ((a->pSampleLocations) && (b->pSampleLocations)) {
14121         if (!((a->sampleLocationCount) == (b->sampleLocationCount))) {
14122             onFail("a->pSampleLocations (Error: Lengths not equal)");
14123         };
14124         if ((a->sampleLocationCount) == (b->sampleLocationCount)) {
14125             if (a) {
14126                 for (uint32_t i = 0; i < (uint32_t)a->sampleLocationCount; ++i) {
14127                     checkEqual_VkCoarseSampleLocationNV(a->pSampleLocations + i,
14128                                                         b->pSampleLocations + i, onFail);
14129                 }
14130             }
14131         }
14132     }
14133 }
14134 
checkEqual_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV * a,const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV * b,OnFailCompareFunc onFail)14135 void checkEqual_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
14136     const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* a,
14137     const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* b, OnFailCompareFunc onFail) {
14138     if (!((a->sType) == (b->sType))) {
14139         onFail("a->sType (Error: Value not equal)");
14140     };
14141     if (a->pNext) {
14142         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14143     }
14144     if (!((a->sampleOrderType) == (b->sampleOrderType))) {
14145         onFail("a->sampleOrderType (Error: Value not equal)");
14146     };
14147     if (!((a->customSampleOrderCount) == (b->customSampleOrderCount))) {
14148         onFail("a->customSampleOrderCount (Error: Value not equal)");
14149     };
14150     if ((a->pCustomSampleOrders) && (b->pCustomSampleOrders)) {
14151         if (!((a->customSampleOrderCount) == (b->customSampleOrderCount))) {
14152             onFail("a->pCustomSampleOrders (Error: Lengths not equal)");
14153         };
14154         if ((a->customSampleOrderCount) == (b->customSampleOrderCount)) {
14155             if (a) {
14156                 for (uint32_t i = 0; i < (uint32_t)a->customSampleOrderCount; ++i) {
14157                     checkEqual_VkCoarseSampleOrderCustomNV(a->pCustomSampleOrders + i,
14158                                                            b->pCustomSampleOrders + i, onFail);
14159                 }
14160             }
14161         }
14162     }
14163 }
14164 
14165 #endif
14166 #ifdef VK_NV_ray_tracing
checkEqual_VkRayTracingShaderGroupCreateInfoNV(const VkRayTracingShaderGroupCreateInfoNV * a,const VkRayTracingShaderGroupCreateInfoNV * b,OnFailCompareFunc onFail)14167 void checkEqual_VkRayTracingShaderGroupCreateInfoNV(const VkRayTracingShaderGroupCreateInfoNV* a,
14168                                                     const VkRayTracingShaderGroupCreateInfoNV* b,
14169                                                     OnFailCompareFunc onFail) {
14170     if (!((a->sType) == (b->sType))) {
14171         onFail("a->sType (Error: Value not equal)");
14172     };
14173     if (a->pNext) {
14174         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14175     }
14176     if (!((a->type) == (b->type))) {
14177         onFail("a->type (Error: Value not equal)");
14178     };
14179     if (!((a->generalShader) == (b->generalShader))) {
14180         onFail("a->generalShader (Error: Value not equal)");
14181     };
14182     if (!((a->closestHitShader) == (b->closestHitShader))) {
14183         onFail("a->closestHitShader (Error: Value not equal)");
14184     };
14185     if (!((a->anyHitShader) == (b->anyHitShader))) {
14186         onFail("a->anyHitShader (Error: Value not equal)");
14187     };
14188     if (!((a->intersectionShader) == (b->intersectionShader))) {
14189         onFail("a->intersectionShader (Error: Value not equal)");
14190     };
14191 }
14192 
checkEqual_VkRayTracingPipelineCreateInfoNV(const VkRayTracingPipelineCreateInfoNV * a,const VkRayTracingPipelineCreateInfoNV * b,OnFailCompareFunc onFail)14193 void checkEqual_VkRayTracingPipelineCreateInfoNV(const VkRayTracingPipelineCreateInfoNV* a,
14194                                                  const VkRayTracingPipelineCreateInfoNV* b,
14195                                                  OnFailCompareFunc onFail) {
14196     if (!((a->sType) == (b->sType))) {
14197         onFail("a->sType (Error: Value not equal)");
14198     };
14199     if (a->pNext) {
14200         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14201     }
14202     if (!((a->flags) == (b->flags))) {
14203         onFail("a->flags (Error: Value not equal)");
14204     };
14205     if (!((a->stageCount) == (b->stageCount))) {
14206         onFail("a->stageCount (Error: Value not equal)");
14207     };
14208     if ((a->pStages) && (b->pStages)) {
14209         if (!((a->stageCount) == (b->stageCount))) {
14210             onFail("a->pStages (Error: Lengths not equal)");
14211         };
14212         if ((a->stageCount) == (b->stageCount)) {
14213             if (a) {
14214                 for (uint32_t i = 0; i < (uint32_t)a->stageCount; ++i) {
14215                     checkEqual_VkPipelineShaderStageCreateInfo(a->pStages + i, b->pStages + i,
14216                                                                onFail);
14217                 }
14218             }
14219         }
14220     }
14221     if (!((a->groupCount) == (b->groupCount))) {
14222         onFail("a->groupCount (Error: Value not equal)");
14223     };
14224     if ((a->pGroups) && (b->pGroups)) {
14225         if (!((a->groupCount) == (b->groupCount))) {
14226             onFail("a->pGroups (Error: Lengths not equal)");
14227         };
14228         if ((a->groupCount) == (b->groupCount)) {
14229             if (a) {
14230                 for (uint32_t i = 0; i < (uint32_t)a->groupCount; ++i) {
14231                     checkEqual_VkRayTracingShaderGroupCreateInfoNV(a->pGroups + i, b->pGroups + i,
14232                                                                    onFail);
14233                 }
14234             }
14235         }
14236     }
14237     if (!((a->maxRecursionDepth) == (b->maxRecursionDepth))) {
14238         onFail("a->maxRecursionDepth (Error: Value not equal)");
14239     };
14240     if (!((a->layout) == (b->layout))) {
14241         onFail("a->layout (Error: Value not equal)");
14242     };
14243     if (!((a->basePipelineHandle) == (b->basePipelineHandle))) {
14244         onFail("a->basePipelineHandle (Error: Value not equal)");
14245     };
14246     if (!((a->basePipelineIndex) == (b->basePipelineIndex))) {
14247         onFail("a->basePipelineIndex (Error: Value not equal)");
14248     };
14249 }
14250 
checkEqual_VkGeometryTrianglesNV(const VkGeometryTrianglesNV * a,const VkGeometryTrianglesNV * b,OnFailCompareFunc onFail)14251 void checkEqual_VkGeometryTrianglesNV(const VkGeometryTrianglesNV* a,
14252                                       const VkGeometryTrianglesNV* b, OnFailCompareFunc onFail) {
14253     if (!((a->sType) == (b->sType))) {
14254         onFail("a->sType (Error: Value not equal)");
14255     };
14256     if (a->pNext) {
14257         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14258     }
14259     if (!((a->vertexData) == (b->vertexData))) {
14260         onFail("a->vertexData (Error: Value not equal)");
14261     };
14262     if (!((a->vertexOffset) == (b->vertexOffset))) {
14263         onFail("a->vertexOffset (Error: Value not equal)");
14264     };
14265     if (!((a->vertexCount) == (b->vertexCount))) {
14266         onFail("a->vertexCount (Error: Value not equal)");
14267     };
14268     if (!((a->vertexStride) == (b->vertexStride))) {
14269         onFail("a->vertexStride (Error: Value not equal)");
14270     };
14271     if (!((a->vertexFormat) == (b->vertexFormat))) {
14272         onFail("a->vertexFormat (Error: Value not equal)");
14273     };
14274     if (!((a->indexData) == (b->indexData))) {
14275         onFail("a->indexData (Error: Value not equal)");
14276     };
14277     if (!((a->indexOffset) == (b->indexOffset))) {
14278         onFail("a->indexOffset (Error: Value not equal)");
14279     };
14280     if (!((a->indexCount) == (b->indexCount))) {
14281         onFail("a->indexCount (Error: Value not equal)");
14282     };
14283     if (!((a->indexType) == (b->indexType))) {
14284         onFail("a->indexType (Error: Value not equal)");
14285     };
14286     if (!((a->transformData) == (b->transformData))) {
14287         onFail("a->transformData (Error: Value not equal)");
14288     };
14289     if (!((a->transformOffset) == (b->transformOffset))) {
14290         onFail("a->transformOffset (Error: Value not equal)");
14291     };
14292 }
14293 
checkEqual_VkGeometryAABBNV(const VkGeometryAABBNV * a,const VkGeometryAABBNV * b,OnFailCompareFunc onFail)14294 void checkEqual_VkGeometryAABBNV(const VkGeometryAABBNV* a, const VkGeometryAABBNV* b,
14295                                  OnFailCompareFunc onFail) {
14296     if (!((a->sType) == (b->sType))) {
14297         onFail("a->sType (Error: Value not equal)");
14298     };
14299     if (a->pNext) {
14300         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14301     }
14302     if (!((a->aabbData) == (b->aabbData))) {
14303         onFail("a->aabbData (Error: Value not equal)");
14304     };
14305     if (!((a->numAABBs) == (b->numAABBs))) {
14306         onFail("a->numAABBs (Error: Value not equal)");
14307     };
14308     if (!((a->stride) == (b->stride))) {
14309         onFail("a->stride (Error: Value not equal)");
14310     };
14311     if (!((a->offset) == (b->offset))) {
14312         onFail("a->offset (Error: Value not equal)");
14313     };
14314 }
14315 
checkEqual_VkGeometryDataNV(const VkGeometryDataNV * a,const VkGeometryDataNV * b,OnFailCompareFunc onFail)14316 void checkEqual_VkGeometryDataNV(const VkGeometryDataNV* a, const VkGeometryDataNV* b,
14317                                  OnFailCompareFunc onFail) {
14318     checkEqual_VkGeometryTrianglesNV(&a->triangles, &b->triangles, onFail);
14319     checkEqual_VkGeometryAABBNV(&a->aabbs, &b->aabbs, onFail);
14320 }
14321 
checkEqual_VkGeometryNV(const VkGeometryNV * a,const VkGeometryNV * b,OnFailCompareFunc onFail)14322 void checkEqual_VkGeometryNV(const VkGeometryNV* a, const VkGeometryNV* b,
14323                              OnFailCompareFunc onFail) {
14324     if (!((a->sType) == (b->sType))) {
14325         onFail("a->sType (Error: Value not equal)");
14326     };
14327     if (a->pNext) {
14328         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14329     }
14330     if (!((a->geometryType) == (b->geometryType))) {
14331         onFail("a->geometryType (Error: Value not equal)");
14332     };
14333     checkEqual_VkGeometryDataNV(&a->geometry, &b->geometry, onFail);
14334     if (!((a->flags) == (b->flags))) {
14335         onFail("a->flags (Error: Value not equal)");
14336     };
14337 }
14338 
checkEqual_VkAccelerationStructureInfoNV(const VkAccelerationStructureInfoNV * a,const VkAccelerationStructureInfoNV * b,OnFailCompareFunc onFail)14339 void checkEqual_VkAccelerationStructureInfoNV(const VkAccelerationStructureInfoNV* a,
14340                                               const VkAccelerationStructureInfoNV* b,
14341                                               OnFailCompareFunc onFail) {
14342     if (!((a->sType) == (b->sType))) {
14343         onFail("a->sType (Error: Value not equal)");
14344     };
14345     if (a->pNext) {
14346         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14347     }
14348     if (!((a->type) == (b->type))) {
14349         onFail("a->type (Error: Value not equal)");
14350     };
14351     if (!((a->flags) == (b->flags))) {
14352         onFail("a->flags (Error: Value not equal)");
14353     };
14354     if (!((a->instanceCount) == (b->instanceCount))) {
14355         onFail("a->instanceCount (Error: Value not equal)");
14356     };
14357     if (!((a->geometryCount) == (b->geometryCount))) {
14358         onFail("a->geometryCount (Error: Value not equal)");
14359     };
14360     if ((a->pGeometries) && (b->pGeometries)) {
14361         if (!((a->geometryCount) == (b->geometryCount))) {
14362             onFail("a->pGeometries (Error: Lengths not equal)");
14363         };
14364         if ((a->geometryCount) == (b->geometryCount)) {
14365             if (a) {
14366                 for (uint32_t i = 0; i < (uint32_t)a->geometryCount; ++i) {
14367                     checkEqual_VkGeometryNV(a->pGeometries + i, b->pGeometries + i, onFail);
14368                 }
14369             }
14370         }
14371     }
14372 }
14373 
checkEqual_VkAccelerationStructureCreateInfoNV(const VkAccelerationStructureCreateInfoNV * a,const VkAccelerationStructureCreateInfoNV * b,OnFailCompareFunc onFail)14374 void checkEqual_VkAccelerationStructureCreateInfoNV(const VkAccelerationStructureCreateInfoNV* a,
14375                                                     const VkAccelerationStructureCreateInfoNV* b,
14376                                                     OnFailCompareFunc onFail) {
14377     if (!((a->sType) == (b->sType))) {
14378         onFail("a->sType (Error: Value not equal)");
14379     };
14380     if (a->pNext) {
14381         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14382     }
14383     if (!((a->compactedSize) == (b->compactedSize))) {
14384         onFail("a->compactedSize (Error: Value not equal)");
14385     };
14386     checkEqual_VkAccelerationStructureInfoNV(&a->info, &b->info, onFail);
14387 }
14388 
checkEqual_VkBindAccelerationStructureMemoryInfoNV(const VkBindAccelerationStructureMemoryInfoNV * a,const VkBindAccelerationStructureMemoryInfoNV * b,OnFailCompareFunc onFail)14389 void checkEqual_VkBindAccelerationStructureMemoryInfoNV(
14390     const VkBindAccelerationStructureMemoryInfoNV* a,
14391     const VkBindAccelerationStructureMemoryInfoNV* b, OnFailCompareFunc onFail) {
14392     if (!((a->sType) == (b->sType))) {
14393         onFail("a->sType (Error: Value not equal)");
14394     };
14395     if (a->pNext) {
14396         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14397     }
14398     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
14399         onFail("a->accelerationStructure (Error: Value not equal)");
14400     };
14401     if (!((a->memory) == (b->memory))) {
14402         onFail("a->memory (Error: Value not equal)");
14403     };
14404     if (!((a->memoryOffset) == (b->memoryOffset))) {
14405         onFail("a->memoryOffset (Error: Value not equal)");
14406     };
14407     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
14408         onFail("a->deviceIndexCount (Error: Value not equal)");
14409     };
14410     if (!((a->deviceIndexCount) == (b->deviceIndexCount))) {
14411         onFail("a->pDeviceIndices (Error: Lengths not equal)");
14412     };
14413     if (!((memcmp(a->pDeviceIndices, b->pDeviceIndices,
14414                   a->deviceIndexCount * sizeof(const uint32_t)) == 0))) {
14415         onFail("a->pDeviceIndices (Error: Unequal dyn array)");
14416     };
14417 }
14418 
checkEqual_VkWriteDescriptorSetAccelerationStructureNV(const VkWriteDescriptorSetAccelerationStructureNV * a,const VkWriteDescriptorSetAccelerationStructureNV * b,OnFailCompareFunc onFail)14419 void checkEqual_VkWriteDescriptorSetAccelerationStructureNV(
14420     const VkWriteDescriptorSetAccelerationStructureNV* a,
14421     const VkWriteDescriptorSetAccelerationStructureNV* b, OnFailCompareFunc onFail) {
14422     if (!((a->sType) == (b->sType))) {
14423         onFail("a->sType (Error: Value not equal)");
14424     };
14425     if (a->pNext) {
14426         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14427     }
14428     if (!((a->accelerationStructureCount) == (b->accelerationStructureCount))) {
14429         onFail("a->accelerationStructureCount (Error: Value not equal)");
14430     };
14431     if (!((!(a->pAccelerationStructures) && !(b->pAccelerationStructures)) ||
14432           ((a->pAccelerationStructures) && (b->pAccelerationStructures)))) {
14433         onFail("a->pAccelerationStructures (Error: Mismatch in optional field)");
14434     };
14435     if (a->pAccelerationStructures && b->pAccelerationStructures) {
14436         if (!((a->accelerationStructureCount) == (b->accelerationStructureCount))) {
14437             onFail("a->pAccelerationStructures (Error: Lengths not equal)");
14438         };
14439         if (!((memcmp(a->pAccelerationStructures, b->pAccelerationStructures,
14440                       a->accelerationStructureCount * sizeof(const VkAccelerationStructureNV)) ==
14441                0))) {
14442             onFail("a->pAccelerationStructures (Error: Unequal dyn array)");
14443         };
14444     }
14445 }
14446 
checkEqual_VkAccelerationStructureMemoryRequirementsInfoNV(const VkAccelerationStructureMemoryRequirementsInfoNV * a,const VkAccelerationStructureMemoryRequirementsInfoNV * b,OnFailCompareFunc onFail)14447 void checkEqual_VkAccelerationStructureMemoryRequirementsInfoNV(
14448     const VkAccelerationStructureMemoryRequirementsInfoNV* a,
14449     const VkAccelerationStructureMemoryRequirementsInfoNV* b, OnFailCompareFunc onFail) {
14450     if (!((a->sType) == (b->sType))) {
14451         onFail("a->sType (Error: Value not equal)");
14452     };
14453     if (a->pNext) {
14454         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14455     }
14456     if (!((a->type) == (b->type))) {
14457         onFail("a->type (Error: Value not equal)");
14458     };
14459     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
14460         onFail("a->accelerationStructure (Error: Value not equal)");
14461     };
14462 }
14463 
checkEqual_VkPhysicalDeviceRayTracingPropertiesNV(const VkPhysicalDeviceRayTracingPropertiesNV * a,const VkPhysicalDeviceRayTracingPropertiesNV * b,OnFailCompareFunc onFail)14464 void checkEqual_VkPhysicalDeviceRayTracingPropertiesNV(
14465     const VkPhysicalDeviceRayTracingPropertiesNV* a,
14466     const VkPhysicalDeviceRayTracingPropertiesNV* b, OnFailCompareFunc onFail) {
14467     if (!((a->sType) == (b->sType))) {
14468         onFail("a->sType (Error: Value not equal)");
14469     };
14470     if (a->pNext) {
14471         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14472     }
14473     if (!((a->shaderGroupHandleSize) == (b->shaderGroupHandleSize))) {
14474         onFail("a->shaderGroupHandleSize (Error: Value not equal)");
14475     };
14476     if (!((a->maxRecursionDepth) == (b->maxRecursionDepth))) {
14477         onFail("a->maxRecursionDepth (Error: Value not equal)");
14478     };
14479     if (!((a->maxShaderGroupStride) == (b->maxShaderGroupStride))) {
14480         onFail("a->maxShaderGroupStride (Error: Value not equal)");
14481     };
14482     if (!((a->shaderGroupBaseAlignment) == (b->shaderGroupBaseAlignment))) {
14483         onFail("a->shaderGroupBaseAlignment (Error: Value not equal)");
14484     };
14485     if (!((a->maxGeometryCount) == (b->maxGeometryCount))) {
14486         onFail("a->maxGeometryCount (Error: Value not equal)");
14487     };
14488     if (!((a->maxInstanceCount) == (b->maxInstanceCount))) {
14489         onFail("a->maxInstanceCount (Error: Value not equal)");
14490     };
14491     if (!((a->maxTriangleCount) == (b->maxTriangleCount))) {
14492         onFail("a->maxTriangleCount (Error: Value not equal)");
14493     };
14494     if (!((a->maxDescriptorSetAccelerationStructures) ==
14495           (b->maxDescriptorSetAccelerationStructures))) {
14496         onFail("a->maxDescriptorSetAccelerationStructures (Error: Value not equal)");
14497     };
14498 }
14499 
checkEqual_VkTransformMatrixKHR(const VkTransformMatrixKHR * a,const VkTransformMatrixKHR * b,OnFailCompareFunc onFail)14500 void checkEqual_VkTransformMatrixKHR(const VkTransformMatrixKHR* a, const VkTransformMatrixKHR* b,
14501                                      OnFailCompareFunc onFail) {
14502     if (!((memcmp(a->matrix, b->matrix, ((3) * (4)) * sizeof(float)) == 0))) {
14503         onFail("a->matrix (Error: Unequal static array)");
14504     };
14505 }
14506 
checkEqual_VkAabbPositionsKHR(const VkAabbPositionsKHR * a,const VkAabbPositionsKHR * b,OnFailCompareFunc onFail)14507 void checkEqual_VkAabbPositionsKHR(const VkAabbPositionsKHR* a, const VkAabbPositionsKHR* b,
14508                                    OnFailCompareFunc onFail) {
14509     if (!((a->minX) == (b->minX))) {
14510         onFail("a->minX (Error: Value not equal)");
14511     };
14512     if (!((a->minY) == (b->minY))) {
14513         onFail("a->minY (Error: Value not equal)");
14514     };
14515     if (!((a->minZ) == (b->minZ))) {
14516         onFail("a->minZ (Error: Value not equal)");
14517     };
14518     if (!((a->maxX) == (b->maxX))) {
14519         onFail("a->maxX (Error: Value not equal)");
14520     };
14521     if (!((a->maxY) == (b->maxY))) {
14522         onFail("a->maxY (Error: Value not equal)");
14523     };
14524     if (!((a->maxZ) == (b->maxZ))) {
14525         onFail("a->maxZ (Error: Value not equal)");
14526     };
14527 }
14528 
checkEqual_VkAccelerationStructureInstanceKHR(const VkAccelerationStructureInstanceKHR * a,const VkAccelerationStructureInstanceKHR * b,OnFailCompareFunc onFail)14529 void checkEqual_VkAccelerationStructureInstanceKHR(const VkAccelerationStructureInstanceKHR* a,
14530                                                    const VkAccelerationStructureInstanceKHR* b,
14531                                                    OnFailCompareFunc onFail) {
14532     checkEqual_VkTransformMatrixKHR(&a->transform, &b->transform, onFail);
14533     if (!((a->instanceCustomIndex) == (b->instanceCustomIndex))) {
14534         onFail("a->instanceCustomIndex (Error: Value not equal)");
14535     };
14536     if (!((a->mask) == (b->mask))) {
14537         onFail("a->mask (Error: Value not equal)");
14538     };
14539     if (!((a->instanceShaderBindingTableRecordOffset) ==
14540           (b->instanceShaderBindingTableRecordOffset))) {
14541         onFail("a->instanceShaderBindingTableRecordOffset (Error: Value not equal)");
14542     };
14543     if (!((a->flags) == (b->flags))) {
14544         onFail("a->flags (Error: Value not equal)");
14545     };
14546     if (!((a->accelerationStructureReference) == (b->accelerationStructureReference))) {
14547         onFail("a->accelerationStructureReference (Error: Value not equal)");
14548     };
14549 }
14550 
14551 #endif
14552 #ifdef VK_NV_representative_fragment_test
checkEqual_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV * a,const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV * b,OnFailCompareFunc onFail)14553 void checkEqual_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
14554     const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* a,
14555     const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* b, OnFailCompareFunc onFail) {
14556     if (!((a->sType) == (b->sType))) {
14557         onFail("a->sType (Error: Value not equal)");
14558     };
14559     if (a->pNext) {
14560         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14561     }
14562     if (!((a->representativeFragmentTest) == (b->representativeFragmentTest))) {
14563         onFail("a->representativeFragmentTest (Error: Value not equal)");
14564     };
14565 }
14566 
checkEqual_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(const VkPipelineRepresentativeFragmentTestStateCreateInfoNV * a,const VkPipelineRepresentativeFragmentTestStateCreateInfoNV * b,OnFailCompareFunc onFail)14567 void checkEqual_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
14568     const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* a,
14569     const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* b, OnFailCompareFunc onFail) {
14570     if (!((a->sType) == (b->sType))) {
14571         onFail("a->sType (Error: Value not equal)");
14572     };
14573     if (a->pNext) {
14574         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14575     }
14576     if (!((a->representativeFragmentTestEnable) == (b->representativeFragmentTestEnable))) {
14577         onFail("a->representativeFragmentTestEnable (Error: Value not equal)");
14578     };
14579 }
14580 
14581 #endif
14582 #ifdef VK_EXT_filter_cubic
checkEqual_VkPhysicalDeviceImageViewImageFormatInfoEXT(const VkPhysicalDeviceImageViewImageFormatInfoEXT * a,const VkPhysicalDeviceImageViewImageFormatInfoEXT * b,OnFailCompareFunc onFail)14583 void checkEqual_VkPhysicalDeviceImageViewImageFormatInfoEXT(
14584     const VkPhysicalDeviceImageViewImageFormatInfoEXT* a,
14585     const VkPhysicalDeviceImageViewImageFormatInfoEXT* b, OnFailCompareFunc onFail) {
14586     if (!((a->sType) == (b->sType))) {
14587         onFail("a->sType (Error: Value not equal)");
14588     };
14589     if (a->pNext) {
14590         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14591     }
14592     if (!((a->imageViewType) == (b->imageViewType))) {
14593         onFail("a->imageViewType (Error: Value not equal)");
14594     };
14595 }
14596 
checkEqual_VkFilterCubicImageViewImageFormatPropertiesEXT(const VkFilterCubicImageViewImageFormatPropertiesEXT * a,const VkFilterCubicImageViewImageFormatPropertiesEXT * b,OnFailCompareFunc onFail)14597 void checkEqual_VkFilterCubicImageViewImageFormatPropertiesEXT(
14598     const VkFilterCubicImageViewImageFormatPropertiesEXT* a,
14599     const VkFilterCubicImageViewImageFormatPropertiesEXT* b, OnFailCompareFunc onFail) {
14600     if (!((a->sType) == (b->sType))) {
14601         onFail("a->sType (Error: Value not equal)");
14602     };
14603     if (a->pNext) {
14604         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14605     }
14606     if (!((a->filterCubic) == (b->filterCubic))) {
14607         onFail("a->filterCubic (Error: Value not equal)");
14608     };
14609     if (!((a->filterCubicMinmax) == (b->filterCubicMinmax))) {
14610         onFail("a->filterCubicMinmax (Error: Value not equal)");
14611     };
14612 }
14613 
14614 #endif
14615 #ifdef VK_QCOM_render_pass_shader_resolve
14616 #endif
14617 #ifdef VK_EXT_global_priority
14618 #endif
14619 #ifdef VK_EXT_external_memory_host
checkEqual_VkImportMemoryHostPointerInfoEXT(const VkImportMemoryHostPointerInfoEXT * a,const VkImportMemoryHostPointerInfoEXT * b,OnFailCompareFunc onFail)14620 void checkEqual_VkImportMemoryHostPointerInfoEXT(const VkImportMemoryHostPointerInfoEXT* a,
14621                                                  const VkImportMemoryHostPointerInfoEXT* b,
14622                                                  OnFailCompareFunc onFail) {
14623     if (!((a->sType) == (b->sType))) {
14624         onFail("a->sType (Error: Value not equal)");
14625     };
14626     if (a->pNext) {
14627         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14628     }
14629     if (!((a->handleType) == (b->handleType))) {
14630         onFail("a->handleType (Error: Value not equal)");
14631     };
14632     if (!((!(a->pHostPointer) && !(b->pHostPointer)) || ((a->pHostPointer) && (b->pHostPointer)))) {
14633         onFail("a->pHostPointer (Error: Mismatch in optional field)");
14634     };
14635 }
14636 
checkEqual_VkMemoryHostPointerPropertiesEXT(const VkMemoryHostPointerPropertiesEXT * a,const VkMemoryHostPointerPropertiesEXT * b,OnFailCompareFunc onFail)14637 void checkEqual_VkMemoryHostPointerPropertiesEXT(const VkMemoryHostPointerPropertiesEXT* a,
14638                                                  const VkMemoryHostPointerPropertiesEXT* b,
14639                                                  OnFailCompareFunc onFail) {
14640     if (!((a->sType) == (b->sType))) {
14641         onFail("a->sType (Error: Value not equal)");
14642     };
14643     if (a->pNext) {
14644         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14645     }
14646     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
14647         onFail("a->memoryTypeBits (Error: Value not equal)");
14648     };
14649 }
14650 
checkEqual_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(const VkPhysicalDeviceExternalMemoryHostPropertiesEXT * a,const VkPhysicalDeviceExternalMemoryHostPropertiesEXT * b,OnFailCompareFunc onFail)14651 void checkEqual_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
14652     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* a,
14653     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* b, OnFailCompareFunc onFail) {
14654     if (!((a->sType) == (b->sType))) {
14655         onFail("a->sType (Error: Value not equal)");
14656     };
14657     if (a->pNext) {
14658         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14659     }
14660     if (!((a->minImportedHostPointerAlignment) == (b->minImportedHostPointerAlignment))) {
14661         onFail("a->minImportedHostPointerAlignment (Error: Value not equal)");
14662     };
14663 }
14664 
14665 #endif
14666 #ifdef VK_AMD_buffer_marker
14667 #endif
14668 #ifdef VK_AMD_pipeline_compiler_control
checkEqual_VkPipelineCompilerControlCreateInfoAMD(const VkPipelineCompilerControlCreateInfoAMD * a,const VkPipelineCompilerControlCreateInfoAMD * b,OnFailCompareFunc onFail)14669 void checkEqual_VkPipelineCompilerControlCreateInfoAMD(
14670     const VkPipelineCompilerControlCreateInfoAMD* a,
14671     const VkPipelineCompilerControlCreateInfoAMD* b, OnFailCompareFunc onFail) {
14672     if (!((a->sType) == (b->sType))) {
14673         onFail("a->sType (Error: Value not equal)");
14674     };
14675     if (a->pNext) {
14676         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14677     }
14678     if (!((a->compilerControlFlags) == (b->compilerControlFlags))) {
14679         onFail("a->compilerControlFlags (Error: Value not equal)");
14680     };
14681 }
14682 
14683 #endif
14684 #ifdef VK_EXT_calibrated_timestamps
checkEqual_VkCalibratedTimestampInfoEXT(const VkCalibratedTimestampInfoEXT * a,const VkCalibratedTimestampInfoEXT * b,OnFailCompareFunc onFail)14685 void checkEqual_VkCalibratedTimestampInfoEXT(const VkCalibratedTimestampInfoEXT* a,
14686                                              const VkCalibratedTimestampInfoEXT* b,
14687                                              OnFailCompareFunc onFail) {
14688     if (!((a->sType) == (b->sType))) {
14689         onFail("a->sType (Error: Value not equal)");
14690     };
14691     if (a->pNext) {
14692         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14693     }
14694     if (!((a->timeDomain) == (b->timeDomain))) {
14695         onFail("a->timeDomain (Error: Value not equal)");
14696     };
14697 }
14698 
14699 #endif
14700 #ifdef VK_AMD_shader_core_properties
checkEqual_VkPhysicalDeviceShaderCorePropertiesAMD(const VkPhysicalDeviceShaderCorePropertiesAMD * a,const VkPhysicalDeviceShaderCorePropertiesAMD * b,OnFailCompareFunc onFail)14701 void checkEqual_VkPhysicalDeviceShaderCorePropertiesAMD(
14702     const VkPhysicalDeviceShaderCorePropertiesAMD* a,
14703     const VkPhysicalDeviceShaderCorePropertiesAMD* b, OnFailCompareFunc onFail) {
14704     if (!((a->sType) == (b->sType))) {
14705         onFail("a->sType (Error: Value not equal)");
14706     };
14707     if (a->pNext) {
14708         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14709     }
14710     if (!((a->shaderEngineCount) == (b->shaderEngineCount))) {
14711         onFail("a->shaderEngineCount (Error: Value not equal)");
14712     };
14713     if (!((a->shaderArraysPerEngineCount) == (b->shaderArraysPerEngineCount))) {
14714         onFail("a->shaderArraysPerEngineCount (Error: Value not equal)");
14715     };
14716     if (!((a->computeUnitsPerShaderArray) == (b->computeUnitsPerShaderArray))) {
14717         onFail("a->computeUnitsPerShaderArray (Error: Value not equal)");
14718     };
14719     if (!((a->simdPerComputeUnit) == (b->simdPerComputeUnit))) {
14720         onFail("a->simdPerComputeUnit (Error: Value not equal)");
14721     };
14722     if (!((a->wavefrontsPerSimd) == (b->wavefrontsPerSimd))) {
14723         onFail("a->wavefrontsPerSimd (Error: Value not equal)");
14724     };
14725     if (!((a->wavefrontSize) == (b->wavefrontSize))) {
14726         onFail("a->wavefrontSize (Error: Value not equal)");
14727     };
14728     if (!((a->sgprsPerSimd) == (b->sgprsPerSimd))) {
14729         onFail("a->sgprsPerSimd (Error: Value not equal)");
14730     };
14731     if (!((a->minSgprAllocation) == (b->minSgprAllocation))) {
14732         onFail("a->minSgprAllocation (Error: Value not equal)");
14733     };
14734     if (!((a->maxSgprAllocation) == (b->maxSgprAllocation))) {
14735         onFail("a->maxSgprAllocation (Error: Value not equal)");
14736     };
14737     if (!((a->sgprAllocationGranularity) == (b->sgprAllocationGranularity))) {
14738         onFail("a->sgprAllocationGranularity (Error: Value not equal)");
14739     };
14740     if (!((a->vgprsPerSimd) == (b->vgprsPerSimd))) {
14741         onFail("a->vgprsPerSimd (Error: Value not equal)");
14742     };
14743     if (!((a->minVgprAllocation) == (b->minVgprAllocation))) {
14744         onFail("a->minVgprAllocation (Error: Value not equal)");
14745     };
14746     if (!((a->maxVgprAllocation) == (b->maxVgprAllocation))) {
14747         onFail("a->maxVgprAllocation (Error: Value not equal)");
14748     };
14749     if (!((a->vgprAllocationGranularity) == (b->vgprAllocationGranularity))) {
14750         onFail("a->vgprAllocationGranularity (Error: Value not equal)");
14751     };
14752 }
14753 
14754 #endif
14755 #ifdef VK_AMD_memory_overallocation_behavior
checkEqual_VkDeviceMemoryOverallocationCreateInfoAMD(const VkDeviceMemoryOverallocationCreateInfoAMD * a,const VkDeviceMemoryOverallocationCreateInfoAMD * b,OnFailCompareFunc onFail)14756 void checkEqual_VkDeviceMemoryOverallocationCreateInfoAMD(
14757     const VkDeviceMemoryOverallocationCreateInfoAMD* a,
14758     const VkDeviceMemoryOverallocationCreateInfoAMD* b, OnFailCompareFunc onFail) {
14759     if (!((a->sType) == (b->sType))) {
14760         onFail("a->sType (Error: Value not equal)");
14761     };
14762     if (a->pNext) {
14763         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14764     }
14765     if (!((a->overallocationBehavior) == (b->overallocationBehavior))) {
14766         onFail("a->overallocationBehavior (Error: Value not equal)");
14767     };
14768 }
14769 
14770 #endif
14771 #ifdef VK_EXT_vertex_attribute_divisor
checkEqual_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * a,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * b,OnFailCompareFunc onFail)14772 void checkEqual_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
14773     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* a,
14774     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* b, OnFailCompareFunc onFail) {
14775     if (!((a->sType) == (b->sType))) {
14776         onFail("a->sType (Error: Value not equal)");
14777     };
14778     if (a->pNext) {
14779         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14780     }
14781     if (!((a->maxVertexAttribDivisor) == (b->maxVertexAttribDivisor))) {
14782         onFail("a->maxVertexAttribDivisor (Error: Value not equal)");
14783     };
14784 }
14785 
checkEqual_VkVertexInputBindingDivisorDescriptionEXT(const VkVertexInputBindingDivisorDescriptionEXT * a,const VkVertexInputBindingDivisorDescriptionEXT * b,OnFailCompareFunc onFail)14786 void checkEqual_VkVertexInputBindingDivisorDescriptionEXT(
14787     const VkVertexInputBindingDivisorDescriptionEXT* a,
14788     const VkVertexInputBindingDivisorDescriptionEXT* b, OnFailCompareFunc onFail) {
14789     if (!((a->binding) == (b->binding))) {
14790         onFail("a->binding (Error: Value not equal)");
14791     };
14792     if (!((a->divisor) == (b->divisor))) {
14793         onFail("a->divisor (Error: Value not equal)");
14794     };
14795 }
14796 
checkEqual_VkPipelineVertexInputDivisorStateCreateInfoEXT(const VkPipelineVertexInputDivisorStateCreateInfoEXT * a,const VkPipelineVertexInputDivisorStateCreateInfoEXT * b,OnFailCompareFunc onFail)14797 void checkEqual_VkPipelineVertexInputDivisorStateCreateInfoEXT(
14798     const VkPipelineVertexInputDivisorStateCreateInfoEXT* a,
14799     const VkPipelineVertexInputDivisorStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
14800     if (!((a->sType) == (b->sType))) {
14801         onFail("a->sType (Error: Value not equal)");
14802     };
14803     if (a->pNext) {
14804         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14805     }
14806     if (!((a->vertexBindingDivisorCount) == (b->vertexBindingDivisorCount))) {
14807         onFail("a->vertexBindingDivisorCount (Error: Value not equal)");
14808     };
14809     if ((a->pVertexBindingDivisors) && (b->pVertexBindingDivisors)) {
14810         if (!((a->vertexBindingDivisorCount) == (b->vertexBindingDivisorCount))) {
14811             onFail("a->pVertexBindingDivisors (Error: Lengths not equal)");
14812         };
14813         if ((a->vertexBindingDivisorCount) == (b->vertexBindingDivisorCount)) {
14814             if (a) {
14815                 for (uint32_t i = 0; i < (uint32_t)a->vertexBindingDivisorCount; ++i) {
14816                     checkEqual_VkVertexInputBindingDivisorDescriptionEXT(
14817                         a->pVertexBindingDivisors + i, b->pVertexBindingDivisors + i, onFail);
14818                 }
14819             }
14820         }
14821     }
14822 }
14823 
checkEqual_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * a,const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * b,OnFailCompareFunc onFail)14824 void checkEqual_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
14825     const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* a,
14826     const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* b, OnFailCompareFunc onFail) {
14827     if (!((a->sType) == (b->sType))) {
14828         onFail("a->sType (Error: Value not equal)");
14829     };
14830     if (a->pNext) {
14831         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14832     }
14833     if (!((a->vertexAttributeInstanceRateDivisor) == (b->vertexAttributeInstanceRateDivisor))) {
14834         onFail("a->vertexAttributeInstanceRateDivisor (Error: Value not equal)");
14835     };
14836     if (!((a->vertexAttributeInstanceRateZeroDivisor) ==
14837           (b->vertexAttributeInstanceRateZeroDivisor))) {
14838         onFail("a->vertexAttributeInstanceRateZeroDivisor (Error: Value not equal)");
14839     };
14840 }
14841 
14842 #endif
14843 #ifdef VK_GGP_frame_token
checkEqual_VkPresentFrameTokenGGP(const VkPresentFrameTokenGGP * a,const VkPresentFrameTokenGGP * b,OnFailCompareFunc onFail)14844 void checkEqual_VkPresentFrameTokenGGP(const VkPresentFrameTokenGGP* a,
14845                                        const VkPresentFrameTokenGGP* b, OnFailCompareFunc onFail) {
14846     if (!((a->sType) == (b->sType))) {
14847         onFail("a->sType (Error: Value not equal)");
14848     };
14849     if (a->pNext) {
14850         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14851     }
14852     if (!((a->frameToken) == (b->frameToken))) {
14853         onFail("a->frameToken (Error: Value not equal)");
14854     };
14855 }
14856 
14857 #endif
14858 #ifdef VK_EXT_pipeline_creation_feedback
14859 #endif
14860 #ifdef VK_NV_shader_subgroup_partitioned
14861 #endif
14862 #ifdef VK_NV_compute_shader_derivatives
checkEqual_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV * a,const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV * b,OnFailCompareFunc onFail)14863 void checkEqual_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
14864     const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* a,
14865     const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* b, OnFailCompareFunc onFail) {
14866     if (!((a->sType) == (b->sType))) {
14867         onFail("a->sType (Error: Value not equal)");
14868     };
14869     if (a->pNext) {
14870         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14871     }
14872     if (!((a->computeDerivativeGroupQuads) == (b->computeDerivativeGroupQuads))) {
14873         onFail("a->computeDerivativeGroupQuads (Error: Value not equal)");
14874     };
14875     if (!((a->computeDerivativeGroupLinear) == (b->computeDerivativeGroupLinear))) {
14876         onFail("a->computeDerivativeGroupLinear (Error: Value not equal)");
14877     };
14878 }
14879 
14880 #endif
14881 #ifdef VK_NV_mesh_shader
checkEqual_VkPhysicalDeviceMeshShaderFeaturesNV(const VkPhysicalDeviceMeshShaderFeaturesNV * a,const VkPhysicalDeviceMeshShaderFeaturesNV * b,OnFailCompareFunc onFail)14882 void checkEqual_VkPhysicalDeviceMeshShaderFeaturesNV(const VkPhysicalDeviceMeshShaderFeaturesNV* a,
14883                                                      const VkPhysicalDeviceMeshShaderFeaturesNV* b,
14884                                                      OnFailCompareFunc onFail) {
14885     if (!((a->sType) == (b->sType))) {
14886         onFail("a->sType (Error: Value not equal)");
14887     };
14888     if (a->pNext) {
14889         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14890     }
14891     if (!((a->taskShader) == (b->taskShader))) {
14892         onFail("a->taskShader (Error: Value not equal)");
14893     };
14894     if (!((a->meshShader) == (b->meshShader))) {
14895         onFail("a->meshShader (Error: Value not equal)");
14896     };
14897 }
14898 
checkEqual_VkPhysicalDeviceMeshShaderPropertiesNV(const VkPhysicalDeviceMeshShaderPropertiesNV * a,const VkPhysicalDeviceMeshShaderPropertiesNV * b,OnFailCompareFunc onFail)14899 void checkEqual_VkPhysicalDeviceMeshShaderPropertiesNV(
14900     const VkPhysicalDeviceMeshShaderPropertiesNV* a,
14901     const VkPhysicalDeviceMeshShaderPropertiesNV* b, OnFailCompareFunc onFail) {
14902     if (!((a->sType) == (b->sType))) {
14903         onFail("a->sType (Error: Value not equal)");
14904     };
14905     if (a->pNext) {
14906         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14907     }
14908     if (!((a->maxDrawMeshTasksCount) == (b->maxDrawMeshTasksCount))) {
14909         onFail("a->maxDrawMeshTasksCount (Error: Value not equal)");
14910     };
14911     if (!((a->maxTaskWorkGroupInvocations) == (b->maxTaskWorkGroupInvocations))) {
14912         onFail("a->maxTaskWorkGroupInvocations (Error: Value not equal)");
14913     };
14914     if (!((memcmp(a->maxTaskWorkGroupSize, b->maxTaskWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
14915         onFail("a->maxTaskWorkGroupSize (Error: Unequal static array)");
14916     };
14917     if (!((a->maxTaskTotalMemorySize) == (b->maxTaskTotalMemorySize))) {
14918         onFail("a->maxTaskTotalMemorySize (Error: Value not equal)");
14919     };
14920     if (!((a->maxTaskOutputCount) == (b->maxTaskOutputCount))) {
14921         onFail("a->maxTaskOutputCount (Error: Value not equal)");
14922     };
14923     if (!((a->maxMeshWorkGroupInvocations) == (b->maxMeshWorkGroupInvocations))) {
14924         onFail("a->maxMeshWorkGroupInvocations (Error: Value not equal)");
14925     };
14926     if (!((memcmp(a->maxMeshWorkGroupSize, b->maxMeshWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
14927         onFail("a->maxMeshWorkGroupSize (Error: Unequal static array)");
14928     };
14929     if (!((a->maxMeshTotalMemorySize) == (b->maxMeshTotalMemorySize))) {
14930         onFail("a->maxMeshTotalMemorySize (Error: Value not equal)");
14931     };
14932     if (!((a->maxMeshOutputVertices) == (b->maxMeshOutputVertices))) {
14933         onFail("a->maxMeshOutputVertices (Error: Value not equal)");
14934     };
14935     if (!((a->maxMeshOutputPrimitives) == (b->maxMeshOutputPrimitives))) {
14936         onFail("a->maxMeshOutputPrimitives (Error: Value not equal)");
14937     };
14938     if (!((a->maxMeshMultiviewViewCount) == (b->maxMeshMultiviewViewCount))) {
14939         onFail("a->maxMeshMultiviewViewCount (Error: Value not equal)");
14940     };
14941     if (!((a->meshOutputPerVertexGranularity) == (b->meshOutputPerVertexGranularity))) {
14942         onFail("a->meshOutputPerVertexGranularity (Error: Value not equal)");
14943     };
14944     if (!((a->meshOutputPerPrimitiveGranularity) == (b->meshOutputPerPrimitiveGranularity))) {
14945         onFail("a->meshOutputPerPrimitiveGranularity (Error: Value not equal)");
14946     };
14947 }
14948 
checkEqual_VkDrawMeshTasksIndirectCommandNV(const VkDrawMeshTasksIndirectCommandNV * a,const VkDrawMeshTasksIndirectCommandNV * b,OnFailCompareFunc onFail)14949 void checkEqual_VkDrawMeshTasksIndirectCommandNV(const VkDrawMeshTasksIndirectCommandNV* a,
14950                                                  const VkDrawMeshTasksIndirectCommandNV* b,
14951                                                  OnFailCompareFunc onFail) {
14952     if (!((a->taskCount) == (b->taskCount))) {
14953         onFail("a->taskCount (Error: Value not equal)");
14954     };
14955     if (!((a->firstTask) == (b->firstTask))) {
14956         onFail("a->firstTask (Error: Value not equal)");
14957     };
14958 }
14959 
14960 #endif
14961 #ifdef VK_NV_fragment_shader_barycentric
14962 #endif
14963 #ifdef VK_NV_shader_image_footprint
checkEqual_VkPhysicalDeviceShaderImageFootprintFeaturesNV(const VkPhysicalDeviceShaderImageFootprintFeaturesNV * a,const VkPhysicalDeviceShaderImageFootprintFeaturesNV * b,OnFailCompareFunc onFail)14964 void checkEqual_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
14965     const VkPhysicalDeviceShaderImageFootprintFeaturesNV* a,
14966     const VkPhysicalDeviceShaderImageFootprintFeaturesNV* b, OnFailCompareFunc onFail) {
14967     if (!((a->sType) == (b->sType))) {
14968         onFail("a->sType (Error: Value not equal)");
14969     };
14970     if (a->pNext) {
14971         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14972     }
14973     if (!((a->imageFootprint) == (b->imageFootprint))) {
14974         onFail("a->imageFootprint (Error: Value not equal)");
14975     };
14976 }
14977 
14978 #endif
14979 #ifdef VK_NV_scissor_exclusive
checkEqual_VkPipelineViewportExclusiveScissorStateCreateInfoNV(const VkPipelineViewportExclusiveScissorStateCreateInfoNV * a,const VkPipelineViewportExclusiveScissorStateCreateInfoNV * b,OnFailCompareFunc onFail)14980 void checkEqual_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
14981     const VkPipelineViewportExclusiveScissorStateCreateInfoNV* a,
14982     const VkPipelineViewportExclusiveScissorStateCreateInfoNV* b, OnFailCompareFunc onFail) {
14983     if (!((a->sType) == (b->sType))) {
14984         onFail("a->sType (Error: Value not equal)");
14985     };
14986     if (a->pNext) {
14987         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
14988     }
14989     if (!((a->exclusiveScissorCount) == (b->exclusiveScissorCount))) {
14990         onFail("a->exclusiveScissorCount (Error: Value not equal)");
14991     };
14992     if (!((!(a->pExclusiveScissors) && !(b->pExclusiveScissors)) ||
14993           ((a->pExclusiveScissors) && (b->pExclusiveScissors)))) {
14994         onFail("a->pExclusiveScissors (Error: Mismatch in optional field)");
14995     };
14996     if (a->pExclusiveScissors && b->pExclusiveScissors) {
14997         if ((a->pExclusiveScissors) && (b->pExclusiveScissors)) {
14998             if (!((a->exclusiveScissorCount) == (b->exclusiveScissorCount))) {
14999                 onFail("a->pExclusiveScissors (Error: Lengths not equal)");
15000             };
15001             if ((a->exclusiveScissorCount) == (b->exclusiveScissorCount)) {
15002                 if (a) {
15003                     for (uint32_t i = 0; i < (uint32_t)a->exclusiveScissorCount; ++i) {
15004                         checkEqual_VkRect2D(a->pExclusiveScissors + i, b->pExclusiveScissors + i,
15005                                             onFail);
15006                     }
15007                 }
15008             }
15009         }
15010     }
15011 }
15012 
checkEqual_VkPhysicalDeviceExclusiveScissorFeaturesNV(const VkPhysicalDeviceExclusiveScissorFeaturesNV * a,const VkPhysicalDeviceExclusiveScissorFeaturesNV * b,OnFailCompareFunc onFail)15013 void checkEqual_VkPhysicalDeviceExclusiveScissorFeaturesNV(
15014     const VkPhysicalDeviceExclusiveScissorFeaturesNV* a,
15015     const VkPhysicalDeviceExclusiveScissorFeaturesNV* b, OnFailCompareFunc onFail) {
15016     if (!((a->sType) == (b->sType))) {
15017         onFail("a->sType (Error: Value not equal)");
15018     };
15019     if (a->pNext) {
15020         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15021     }
15022     if (!((a->exclusiveScissor) == (b->exclusiveScissor))) {
15023         onFail("a->exclusiveScissor (Error: Value not equal)");
15024     };
15025 }
15026 
15027 #endif
15028 #ifdef VK_NV_device_diagnostic_checkpoints
checkEqual_VkQueueFamilyCheckpointPropertiesNV(const VkQueueFamilyCheckpointPropertiesNV * a,const VkQueueFamilyCheckpointPropertiesNV * b,OnFailCompareFunc onFail)15029 void checkEqual_VkQueueFamilyCheckpointPropertiesNV(const VkQueueFamilyCheckpointPropertiesNV* a,
15030                                                     const VkQueueFamilyCheckpointPropertiesNV* b,
15031                                                     OnFailCompareFunc onFail) {
15032     if (!((a->sType) == (b->sType))) {
15033         onFail("a->sType (Error: Value not equal)");
15034     };
15035     if (a->pNext) {
15036         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15037     }
15038     if (!((a->checkpointExecutionStageMask) == (b->checkpointExecutionStageMask))) {
15039         onFail("a->checkpointExecutionStageMask (Error: Value not equal)");
15040     };
15041 }
15042 
checkEqual_VkCheckpointDataNV(const VkCheckpointDataNV * a,const VkCheckpointDataNV * b,OnFailCompareFunc onFail)15043 void checkEqual_VkCheckpointDataNV(const VkCheckpointDataNV* a, const VkCheckpointDataNV* b,
15044                                    OnFailCompareFunc onFail) {
15045     if (!((a->sType) == (b->sType))) {
15046         onFail("a->sType (Error: Value not equal)");
15047     };
15048     if (a->pNext) {
15049         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15050     }
15051     if (!((a->stage) == (b->stage))) {
15052         onFail("a->stage (Error: Value not equal)");
15053     };
15054     if (!((!(a->pCheckpointMarker) && !(b->pCheckpointMarker)) ||
15055           ((a->pCheckpointMarker) && (b->pCheckpointMarker)))) {
15056         onFail("a->pCheckpointMarker (Error: Mismatch in optional field)");
15057     };
15058 }
15059 
15060 #endif
15061 #ifdef VK_INTEL_shader_integer_functions2
checkEqual_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL * a,const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL * b,OnFailCompareFunc onFail)15062 void checkEqual_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
15063     const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* a,
15064     const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* b, OnFailCompareFunc onFail) {
15065     if (!((a->sType) == (b->sType))) {
15066         onFail("a->sType (Error: Value not equal)");
15067     };
15068     if (a->pNext) {
15069         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15070     }
15071     if (!((a->shaderIntegerFunctions2) == (b->shaderIntegerFunctions2))) {
15072         onFail("a->shaderIntegerFunctions2 (Error: Value not equal)");
15073     };
15074 }
15075 
15076 #endif
15077 #ifdef VK_INTEL_performance_query
checkEqual_VkPerformanceValueDataINTEL(const VkPerformanceValueDataINTEL * a,const VkPerformanceValueDataINTEL * b,OnFailCompareFunc onFail)15078 void checkEqual_VkPerformanceValueDataINTEL(const VkPerformanceValueDataINTEL* a,
15079                                             const VkPerformanceValueDataINTEL* b,
15080                                             OnFailCompareFunc onFail) {
15081     if (!((a->value32) == (b->value32))) {
15082         onFail("a->value32 (Error: Value not equal)");
15083     };
15084     if (!((a->value64) == (b->value64))) {
15085         onFail("a->value64 (Error: Value not equal)");
15086     };
15087     if (!((a->valueFloat) == (b->valueFloat))) {
15088         onFail("a->valueFloat (Error: Value not equal)");
15089     };
15090     if (!((a->valueBool) == (b->valueBool))) {
15091         onFail("a->valueBool (Error: Value not equal)");
15092     };
15093     if (!((!(a->valueString) && !(b->valueString)) || ((a->valueString) && (b->valueString)))) {
15094         onFail("a->valueString (Error: Mismatch in string pointer nullness)");
15095     };
15096     if ((a->valueString) && (b->valueString)) {
15097         if (!((strcmp(a->valueString, b->valueString) == 0))) {
15098             onFail("a->valueString (Error: Unequal strings)");
15099         };
15100     }
15101 }
15102 
checkEqual_VkPerformanceValueINTEL(const VkPerformanceValueINTEL * a,const VkPerformanceValueINTEL * b,OnFailCompareFunc onFail)15103 void checkEqual_VkPerformanceValueINTEL(const VkPerformanceValueINTEL* a,
15104                                         const VkPerformanceValueINTEL* b,
15105                                         OnFailCompareFunc onFail) {
15106     if (!((a->type) == (b->type))) {
15107         onFail("a->type (Error: Value not equal)");
15108     };
15109     checkEqual_VkPerformanceValueDataINTEL(&a->data, &b->data, onFail);
15110 }
15111 
checkEqual_VkInitializePerformanceApiInfoINTEL(const VkInitializePerformanceApiInfoINTEL * a,const VkInitializePerformanceApiInfoINTEL * b,OnFailCompareFunc onFail)15112 void checkEqual_VkInitializePerformanceApiInfoINTEL(const VkInitializePerformanceApiInfoINTEL* a,
15113                                                     const VkInitializePerformanceApiInfoINTEL* b,
15114                                                     OnFailCompareFunc onFail) {
15115     if (!((a->sType) == (b->sType))) {
15116         onFail("a->sType (Error: Value not equal)");
15117     };
15118     if (a->pNext) {
15119         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15120     }
15121     if (!((!(a->pUserData) && !(b->pUserData)) || ((a->pUserData) && (b->pUserData)))) {
15122         onFail("a->pUserData (Error: Mismatch in optional field)");
15123     };
15124 }
15125 
checkEqual_VkQueryPoolPerformanceQueryCreateInfoINTEL(const VkQueryPoolPerformanceQueryCreateInfoINTEL * a,const VkQueryPoolPerformanceQueryCreateInfoINTEL * b,OnFailCompareFunc onFail)15126 void checkEqual_VkQueryPoolPerformanceQueryCreateInfoINTEL(
15127     const VkQueryPoolPerformanceQueryCreateInfoINTEL* a,
15128     const VkQueryPoolPerformanceQueryCreateInfoINTEL* b, OnFailCompareFunc onFail) {
15129     if (!((a->sType) == (b->sType))) {
15130         onFail("a->sType (Error: Value not equal)");
15131     };
15132     if (a->pNext) {
15133         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15134     }
15135     if (!((a->performanceCountersSampling) == (b->performanceCountersSampling))) {
15136         onFail("a->performanceCountersSampling (Error: Value not equal)");
15137     };
15138 }
15139 
checkEqual_VkPerformanceMarkerInfoINTEL(const VkPerformanceMarkerInfoINTEL * a,const VkPerformanceMarkerInfoINTEL * b,OnFailCompareFunc onFail)15140 void checkEqual_VkPerformanceMarkerInfoINTEL(const VkPerformanceMarkerInfoINTEL* a,
15141                                              const VkPerformanceMarkerInfoINTEL* b,
15142                                              OnFailCompareFunc onFail) {
15143     if (!((a->sType) == (b->sType))) {
15144         onFail("a->sType (Error: Value not equal)");
15145     };
15146     if (a->pNext) {
15147         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15148     }
15149     if (!((a->marker) == (b->marker))) {
15150         onFail("a->marker (Error: Value not equal)");
15151     };
15152 }
15153 
checkEqual_VkPerformanceStreamMarkerInfoINTEL(const VkPerformanceStreamMarkerInfoINTEL * a,const VkPerformanceStreamMarkerInfoINTEL * b,OnFailCompareFunc onFail)15154 void checkEqual_VkPerformanceStreamMarkerInfoINTEL(const VkPerformanceStreamMarkerInfoINTEL* a,
15155                                                    const VkPerformanceStreamMarkerInfoINTEL* b,
15156                                                    OnFailCompareFunc onFail) {
15157     if (!((a->sType) == (b->sType))) {
15158         onFail("a->sType (Error: Value not equal)");
15159     };
15160     if (a->pNext) {
15161         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15162     }
15163     if (!((a->marker) == (b->marker))) {
15164         onFail("a->marker (Error: Value not equal)");
15165     };
15166 }
15167 
checkEqual_VkPerformanceOverrideInfoINTEL(const VkPerformanceOverrideInfoINTEL * a,const VkPerformanceOverrideInfoINTEL * b,OnFailCompareFunc onFail)15168 void checkEqual_VkPerformanceOverrideInfoINTEL(const VkPerformanceOverrideInfoINTEL* a,
15169                                                const VkPerformanceOverrideInfoINTEL* b,
15170                                                OnFailCompareFunc onFail) {
15171     if (!((a->sType) == (b->sType))) {
15172         onFail("a->sType (Error: Value not equal)");
15173     };
15174     if (a->pNext) {
15175         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15176     }
15177     if (!((a->type) == (b->type))) {
15178         onFail("a->type (Error: Value not equal)");
15179     };
15180     if (!((a->enable) == (b->enable))) {
15181         onFail("a->enable (Error: Value not equal)");
15182     };
15183     if (!((a->parameter) == (b->parameter))) {
15184         onFail("a->parameter (Error: Value not equal)");
15185     };
15186 }
15187 
checkEqual_VkPerformanceConfigurationAcquireInfoINTEL(const VkPerformanceConfigurationAcquireInfoINTEL * a,const VkPerformanceConfigurationAcquireInfoINTEL * b,OnFailCompareFunc onFail)15188 void checkEqual_VkPerformanceConfigurationAcquireInfoINTEL(
15189     const VkPerformanceConfigurationAcquireInfoINTEL* a,
15190     const VkPerformanceConfigurationAcquireInfoINTEL* b, OnFailCompareFunc onFail) {
15191     if (!((a->sType) == (b->sType))) {
15192         onFail("a->sType (Error: Value not equal)");
15193     };
15194     if (a->pNext) {
15195         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15196     }
15197     if (!((a->type) == (b->type))) {
15198         onFail("a->type (Error: Value not equal)");
15199     };
15200 }
15201 
15202 #endif
15203 #ifdef VK_EXT_pci_bus_info
checkEqual_VkPhysicalDevicePCIBusInfoPropertiesEXT(const VkPhysicalDevicePCIBusInfoPropertiesEXT * a,const VkPhysicalDevicePCIBusInfoPropertiesEXT * b,OnFailCompareFunc onFail)15204 void checkEqual_VkPhysicalDevicePCIBusInfoPropertiesEXT(
15205     const VkPhysicalDevicePCIBusInfoPropertiesEXT* a,
15206     const VkPhysicalDevicePCIBusInfoPropertiesEXT* b, OnFailCompareFunc onFail) {
15207     if (!((a->sType) == (b->sType))) {
15208         onFail("a->sType (Error: Value not equal)");
15209     };
15210     if (a->pNext) {
15211         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15212     }
15213     if (!((a->pciDomain) == (b->pciDomain))) {
15214         onFail("a->pciDomain (Error: Value not equal)");
15215     };
15216     if (!((a->pciBus) == (b->pciBus))) {
15217         onFail("a->pciBus (Error: Value not equal)");
15218     };
15219     if (!((a->pciDevice) == (b->pciDevice))) {
15220         onFail("a->pciDevice (Error: Value not equal)");
15221     };
15222     if (!((a->pciFunction) == (b->pciFunction))) {
15223         onFail("a->pciFunction (Error: Value not equal)");
15224     };
15225 }
15226 
15227 #endif
15228 #ifdef VK_AMD_display_native_hdr
checkEqual_VkDisplayNativeHdrSurfaceCapabilitiesAMD(const VkDisplayNativeHdrSurfaceCapabilitiesAMD * a,const VkDisplayNativeHdrSurfaceCapabilitiesAMD * b,OnFailCompareFunc onFail)15229 void checkEqual_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
15230     const VkDisplayNativeHdrSurfaceCapabilitiesAMD* a,
15231     const VkDisplayNativeHdrSurfaceCapabilitiesAMD* b, OnFailCompareFunc onFail) {
15232     if (!((a->sType) == (b->sType))) {
15233         onFail("a->sType (Error: Value not equal)");
15234     };
15235     if (a->pNext) {
15236         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15237     }
15238     if (!((a->localDimmingSupport) == (b->localDimmingSupport))) {
15239         onFail("a->localDimmingSupport (Error: Value not equal)");
15240     };
15241 }
15242 
checkEqual_VkSwapchainDisplayNativeHdrCreateInfoAMD(const VkSwapchainDisplayNativeHdrCreateInfoAMD * a,const VkSwapchainDisplayNativeHdrCreateInfoAMD * b,OnFailCompareFunc onFail)15243 void checkEqual_VkSwapchainDisplayNativeHdrCreateInfoAMD(
15244     const VkSwapchainDisplayNativeHdrCreateInfoAMD* a,
15245     const VkSwapchainDisplayNativeHdrCreateInfoAMD* b, OnFailCompareFunc onFail) {
15246     if (!((a->sType) == (b->sType))) {
15247         onFail("a->sType (Error: Value not equal)");
15248     };
15249     if (a->pNext) {
15250         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15251     }
15252     if (!((a->localDimmingEnable) == (b->localDimmingEnable))) {
15253         onFail("a->localDimmingEnable (Error: Value not equal)");
15254     };
15255 }
15256 
15257 #endif
15258 #ifdef VK_FUCHSIA_imagepipe_surface
checkEqual_VkImagePipeSurfaceCreateInfoFUCHSIA(const VkImagePipeSurfaceCreateInfoFUCHSIA * a,const VkImagePipeSurfaceCreateInfoFUCHSIA * b,OnFailCompareFunc onFail)15259 void checkEqual_VkImagePipeSurfaceCreateInfoFUCHSIA(const VkImagePipeSurfaceCreateInfoFUCHSIA* a,
15260                                                     const VkImagePipeSurfaceCreateInfoFUCHSIA* b,
15261                                                     OnFailCompareFunc onFail) {
15262     if (!((a->sType) == (b->sType))) {
15263         onFail("a->sType (Error: Value not equal)");
15264     };
15265     if (a->pNext) {
15266         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15267     }
15268     if (!((a->flags) == (b->flags))) {
15269         onFail("a->flags (Error: Value not equal)");
15270     };
15271     if (!((a->imagePipeHandle) == (b->imagePipeHandle))) {
15272         onFail("a->imagePipeHandle (Error: Value not equal)");
15273     };
15274 }
15275 
15276 #endif
15277 #ifdef VK_EXT_metal_surface
checkEqual_VkMetalSurfaceCreateInfoEXT(const VkMetalSurfaceCreateInfoEXT * a,const VkMetalSurfaceCreateInfoEXT * b,OnFailCompareFunc onFail)15278 void checkEqual_VkMetalSurfaceCreateInfoEXT(const VkMetalSurfaceCreateInfoEXT* a,
15279                                             const VkMetalSurfaceCreateInfoEXT* b,
15280                                             OnFailCompareFunc onFail) {
15281     if (!((a->sType) == (b->sType))) {
15282         onFail("a->sType (Error: Value not equal)");
15283     };
15284     if (a->pNext) {
15285         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15286     }
15287     if (!((a->flags) == (b->flags))) {
15288         onFail("a->flags (Error: Value not equal)");
15289     };
15290     if (!((!(a->pLayer) && !(b->pLayer)) || ((a->pLayer) && (b->pLayer)))) {
15291         onFail("a->pLayer (Error: Mismatch in optional field)");
15292     };
15293     if (a->pLayer && b->pLayer) {
15294         if (!((memcmp(a->pLayer, b->pLayer, sizeof(const CAMetalLayer)) == 0))) {
15295             onFail("a->pLayer (Error: Unequal dyn array)");
15296         };
15297     }
15298 }
15299 
15300 #endif
15301 #ifdef VK_EXT_fragment_density_map
checkEqual_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * a,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * b,OnFailCompareFunc onFail)15302 void checkEqual_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15303     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* a,
15304     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* b, OnFailCompareFunc onFail) {
15305     if (!((a->sType) == (b->sType))) {
15306         onFail("a->sType (Error: Value not equal)");
15307     };
15308     if (a->pNext) {
15309         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15310     }
15311     if (!((a->fragmentDensityMap) == (b->fragmentDensityMap))) {
15312         onFail("a->fragmentDensityMap (Error: Value not equal)");
15313     };
15314     if (!((a->fragmentDensityMapDynamic) == (b->fragmentDensityMapDynamic))) {
15315         onFail("a->fragmentDensityMapDynamic (Error: Value not equal)");
15316     };
15317     if (!((a->fragmentDensityMapNonSubsampledImages) ==
15318           (b->fragmentDensityMapNonSubsampledImages))) {
15319         onFail("a->fragmentDensityMapNonSubsampledImages (Error: Value not equal)");
15320     };
15321 }
15322 
checkEqual_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * a,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * b,OnFailCompareFunc onFail)15323 void checkEqual_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15324     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* a,
15325     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* b, OnFailCompareFunc onFail) {
15326     if (!((a->sType) == (b->sType))) {
15327         onFail("a->sType (Error: Value not equal)");
15328     };
15329     if (a->pNext) {
15330         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15331     }
15332     checkEqual_VkExtent2D(&a->minFragmentDensityTexelSize, &b->minFragmentDensityTexelSize, onFail);
15333     checkEqual_VkExtent2D(&a->maxFragmentDensityTexelSize, &b->maxFragmentDensityTexelSize, onFail);
15334     if (!((a->fragmentDensityInvocations) == (b->fragmentDensityInvocations))) {
15335         onFail("a->fragmentDensityInvocations (Error: Value not equal)");
15336     };
15337 }
15338 
checkEqual_VkRenderPassFragmentDensityMapCreateInfoEXT(const VkRenderPassFragmentDensityMapCreateInfoEXT * a,const VkRenderPassFragmentDensityMapCreateInfoEXT * b,OnFailCompareFunc onFail)15339 void checkEqual_VkRenderPassFragmentDensityMapCreateInfoEXT(
15340     const VkRenderPassFragmentDensityMapCreateInfoEXT* a,
15341     const VkRenderPassFragmentDensityMapCreateInfoEXT* b, OnFailCompareFunc onFail) {
15342     if (!((a->sType) == (b->sType))) {
15343         onFail("a->sType (Error: Value not equal)");
15344     };
15345     if (a->pNext) {
15346         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15347     }
15348     checkEqual_VkAttachmentReference(&a->fragmentDensityMapAttachment,
15349                                      &b->fragmentDensityMapAttachment, onFail);
15350 }
15351 
15352 #endif
15353 #ifdef VK_EXT_scalar_block_layout
15354 #endif
15355 #ifdef VK_GOOGLE_hlsl_functionality1
15356 #endif
15357 #ifdef VK_GOOGLE_decorate_string
15358 #endif
15359 #ifdef VK_EXT_subgroup_size_control
15360 #endif
15361 #ifdef VK_AMD_shader_core_properties2
checkEqual_VkPhysicalDeviceShaderCoreProperties2AMD(const VkPhysicalDeviceShaderCoreProperties2AMD * a,const VkPhysicalDeviceShaderCoreProperties2AMD * b,OnFailCompareFunc onFail)15362 void checkEqual_VkPhysicalDeviceShaderCoreProperties2AMD(
15363     const VkPhysicalDeviceShaderCoreProperties2AMD* a,
15364     const VkPhysicalDeviceShaderCoreProperties2AMD* b, OnFailCompareFunc onFail) {
15365     if (!((a->sType) == (b->sType))) {
15366         onFail("a->sType (Error: Value not equal)");
15367     };
15368     if (a->pNext) {
15369         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15370     }
15371     if (!((a->shaderCoreFeatures) == (b->shaderCoreFeatures))) {
15372         onFail("a->shaderCoreFeatures (Error: Value not equal)");
15373     };
15374     if (!((a->activeComputeUnitCount) == (b->activeComputeUnitCount))) {
15375         onFail("a->activeComputeUnitCount (Error: Value not equal)");
15376     };
15377 }
15378 
15379 #endif
15380 #ifdef VK_AMD_device_coherent_memory
checkEqual_VkPhysicalDeviceCoherentMemoryFeaturesAMD(const VkPhysicalDeviceCoherentMemoryFeaturesAMD * a,const VkPhysicalDeviceCoherentMemoryFeaturesAMD * b,OnFailCompareFunc onFail)15381 void checkEqual_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
15382     const VkPhysicalDeviceCoherentMemoryFeaturesAMD* a,
15383     const VkPhysicalDeviceCoherentMemoryFeaturesAMD* b, OnFailCompareFunc onFail) {
15384     if (!((a->sType) == (b->sType))) {
15385         onFail("a->sType (Error: Value not equal)");
15386     };
15387     if (a->pNext) {
15388         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15389     }
15390     if (!((a->deviceCoherentMemory) == (b->deviceCoherentMemory))) {
15391         onFail("a->deviceCoherentMemory (Error: Value not equal)");
15392     };
15393 }
15394 
15395 #endif
15396 #ifdef VK_EXT_shader_image_atomic_int64
checkEqual_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT * a,const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT * b,OnFailCompareFunc onFail)15397 void checkEqual_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
15398     const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* a,
15399     const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* b, OnFailCompareFunc onFail) {
15400     if (!((a->sType) == (b->sType))) {
15401         onFail("a->sType (Error: Value not equal)");
15402     };
15403     if (a->pNext) {
15404         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15405     }
15406     if (!((a->shaderImageInt64Atomics) == (b->shaderImageInt64Atomics))) {
15407         onFail("a->shaderImageInt64Atomics (Error: Value not equal)");
15408     };
15409     if (!((a->sparseImageInt64Atomics) == (b->sparseImageInt64Atomics))) {
15410         onFail("a->sparseImageInt64Atomics (Error: Value not equal)");
15411     };
15412 }
15413 
15414 #endif
15415 #ifdef VK_EXT_memory_budget
checkEqual_VkPhysicalDeviceMemoryBudgetPropertiesEXT(const VkPhysicalDeviceMemoryBudgetPropertiesEXT * a,const VkPhysicalDeviceMemoryBudgetPropertiesEXT * b,OnFailCompareFunc onFail)15416 void checkEqual_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
15417     const VkPhysicalDeviceMemoryBudgetPropertiesEXT* a,
15418     const VkPhysicalDeviceMemoryBudgetPropertiesEXT* b, OnFailCompareFunc onFail) {
15419     if (!((a->sType) == (b->sType))) {
15420         onFail("a->sType (Error: Value not equal)");
15421     };
15422     if (a->pNext) {
15423         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15424     }
15425     if (!((memcmp(a->heapBudget, b->heapBudget, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize)) ==
15426            0))) {
15427         onFail("a->heapBudget (Error: Unequal static array)");
15428     };
15429     if (!((memcmp(a->heapUsage, b->heapUsage, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize)) == 0))) {
15430         onFail("a->heapUsage (Error: Unequal static array)");
15431     };
15432 }
15433 
15434 #endif
15435 #ifdef VK_EXT_memory_priority
checkEqual_VkPhysicalDeviceMemoryPriorityFeaturesEXT(const VkPhysicalDeviceMemoryPriorityFeaturesEXT * a,const VkPhysicalDeviceMemoryPriorityFeaturesEXT * b,OnFailCompareFunc onFail)15436 void checkEqual_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
15437     const VkPhysicalDeviceMemoryPriorityFeaturesEXT* a,
15438     const VkPhysicalDeviceMemoryPriorityFeaturesEXT* b, OnFailCompareFunc onFail) {
15439     if (!((a->sType) == (b->sType))) {
15440         onFail("a->sType (Error: Value not equal)");
15441     };
15442     if (a->pNext) {
15443         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15444     }
15445     if (!((a->memoryPriority) == (b->memoryPriority))) {
15446         onFail("a->memoryPriority (Error: Value not equal)");
15447     };
15448 }
15449 
checkEqual_VkMemoryPriorityAllocateInfoEXT(const VkMemoryPriorityAllocateInfoEXT * a,const VkMemoryPriorityAllocateInfoEXT * b,OnFailCompareFunc onFail)15450 void checkEqual_VkMemoryPriorityAllocateInfoEXT(const VkMemoryPriorityAllocateInfoEXT* a,
15451                                                 const VkMemoryPriorityAllocateInfoEXT* b,
15452                                                 OnFailCompareFunc onFail) {
15453     if (!((a->sType) == (b->sType))) {
15454         onFail("a->sType (Error: Value not equal)");
15455     };
15456     if (a->pNext) {
15457         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15458     }
15459     if (!((a->priority) == (b->priority))) {
15460         onFail("a->priority (Error: Value not equal)");
15461     };
15462 }
15463 
15464 #endif
15465 #ifdef VK_NV_dedicated_allocation_image_aliasing
checkEqual_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV * a,const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV * b,OnFailCompareFunc onFail)15466 void checkEqual_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
15467     const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* a,
15468     const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* b, OnFailCompareFunc onFail) {
15469     if (!((a->sType) == (b->sType))) {
15470         onFail("a->sType (Error: Value not equal)");
15471     };
15472     if (a->pNext) {
15473         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15474     }
15475     if (!((a->dedicatedAllocationImageAliasing) == (b->dedicatedAllocationImageAliasing))) {
15476         onFail("a->dedicatedAllocationImageAliasing (Error: Value not equal)");
15477     };
15478 }
15479 
15480 #endif
15481 #ifdef VK_EXT_buffer_device_address
checkEqual_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT * a,const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT * b,OnFailCompareFunc onFail)15482 void checkEqual_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
15483     const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* a,
15484     const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* b, OnFailCompareFunc onFail) {
15485     if (!((a->sType) == (b->sType))) {
15486         onFail("a->sType (Error: Value not equal)");
15487     };
15488     if (a->pNext) {
15489         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15490     }
15491     if (!((a->bufferDeviceAddress) == (b->bufferDeviceAddress))) {
15492         onFail("a->bufferDeviceAddress (Error: Value not equal)");
15493     };
15494     if (!((a->bufferDeviceAddressCaptureReplay) == (b->bufferDeviceAddressCaptureReplay))) {
15495         onFail("a->bufferDeviceAddressCaptureReplay (Error: Value not equal)");
15496     };
15497     if (!((a->bufferDeviceAddressMultiDevice) == (b->bufferDeviceAddressMultiDevice))) {
15498         onFail("a->bufferDeviceAddressMultiDevice (Error: Value not equal)");
15499     };
15500 }
15501 
checkEqual_VkBufferDeviceAddressCreateInfoEXT(const VkBufferDeviceAddressCreateInfoEXT * a,const VkBufferDeviceAddressCreateInfoEXT * b,OnFailCompareFunc onFail)15502 void checkEqual_VkBufferDeviceAddressCreateInfoEXT(const VkBufferDeviceAddressCreateInfoEXT* a,
15503                                                    const VkBufferDeviceAddressCreateInfoEXT* b,
15504                                                    OnFailCompareFunc onFail) {
15505     if (!((a->sType) == (b->sType))) {
15506         onFail("a->sType (Error: Value not equal)");
15507     };
15508     if (a->pNext) {
15509         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15510     }
15511     if (!((a->deviceAddress) == (b->deviceAddress))) {
15512         onFail("a->deviceAddress (Error: Value not equal)");
15513     };
15514 }
15515 
15516 #endif
15517 #ifdef VK_EXT_tooling_info
15518 #endif
15519 #ifdef VK_EXT_separate_stencil_usage
15520 #endif
15521 #ifdef VK_EXT_validation_features
checkEqual_VkValidationFeaturesEXT(const VkValidationFeaturesEXT * a,const VkValidationFeaturesEXT * b,OnFailCompareFunc onFail)15522 void checkEqual_VkValidationFeaturesEXT(const VkValidationFeaturesEXT* a,
15523                                         const VkValidationFeaturesEXT* b,
15524                                         OnFailCompareFunc onFail) {
15525     if (!((a->sType) == (b->sType))) {
15526         onFail("a->sType (Error: Value not equal)");
15527     };
15528     if (a->pNext) {
15529         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15530     }
15531     if (!((a->enabledValidationFeatureCount) == (b->enabledValidationFeatureCount))) {
15532         onFail("a->enabledValidationFeatureCount (Error: Value not equal)");
15533     };
15534     if (!((a->enabledValidationFeatureCount) == (b->enabledValidationFeatureCount))) {
15535         onFail("a->pEnabledValidationFeatures (Error: Lengths not equal)");
15536     };
15537     if (!((memcmp(a->pEnabledValidationFeatures, b->pEnabledValidationFeatures,
15538                   a->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT)) ==
15539            0))) {
15540         onFail("a->pEnabledValidationFeatures (Error: Unequal dyn array)");
15541     };
15542     if (!((a->disabledValidationFeatureCount) == (b->disabledValidationFeatureCount))) {
15543         onFail("a->disabledValidationFeatureCount (Error: Value not equal)");
15544     };
15545     if (!((a->disabledValidationFeatureCount) == (b->disabledValidationFeatureCount))) {
15546         onFail("a->pDisabledValidationFeatures (Error: Lengths not equal)");
15547     };
15548     if (!((memcmp(a->pDisabledValidationFeatures, b->pDisabledValidationFeatures,
15549                   a->disabledValidationFeatureCount *
15550                       sizeof(const VkValidationFeatureDisableEXT)) == 0))) {
15551         onFail("a->pDisabledValidationFeatures (Error: Unequal dyn array)");
15552     };
15553 }
15554 
15555 #endif
15556 #ifdef VK_NV_cooperative_matrix
checkEqual_VkCooperativeMatrixPropertiesNV(const VkCooperativeMatrixPropertiesNV * a,const VkCooperativeMatrixPropertiesNV * b,OnFailCompareFunc onFail)15557 void checkEqual_VkCooperativeMatrixPropertiesNV(const VkCooperativeMatrixPropertiesNV* a,
15558                                                 const VkCooperativeMatrixPropertiesNV* b,
15559                                                 OnFailCompareFunc onFail) {
15560     if (!((a->sType) == (b->sType))) {
15561         onFail("a->sType (Error: Value not equal)");
15562     };
15563     if (a->pNext) {
15564         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15565     }
15566     if (!((a->MSize) == (b->MSize))) {
15567         onFail("a->MSize (Error: Value not equal)");
15568     };
15569     if (!((a->NSize) == (b->NSize))) {
15570         onFail("a->NSize (Error: Value not equal)");
15571     };
15572     if (!((a->KSize) == (b->KSize))) {
15573         onFail("a->KSize (Error: Value not equal)");
15574     };
15575     if (!((a->AType) == (b->AType))) {
15576         onFail("a->AType (Error: Value not equal)");
15577     };
15578     if (!((a->BType) == (b->BType))) {
15579         onFail("a->BType (Error: Value not equal)");
15580     };
15581     if (!((a->CType) == (b->CType))) {
15582         onFail("a->CType (Error: Value not equal)");
15583     };
15584     if (!((a->DType) == (b->DType))) {
15585         onFail("a->DType (Error: Value not equal)");
15586     };
15587     if (!((a->scope) == (b->scope))) {
15588         onFail("a->scope (Error: Value not equal)");
15589     };
15590 }
15591 
checkEqual_VkPhysicalDeviceCooperativeMatrixFeaturesNV(const VkPhysicalDeviceCooperativeMatrixFeaturesNV * a,const VkPhysicalDeviceCooperativeMatrixFeaturesNV * b,OnFailCompareFunc onFail)15592 void checkEqual_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
15593     const VkPhysicalDeviceCooperativeMatrixFeaturesNV* a,
15594     const VkPhysicalDeviceCooperativeMatrixFeaturesNV* b, OnFailCompareFunc onFail) {
15595     if (!((a->sType) == (b->sType))) {
15596         onFail("a->sType (Error: Value not equal)");
15597     };
15598     if (a->pNext) {
15599         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15600     }
15601     if (!((a->cooperativeMatrix) == (b->cooperativeMatrix))) {
15602         onFail("a->cooperativeMatrix (Error: Value not equal)");
15603     };
15604     if (!((a->cooperativeMatrixRobustBufferAccess) == (b->cooperativeMatrixRobustBufferAccess))) {
15605         onFail("a->cooperativeMatrixRobustBufferAccess (Error: Value not equal)");
15606     };
15607 }
15608 
checkEqual_VkPhysicalDeviceCooperativeMatrixPropertiesNV(const VkPhysicalDeviceCooperativeMatrixPropertiesNV * a,const VkPhysicalDeviceCooperativeMatrixPropertiesNV * b,OnFailCompareFunc onFail)15609 void checkEqual_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
15610     const VkPhysicalDeviceCooperativeMatrixPropertiesNV* a,
15611     const VkPhysicalDeviceCooperativeMatrixPropertiesNV* b, OnFailCompareFunc onFail) {
15612     if (!((a->sType) == (b->sType))) {
15613         onFail("a->sType (Error: Value not equal)");
15614     };
15615     if (a->pNext) {
15616         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15617     }
15618     if (!((a->cooperativeMatrixSupportedStages) == (b->cooperativeMatrixSupportedStages))) {
15619         onFail("a->cooperativeMatrixSupportedStages (Error: Value not equal)");
15620     };
15621 }
15622 
15623 #endif
15624 #ifdef VK_NV_coverage_reduction_mode
checkEqual_VkPhysicalDeviceCoverageReductionModeFeaturesNV(const VkPhysicalDeviceCoverageReductionModeFeaturesNV * a,const VkPhysicalDeviceCoverageReductionModeFeaturesNV * b,OnFailCompareFunc onFail)15625 void checkEqual_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
15626     const VkPhysicalDeviceCoverageReductionModeFeaturesNV* a,
15627     const VkPhysicalDeviceCoverageReductionModeFeaturesNV* b, OnFailCompareFunc onFail) {
15628     if (!((a->sType) == (b->sType))) {
15629         onFail("a->sType (Error: Value not equal)");
15630     };
15631     if (a->pNext) {
15632         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15633     }
15634     if (!((a->coverageReductionMode) == (b->coverageReductionMode))) {
15635         onFail("a->coverageReductionMode (Error: Value not equal)");
15636     };
15637 }
15638 
checkEqual_VkPipelineCoverageReductionStateCreateInfoNV(const VkPipelineCoverageReductionStateCreateInfoNV * a,const VkPipelineCoverageReductionStateCreateInfoNV * b,OnFailCompareFunc onFail)15639 void checkEqual_VkPipelineCoverageReductionStateCreateInfoNV(
15640     const VkPipelineCoverageReductionStateCreateInfoNV* a,
15641     const VkPipelineCoverageReductionStateCreateInfoNV* b, OnFailCompareFunc onFail) {
15642     if (!((a->sType) == (b->sType))) {
15643         onFail("a->sType (Error: Value not equal)");
15644     };
15645     if (a->pNext) {
15646         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15647     }
15648     if (!((a->flags) == (b->flags))) {
15649         onFail("a->flags (Error: Value not equal)");
15650     };
15651     if (!((a->coverageReductionMode) == (b->coverageReductionMode))) {
15652         onFail("a->coverageReductionMode (Error: Value not equal)");
15653     };
15654 }
15655 
checkEqual_VkFramebufferMixedSamplesCombinationNV(const VkFramebufferMixedSamplesCombinationNV * a,const VkFramebufferMixedSamplesCombinationNV * b,OnFailCompareFunc onFail)15656 void checkEqual_VkFramebufferMixedSamplesCombinationNV(
15657     const VkFramebufferMixedSamplesCombinationNV* a,
15658     const VkFramebufferMixedSamplesCombinationNV* b, OnFailCompareFunc onFail) {
15659     if (!((a->sType) == (b->sType))) {
15660         onFail("a->sType (Error: Value not equal)");
15661     };
15662     if (a->pNext) {
15663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15664     }
15665     if (!((a->coverageReductionMode) == (b->coverageReductionMode))) {
15666         onFail("a->coverageReductionMode (Error: Value not equal)");
15667     };
15668     if (!((a->rasterizationSamples) == (b->rasterizationSamples))) {
15669         onFail("a->rasterizationSamples (Error: Value not equal)");
15670     };
15671     if (!((a->depthStencilSamples) == (b->depthStencilSamples))) {
15672         onFail("a->depthStencilSamples (Error: Value not equal)");
15673     };
15674     if (!((a->colorSamples) == (b->colorSamples))) {
15675         onFail("a->colorSamples (Error: Value not equal)");
15676     };
15677 }
15678 
15679 #endif
15680 #ifdef VK_EXT_fragment_shader_interlock
checkEqual_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT * a,const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT * b,OnFailCompareFunc onFail)15681 void checkEqual_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
15682     const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* a,
15683     const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* b, OnFailCompareFunc onFail) {
15684     if (!((a->sType) == (b->sType))) {
15685         onFail("a->sType (Error: Value not equal)");
15686     };
15687     if (a->pNext) {
15688         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15689     }
15690     if (!((a->fragmentShaderSampleInterlock) == (b->fragmentShaderSampleInterlock))) {
15691         onFail("a->fragmentShaderSampleInterlock (Error: Value not equal)");
15692     };
15693     if (!((a->fragmentShaderPixelInterlock) == (b->fragmentShaderPixelInterlock))) {
15694         onFail("a->fragmentShaderPixelInterlock (Error: Value not equal)");
15695     };
15696     if (!((a->fragmentShaderShadingRateInterlock) == (b->fragmentShaderShadingRateInterlock))) {
15697         onFail("a->fragmentShaderShadingRateInterlock (Error: Value not equal)");
15698     };
15699 }
15700 
15701 #endif
15702 #ifdef VK_EXT_ycbcr_image_arrays
checkEqual_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT * a,const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT * b,OnFailCompareFunc onFail)15703 void checkEqual_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
15704     const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* a,
15705     const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* b, OnFailCompareFunc onFail) {
15706     if (!((a->sType) == (b->sType))) {
15707         onFail("a->sType (Error: Value not equal)");
15708     };
15709     if (a->pNext) {
15710         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15711     }
15712     if (!((a->ycbcrImageArrays) == (b->ycbcrImageArrays))) {
15713         onFail("a->ycbcrImageArrays (Error: Value not equal)");
15714     };
15715 }
15716 
15717 #endif
15718 #ifdef VK_EXT_provoking_vertex
checkEqual_VkPhysicalDeviceProvokingVertexFeaturesEXT(const VkPhysicalDeviceProvokingVertexFeaturesEXT * a,const VkPhysicalDeviceProvokingVertexFeaturesEXT * b,OnFailCompareFunc onFail)15719 void checkEqual_VkPhysicalDeviceProvokingVertexFeaturesEXT(
15720     const VkPhysicalDeviceProvokingVertexFeaturesEXT* a,
15721     const VkPhysicalDeviceProvokingVertexFeaturesEXT* b, OnFailCompareFunc onFail) {
15722     if (!((a->sType) == (b->sType))) {
15723         onFail("a->sType (Error: Value not equal)");
15724     };
15725     if (a->pNext) {
15726         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15727     }
15728     if (!((a->provokingVertexLast) == (b->provokingVertexLast))) {
15729         onFail("a->provokingVertexLast (Error: Value not equal)");
15730     };
15731     if (!((a->transformFeedbackPreservesProvokingVertex) ==
15732           (b->transformFeedbackPreservesProvokingVertex))) {
15733         onFail("a->transformFeedbackPreservesProvokingVertex (Error: Value not equal)");
15734     };
15735 }
15736 
checkEqual_VkPhysicalDeviceProvokingVertexPropertiesEXT(const VkPhysicalDeviceProvokingVertexPropertiesEXT * a,const VkPhysicalDeviceProvokingVertexPropertiesEXT * b,OnFailCompareFunc onFail)15737 void checkEqual_VkPhysicalDeviceProvokingVertexPropertiesEXT(
15738     const VkPhysicalDeviceProvokingVertexPropertiesEXT* a,
15739     const VkPhysicalDeviceProvokingVertexPropertiesEXT* b, OnFailCompareFunc onFail) {
15740     if (!((a->sType) == (b->sType))) {
15741         onFail("a->sType (Error: Value not equal)");
15742     };
15743     if (a->pNext) {
15744         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15745     }
15746     if (!((a->provokingVertexModePerPipeline) == (b->provokingVertexModePerPipeline))) {
15747         onFail("a->provokingVertexModePerPipeline (Error: Value not equal)");
15748     };
15749     if (!((a->transformFeedbackPreservesTriangleFanProvokingVertex) ==
15750           (b->transformFeedbackPreservesTriangleFanProvokingVertex))) {
15751         onFail("a->transformFeedbackPreservesTriangleFanProvokingVertex (Error: Value not equal)");
15752     };
15753 }
15754 
checkEqual_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * a,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * b,OnFailCompareFunc onFail)15755 void checkEqual_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
15756     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* a,
15757     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
15758     if (!((a->sType) == (b->sType))) {
15759         onFail("a->sType (Error: Value not equal)");
15760     };
15761     if (a->pNext) {
15762         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15763     }
15764     if (!((a->provokingVertexMode) == (b->provokingVertexMode))) {
15765         onFail("a->provokingVertexMode (Error: Value not equal)");
15766     };
15767 }
15768 
15769 #endif
15770 #ifdef VK_EXT_full_screen_exclusive
checkEqual_VkSurfaceFullScreenExclusiveInfoEXT(const VkSurfaceFullScreenExclusiveInfoEXT * a,const VkSurfaceFullScreenExclusiveInfoEXT * b,OnFailCompareFunc onFail)15771 void checkEqual_VkSurfaceFullScreenExclusiveInfoEXT(const VkSurfaceFullScreenExclusiveInfoEXT* a,
15772                                                     const VkSurfaceFullScreenExclusiveInfoEXT* b,
15773                                                     OnFailCompareFunc onFail) {
15774     if (!((a->sType) == (b->sType))) {
15775         onFail("a->sType (Error: Value not equal)");
15776     };
15777     if (a->pNext) {
15778         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15779     }
15780     if (!((a->fullScreenExclusive) == (b->fullScreenExclusive))) {
15781         onFail("a->fullScreenExclusive (Error: Value not equal)");
15782     };
15783 }
15784 
checkEqual_VkSurfaceCapabilitiesFullScreenExclusiveEXT(const VkSurfaceCapabilitiesFullScreenExclusiveEXT * a,const VkSurfaceCapabilitiesFullScreenExclusiveEXT * b,OnFailCompareFunc onFail)15785 void checkEqual_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
15786     const VkSurfaceCapabilitiesFullScreenExclusiveEXT* a,
15787     const VkSurfaceCapabilitiesFullScreenExclusiveEXT* b, OnFailCompareFunc onFail) {
15788     if (!((a->sType) == (b->sType))) {
15789         onFail("a->sType (Error: Value not equal)");
15790     };
15791     if (a->pNext) {
15792         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15793     }
15794     if (!((a->fullScreenExclusiveSupported) == (b->fullScreenExclusiveSupported))) {
15795         onFail("a->fullScreenExclusiveSupported (Error: Value not equal)");
15796     };
15797 }
15798 
checkEqual_VkSurfaceFullScreenExclusiveWin32InfoEXT(const VkSurfaceFullScreenExclusiveWin32InfoEXT * a,const VkSurfaceFullScreenExclusiveWin32InfoEXT * b,OnFailCompareFunc onFail)15799 void checkEqual_VkSurfaceFullScreenExclusiveWin32InfoEXT(
15800     const VkSurfaceFullScreenExclusiveWin32InfoEXT* a,
15801     const VkSurfaceFullScreenExclusiveWin32InfoEXT* b, OnFailCompareFunc onFail) {
15802     if (!((a->sType) == (b->sType))) {
15803         onFail("a->sType (Error: Value not equal)");
15804     };
15805     if (a->pNext) {
15806         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15807     }
15808     if (!((a->hmonitor) == (b->hmonitor))) {
15809         onFail("a->hmonitor (Error: Value not equal)");
15810     };
15811 }
15812 
15813 #endif
15814 #ifdef VK_EXT_headless_surface
checkEqual_VkHeadlessSurfaceCreateInfoEXT(const VkHeadlessSurfaceCreateInfoEXT * a,const VkHeadlessSurfaceCreateInfoEXT * b,OnFailCompareFunc onFail)15815 void checkEqual_VkHeadlessSurfaceCreateInfoEXT(const VkHeadlessSurfaceCreateInfoEXT* a,
15816                                                const VkHeadlessSurfaceCreateInfoEXT* b,
15817                                                OnFailCompareFunc onFail) {
15818     if (!((a->sType) == (b->sType))) {
15819         onFail("a->sType (Error: Value not equal)");
15820     };
15821     if (a->pNext) {
15822         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15823     }
15824     if (!((a->flags) == (b->flags))) {
15825         onFail("a->flags (Error: Value not equal)");
15826     };
15827 }
15828 
15829 #endif
15830 #ifdef VK_EXT_line_rasterization
checkEqual_VkPhysicalDeviceLineRasterizationFeaturesEXT(const VkPhysicalDeviceLineRasterizationFeaturesEXT * a,const VkPhysicalDeviceLineRasterizationFeaturesEXT * b,OnFailCompareFunc onFail)15831 void checkEqual_VkPhysicalDeviceLineRasterizationFeaturesEXT(
15832     const VkPhysicalDeviceLineRasterizationFeaturesEXT* a,
15833     const VkPhysicalDeviceLineRasterizationFeaturesEXT* b, OnFailCompareFunc onFail) {
15834     if (!((a->sType) == (b->sType))) {
15835         onFail("a->sType (Error: Value not equal)");
15836     };
15837     if (a->pNext) {
15838         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15839     }
15840     if (!((a->rectangularLines) == (b->rectangularLines))) {
15841         onFail("a->rectangularLines (Error: Value not equal)");
15842     };
15843     if (!((a->bresenhamLines) == (b->bresenhamLines))) {
15844         onFail("a->bresenhamLines (Error: Value not equal)");
15845     };
15846     if (!((a->smoothLines) == (b->smoothLines))) {
15847         onFail("a->smoothLines (Error: Value not equal)");
15848     };
15849     if (!((a->stippledRectangularLines) == (b->stippledRectangularLines))) {
15850         onFail("a->stippledRectangularLines (Error: Value not equal)");
15851     };
15852     if (!((a->stippledBresenhamLines) == (b->stippledBresenhamLines))) {
15853         onFail("a->stippledBresenhamLines (Error: Value not equal)");
15854     };
15855     if (!((a->stippledSmoothLines) == (b->stippledSmoothLines))) {
15856         onFail("a->stippledSmoothLines (Error: Value not equal)");
15857     };
15858 }
15859 
checkEqual_VkPhysicalDeviceLineRasterizationPropertiesEXT(const VkPhysicalDeviceLineRasterizationPropertiesEXT * a,const VkPhysicalDeviceLineRasterizationPropertiesEXT * b,OnFailCompareFunc onFail)15860 void checkEqual_VkPhysicalDeviceLineRasterizationPropertiesEXT(
15861     const VkPhysicalDeviceLineRasterizationPropertiesEXT* a,
15862     const VkPhysicalDeviceLineRasterizationPropertiesEXT* b, OnFailCompareFunc onFail) {
15863     if (!((a->sType) == (b->sType))) {
15864         onFail("a->sType (Error: Value not equal)");
15865     };
15866     if (a->pNext) {
15867         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15868     }
15869     if (!((a->lineSubPixelPrecisionBits) == (b->lineSubPixelPrecisionBits))) {
15870         onFail("a->lineSubPixelPrecisionBits (Error: Value not equal)");
15871     };
15872 }
15873 
checkEqual_VkPipelineRasterizationLineStateCreateInfoEXT(const VkPipelineRasterizationLineStateCreateInfoEXT * a,const VkPipelineRasterizationLineStateCreateInfoEXT * b,OnFailCompareFunc onFail)15874 void checkEqual_VkPipelineRasterizationLineStateCreateInfoEXT(
15875     const VkPipelineRasterizationLineStateCreateInfoEXT* a,
15876     const VkPipelineRasterizationLineStateCreateInfoEXT* b, OnFailCompareFunc onFail) {
15877     if (!((a->sType) == (b->sType))) {
15878         onFail("a->sType (Error: Value not equal)");
15879     };
15880     if (a->pNext) {
15881         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15882     }
15883     if (!((a->lineRasterizationMode) == (b->lineRasterizationMode))) {
15884         onFail("a->lineRasterizationMode (Error: Value not equal)");
15885     };
15886     if (!((a->stippledLineEnable) == (b->stippledLineEnable))) {
15887         onFail("a->stippledLineEnable (Error: Value not equal)");
15888     };
15889     if (!((a->lineStippleFactor) == (b->lineStippleFactor))) {
15890         onFail("a->lineStippleFactor (Error: Value not equal)");
15891     };
15892     if (!((a->lineStipplePattern) == (b->lineStipplePattern))) {
15893         onFail("a->lineStipplePattern (Error: Value not equal)");
15894     };
15895 }
15896 
15897 #endif
15898 #ifdef VK_EXT_shader_atomic_float
checkEqual_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT * a,const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT * b,OnFailCompareFunc onFail)15899 void checkEqual_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
15900     const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* a,
15901     const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* b, OnFailCompareFunc onFail) {
15902     if (!((a->sType) == (b->sType))) {
15903         onFail("a->sType (Error: Value not equal)");
15904     };
15905     if (a->pNext) {
15906         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15907     }
15908     if (!((a->shaderBufferFloat32Atomics) == (b->shaderBufferFloat32Atomics))) {
15909         onFail("a->shaderBufferFloat32Atomics (Error: Value not equal)");
15910     };
15911     if (!((a->shaderBufferFloat32AtomicAdd) == (b->shaderBufferFloat32AtomicAdd))) {
15912         onFail("a->shaderBufferFloat32AtomicAdd (Error: Value not equal)");
15913     };
15914     if (!((a->shaderBufferFloat64Atomics) == (b->shaderBufferFloat64Atomics))) {
15915         onFail("a->shaderBufferFloat64Atomics (Error: Value not equal)");
15916     };
15917     if (!((a->shaderBufferFloat64AtomicAdd) == (b->shaderBufferFloat64AtomicAdd))) {
15918         onFail("a->shaderBufferFloat64AtomicAdd (Error: Value not equal)");
15919     };
15920     if (!((a->shaderSharedFloat32Atomics) == (b->shaderSharedFloat32Atomics))) {
15921         onFail("a->shaderSharedFloat32Atomics (Error: Value not equal)");
15922     };
15923     if (!((a->shaderSharedFloat32AtomicAdd) == (b->shaderSharedFloat32AtomicAdd))) {
15924         onFail("a->shaderSharedFloat32AtomicAdd (Error: Value not equal)");
15925     };
15926     if (!((a->shaderSharedFloat64Atomics) == (b->shaderSharedFloat64Atomics))) {
15927         onFail("a->shaderSharedFloat64Atomics (Error: Value not equal)");
15928     };
15929     if (!((a->shaderSharedFloat64AtomicAdd) == (b->shaderSharedFloat64AtomicAdd))) {
15930         onFail("a->shaderSharedFloat64AtomicAdd (Error: Value not equal)");
15931     };
15932     if (!((a->shaderImageFloat32Atomics) == (b->shaderImageFloat32Atomics))) {
15933         onFail("a->shaderImageFloat32Atomics (Error: Value not equal)");
15934     };
15935     if (!((a->shaderImageFloat32AtomicAdd) == (b->shaderImageFloat32AtomicAdd))) {
15936         onFail("a->shaderImageFloat32AtomicAdd (Error: Value not equal)");
15937     };
15938     if (!((a->sparseImageFloat32Atomics) == (b->sparseImageFloat32Atomics))) {
15939         onFail("a->sparseImageFloat32Atomics (Error: Value not equal)");
15940     };
15941     if (!((a->sparseImageFloat32AtomicAdd) == (b->sparseImageFloat32AtomicAdd))) {
15942         onFail("a->sparseImageFloat32AtomicAdd (Error: Value not equal)");
15943     };
15944 }
15945 
15946 #endif
15947 #ifdef VK_EXT_host_query_reset
15948 #endif
15949 #ifdef VK_EXT_index_type_uint8
checkEqual_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT * a,const VkPhysicalDeviceIndexTypeUint8FeaturesEXT * b,OnFailCompareFunc onFail)15950 void checkEqual_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
15951     const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* a,
15952     const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* b, OnFailCompareFunc onFail) {
15953     if (!((a->sType) == (b->sType))) {
15954         onFail("a->sType (Error: Value not equal)");
15955     };
15956     if (a->pNext) {
15957         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15958     }
15959     if (!((a->indexTypeUint8) == (b->indexTypeUint8))) {
15960         onFail("a->indexTypeUint8 (Error: Value not equal)");
15961     };
15962 }
15963 
15964 #endif
15965 #ifdef VK_EXT_extended_dynamic_state
checkEqual_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * a,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * b,OnFailCompareFunc onFail)15966 void checkEqual_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
15967     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* a,
15968     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* b, OnFailCompareFunc onFail) {
15969     if (!((a->sType) == (b->sType))) {
15970         onFail("a->sType (Error: Value not equal)");
15971     };
15972     if (a->pNext) {
15973         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15974     }
15975     if (!((a->extendedDynamicState) == (b->extendedDynamicState))) {
15976         onFail("a->extendedDynamicState (Error: Value not equal)");
15977     };
15978 }
15979 
15980 #endif
15981 #ifdef VK_EXT_shader_atomic_float2
checkEqual_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT * a,const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT * b,OnFailCompareFunc onFail)15982 void checkEqual_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
15983     const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* a,
15984     const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* b, OnFailCompareFunc onFail) {
15985     if (!((a->sType) == (b->sType))) {
15986         onFail("a->sType (Error: Value not equal)");
15987     };
15988     if (a->pNext) {
15989         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
15990     }
15991     if (!((a->shaderBufferFloat16Atomics) == (b->shaderBufferFloat16Atomics))) {
15992         onFail("a->shaderBufferFloat16Atomics (Error: Value not equal)");
15993     };
15994     if (!((a->shaderBufferFloat16AtomicAdd) == (b->shaderBufferFloat16AtomicAdd))) {
15995         onFail("a->shaderBufferFloat16AtomicAdd (Error: Value not equal)");
15996     };
15997     if (!((a->shaderBufferFloat16AtomicMinMax) == (b->shaderBufferFloat16AtomicMinMax))) {
15998         onFail("a->shaderBufferFloat16AtomicMinMax (Error: Value not equal)");
15999     };
16000     if (!((a->shaderBufferFloat32AtomicMinMax) == (b->shaderBufferFloat32AtomicMinMax))) {
16001         onFail("a->shaderBufferFloat32AtomicMinMax (Error: Value not equal)");
16002     };
16003     if (!((a->shaderBufferFloat64AtomicMinMax) == (b->shaderBufferFloat64AtomicMinMax))) {
16004         onFail("a->shaderBufferFloat64AtomicMinMax (Error: Value not equal)");
16005     };
16006     if (!((a->shaderSharedFloat16Atomics) == (b->shaderSharedFloat16Atomics))) {
16007         onFail("a->shaderSharedFloat16Atomics (Error: Value not equal)");
16008     };
16009     if (!((a->shaderSharedFloat16AtomicAdd) == (b->shaderSharedFloat16AtomicAdd))) {
16010         onFail("a->shaderSharedFloat16AtomicAdd (Error: Value not equal)");
16011     };
16012     if (!((a->shaderSharedFloat16AtomicMinMax) == (b->shaderSharedFloat16AtomicMinMax))) {
16013         onFail("a->shaderSharedFloat16AtomicMinMax (Error: Value not equal)");
16014     };
16015     if (!((a->shaderSharedFloat32AtomicMinMax) == (b->shaderSharedFloat32AtomicMinMax))) {
16016         onFail("a->shaderSharedFloat32AtomicMinMax (Error: Value not equal)");
16017     };
16018     if (!((a->shaderSharedFloat64AtomicMinMax) == (b->shaderSharedFloat64AtomicMinMax))) {
16019         onFail("a->shaderSharedFloat64AtomicMinMax (Error: Value not equal)");
16020     };
16021     if (!((a->shaderImageFloat32AtomicMinMax) == (b->shaderImageFloat32AtomicMinMax))) {
16022         onFail("a->shaderImageFloat32AtomicMinMax (Error: Value not equal)");
16023     };
16024     if (!((a->sparseImageFloat32AtomicMinMax) == (b->sparseImageFloat32AtomicMinMax))) {
16025         onFail("a->sparseImageFloat32AtomicMinMax (Error: Value not equal)");
16026     };
16027 }
16028 
16029 #endif
16030 #ifdef VK_EXT_surface_maintenance1
checkEqual_VkSurfacePresentModeEXT(const VkSurfacePresentModeEXT * a,const VkSurfacePresentModeEXT * b,OnFailCompareFunc onFail)16031 void checkEqual_VkSurfacePresentModeEXT(const VkSurfacePresentModeEXT* a,
16032                                         const VkSurfacePresentModeEXT* b,
16033                                         OnFailCompareFunc onFail) {
16034     if (!((a->sType) == (b->sType))) {
16035         onFail("a->sType (Error: Value not equal)");
16036     };
16037     if (a->pNext) {
16038         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16039     }
16040     if (!((a->presentMode) == (b->presentMode))) {
16041         onFail("a->presentMode (Error: Value not equal)");
16042     };
16043 }
16044 
checkEqual_VkSurfacePresentScalingCapabilitiesEXT(const VkSurfacePresentScalingCapabilitiesEXT * a,const VkSurfacePresentScalingCapabilitiesEXT * b,OnFailCompareFunc onFail)16045 void checkEqual_VkSurfacePresentScalingCapabilitiesEXT(
16046     const VkSurfacePresentScalingCapabilitiesEXT* a,
16047     const VkSurfacePresentScalingCapabilitiesEXT* b, OnFailCompareFunc onFail) {
16048     if (!((a->sType) == (b->sType))) {
16049         onFail("a->sType (Error: Value not equal)");
16050     };
16051     if (a->pNext) {
16052         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16053     }
16054     if (!((a->supportedPresentScaling) == (b->supportedPresentScaling))) {
16055         onFail("a->supportedPresentScaling (Error: Value not equal)");
16056     };
16057     if (!((a->supportedPresentGravityX) == (b->supportedPresentGravityX))) {
16058         onFail("a->supportedPresentGravityX (Error: Value not equal)");
16059     };
16060     if (!((a->supportedPresentGravityY) == (b->supportedPresentGravityY))) {
16061         onFail("a->supportedPresentGravityY (Error: Value not equal)");
16062     };
16063     checkEqual_VkExtent2D(&a->minScaledImageExtent, &b->minScaledImageExtent, onFail);
16064     checkEqual_VkExtent2D(&a->maxScaledImageExtent, &b->maxScaledImageExtent, onFail);
16065 }
16066 
checkEqual_VkSurfacePresentModeCompatibilityEXT(const VkSurfacePresentModeCompatibilityEXT * a,const VkSurfacePresentModeCompatibilityEXT * b,OnFailCompareFunc onFail)16067 void checkEqual_VkSurfacePresentModeCompatibilityEXT(const VkSurfacePresentModeCompatibilityEXT* a,
16068                                                      const VkSurfacePresentModeCompatibilityEXT* b,
16069                                                      OnFailCompareFunc onFail) {
16070     if (!((a->sType) == (b->sType))) {
16071         onFail("a->sType (Error: Value not equal)");
16072     };
16073     if (a->pNext) {
16074         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16075     }
16076     if (!((a->presentModeCount) == (b->presentModeCount))) {
16077         onFail("a->presentModeCount (Error: Value not equal)");
16078     };
16079     if (!((!(a->pPresentModes) && !(b->pPresentModes)) ||
16080           ((a->pPresentModes) && (b->pPresentModes)))) {
16081         onFail("a->pPresentModes (Error: Mismatch in optional field)");
16082     };
16083     if (a->pPresentModes && b->pPresentModes) {
16084         if (!((a->presentModeCount) == (b->presentModeCount))) {
16085             onFail("a->pPresentModes (Error: Lengths not equal)");
16086         };
16087         if (!((memcmp(a->pPresentModes, b->pPresentModes,
16088                       a->presentModeCount * sizeof(VkPresentModeKHR)) == 0))) {
16089             onFail("a->pPresentModes (Error: Unequal dyn array)");
16090         };
16091     }
16092 }
16093 
16094 #endif
16095 #ifdef VK_EXT_swapchain_maintenance1
checkEqual_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT * a,const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT * b,OnFailCompareFunc onFail)16096 void checkEqual_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
16097     const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* a,
16098     const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* b, OnFailCompareFunc onFail) {
16099     if (!((a->sType) == (b->sType))) {
16100         onFail("a->sType (Error: Value not equal)");
16101     };
16102     if (a->pNext) {
16103         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16104     }
16105     if (!((a->swapchainMaintenance1) == (b->swapchainMaintenance1))) {
16106         onFail("a->swapchainMaintenance1 (Error: Value not equal)");
16107     };
16108 }
16109 
checkEqual_VkSwapchainPresentFenceInfoEXT(const VkSwapchainPresentFenceInfoEXT * a,const VkSwapchainPresentFenceInfoEXT * b,OnFailCompareFunc onFail)16110 void checkEqual_VkSwapchainPresentFenceInfoEXT(const VkSwapchainPresentFenceInfoEXT* a,
16111                                                const VkSwapchainPresentFenceInfoEXT* b,
16112                                                OnFailCompareFunc onFail) {
16113     if (!((a->sType) == (b->sType))) {
16114         onFail("a->sType (Error: Value not equal)");
16115     };
16116     if (a->pNext) {
16117         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16118     }
16119     if (!((a->swapchainCount) == (b->swapchainCount))) {
16120         onFail("a->swapchainCount (Error: Value not equal)");
16121     };
16122     if (!((a->swapchainCount) == (b->swapchainCount))) {
16123         onFail("a->pFences (Error: Lengths not equal)");
16124     };
16125     if (!((memcmp(a->pFences, b->pFences, a->swapchainCount * sizeof(const VkFence)) == 0))) {
16126         onFail("a->pFences (Error: Unequal dyn array)");
16127     };
16128 }
16129 
checkEqual_VkSwapchainPresentModesCreateInfoEXT(const VkSwapchainPresentModesCreateInfoEXT * a,const VkSwapchainPresentModesCreateInfoEXT * b,OnFailCompareFunc onFail)16130 void checkEqual_VkSwapchainPresentModesCreateInfoEXT(const VkSwapchainPresentModesCreateInfoEXT* a,
16131                                                      const VkSwapchainPresentModesCreateInfoEXT* b,
16132                                                      OnFailCompareFunc onFail) {
16133     if (!((a->sType) == (b->sType))) {
16134         onFail("a->sType (Error: Value not equal)");
16135     };
16136     if (a->pNext) {
16137         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16138     }
16139     if (!((a->presentModeCount) == (b->presentModeCount))) {
16140         onFail("a->presentModeCount (Error: Value not equal)");
16141     };
16142     if (!((a->presentModeCount) == (b->presentModeCount))) {
16143         onFail("a->pPresentModes (Error: Lengths not equal)");
16144     };
16145     if (!((memcmp(a->pPresentModes, b->pPresentModes,
16146                   a->presentModeCount * sizeof(const VkPresentModeKHR)) == 0))) {
16147         onFail("a->pPresentModes (Error: Unequal dyn array)");
16148     };
16149 }
16150 
checkEqual_VkSwapchainPresentModeInfoEXT(const VkSwapchainPresentModeInfoEXT * a,const VkSwapchainPresentModeInfoEXT * b,OnFailCompareFunc onFail)16151 void checkEqual_VkSwapchainPresentModeInfoEXT(const VkSwapchainPresentModeInfoEXT* a,
16152                                               const VkSwapchainPresentModeInfoEXT* b,
16153                                               OnFailCompareFunc onFail) {
16154     if (!((a->sType) == (b->sType))) {
16155         onFail("a->sType (Error: Value not equal)");
16156     };
16157     if (a->pNext) {
16158         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16159     }
16160     if (!((a->swapchainCount) == (b->swapchainCount))) {
16161         onFail("a->swapchainCount (Error: Value not equal)");
16162     };
16163     if (!((a->swapchainCount) == (b->swapchainCount))) {
16164         onFail("a->pPresentModes (Error: Lengths not equal)");
16165     };
16166     if (!((memcmp(a->pPresentModes, b->pPresentModes,
16167                   a->swapchainCount * sizeof(const VkPresentModeKHR)) == 0))) {
16168         onFail("a->pPresentModes (Error: Unequal dyn array)");
16169     };
16170 }
16171 
checkEqual_VkSwapchainPresentScalingCreateInfoEXT(const VkSwapchainPresentScalingCreateInfoEXT * a,const VkSwapchainPresentScalingCreateInfoEXT * b,OnFailCompareFunc onFail)16172 void checkEqual_VkSwapchainPresentScalingCreateInfoEXT(
16173     const VkSwapchainPresentScalingCreateInfoEXT* a,
16174     const VkSwapchainPresentScalingCreateInfoEXT* b, OnFailCompareFunc onFail) {
16175     if (!((a->sType) == (b->sType))) {
16176         onFail("a->sType (Error: Value not equal)");
16177     };
16178     if (a->pNext) {
16179         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16180     }
16181     if (!((a->scalingBehavior) == (b->scalingBehavior))) {
16182         onFail("a->scalingBehavior (Error: Value not equal)");
16183     };
16184     if (!((a->presentGravityX) == (b->presentGravityX))) {
16185         onFail("a->presentGravityX (Error: Value not equal)");
16186     };
16187     if (!((a->presentGravityY) == (b->presentGravityY))) {
16188         onFail("a->presentGravityY (Error: Value not equal)");
16189     };
16190 }
16191 
checkEqual_VkReleaseSwapchainImagesInfoEXT(const VkReleaseSwapchainImagesInfoEXT * a,const VkReleaseSwapchainImagesInfoEXT * b,OnFailCompareFunc onFail)16192 void checkEqual_VkReleaseSwapchainImagesInfoEXT(const VkReleaseSwapchainImagesInfoEXT* a,
16193                                                 const VkReleaseSwapchainImagesInfoEXT* b,
16194                                                 OnFailCompareFunc onFail) {
16195     if (!((a->sType) == (b->sType))) {
16196         onFail("a->sType (Error: Value not equal)");
16197     };
16198     if (a->pNext) {
16199         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16200     }
16201     if (!((a->swapchain) == (b->swapchain))) {
16202         onFail("a->swapchain (Error: Value not equal)");
16203     };
16204     if (!((a->imageIndexCount) == (b->imageIndexCount))) {
16205         onFail("a->imageIndexCount (Error: Value not equal)");
16206     };
16207     if (!((a->imageIndexCount) == (b->imageIndexCount))) {
16208         onFail("a->pImageIndices (Error: Lengths not equal)");
16209     };
16210     if (!((memcmp(a->pImageIndices, b->pImageIndices,
16211                   a->imageIndexCount * sizeof(const uint32_t)) == 0))) {
16212         onFail("a->pImageIndices (Error: Unequal dyn array)");
16213     };
16214 }
16215 
16216 #endif
16217 #ifdef VK_EXT_shader_demote_to_helper_invocation
16218 #endif
16219 #ifdef VK_NV_device_generated_commands
checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV * a,const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV * b,OnFailCompareFunc onFail)16220 void checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
16221     const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* a,
16222     const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* b, OnFailCompareFunc onFail) {
16223     if (!((a->sType) == (b->sType))) {
16224         onFail("a->sType (Error: Value not equal)");
16225     };
16226     if (a->pNext) {
16227         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16228     }
16229     if (!((a->maxGraphicsShaderGroupCount) == (b->maxGraphicsShaderGroupCount))) {
16230         onFail("a->maxGraphicsShaderGroupCount (Error: Value not equal)");
16231     };
16232     if (!((a->maxIndirectSequenceCount) == (b->maxIndirectSequenceCount))) {
16233         onFail("a->maxIndirectSequenceCount (Error: Value not equal)");
16234     };
16235     if (!((a->maxIndirectCommandsTokenCount) == (b->maxIndirectCommandsTokenCount))) {
16236         onFail("a->maxIndirectCommandsTokenCount (Error: Value not equal)");
16237     };
16238     if (!((a->maxIndirectCommandsStreamCount) == (b->maxIndirectCommandsStreamCount))) {
16239         onFail("a->maxIndirectCommandsStreamCount (Error: Value not equal)");
16240     };
16241     if (!((a->maxIndirectCommandsTokenOffset) == (b->maxIndirectCommandsTokenOffset))) {
16242         onFail("a->maxIndirectCommandsTokenOffset (Error: Value not equal)");
16243     };
16244     if (!((a->maxIndirectCommandsStreamStride) == (b->maxIndirectCommandsStreamStride))) {
16245         onFail("a->maxIndirectCommandsStreamStride (Error: Value not equal)");
16246     };
16247     if (!((a->minSequencesCountBufferOffsetAlignment) ==
16248           (b->minSequencesCountBufferOffsetAlignment))) {
16249         onFail("a->minSequencesCountBufferOffsetAlignment (Error: Value not equal)");
16250     };
16251     if (!((a->minSequencesIndexBufferOffsetAlignment) ==
16252           (b->minSequencesIndexBufferOffsetAlignment))) {
16253         onFail("a->minSequencesIndexBufferOffsetAlignment (Error: Value not equal)");
16254     };
16255     if (!((a->minIndirectCommandsBufferOffsetAlignment) ==
16256           (b->minIndirectCommandsBufferOffsetAlignment))) {
16257         onFail("a->minIndirectCommandsBufferOffsetAlignment (Error: Value not equal)");
16258     };
16259 }
16260 
checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV * a,const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV * b,OnFailCompareFunc onFail)16261 void checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
16262     const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* a,
16263     const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* b, OnFailCompareFunc onFail) {
16264     if (!((a->sType) == (b->sType))) {
16265         onFail("a->sType (Error: Value not equal)");
16266     };
16267     if (a->pNext) {
16268         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16269     }
16270     if (!((a->deviceGeneratedCommands) == (b->deviceGeneratedCommands))) {
16271         onFail("a->deviceGeneratedCommands (Error: Value not equal)");
16272     };
16273 }
16274 
checkEqual_VkGraphicsShaderGroupCreateInfoNV(const VkGraphicsShaderGroupCreateInfoNV * a,const VkGraphicsShaderGroupCreateInfoNV * b,OnFailCompareFunc onFail)16275 void checkEqual_VkGraphicsShaderGroupCreateInfoNV(const VkGraphicsShaderGroupCreateInfoNV* a,
16276                                                   const VkGraphicsShaderGroupCreateInfoNV* b,
16277                                                   OnFailCompareFunc onFail) {
16278     if (!((a->sType) == (b->sType))) {
16279         onFail("a->sType (Error: Value not equal)");
16280     };
16281     if (a->pNext) {
16282         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16283     }
16284     if (!((a->stageCount) == (b->stageCount))) {
16285         onFail("a->stageCount (Error: Value not equal)");
16286     };
16287     if ((a->pStages) && (b->pStages)) {
16288         if (!((a->stageCount) == (b->stageCount))) {
16289             onFail("a->pStages (Error: Lengths not equal)");
16290         };
16291         if ((a->stageCount) == (b->stageCount)) {
16292             if (a) {
16293                 for (uint32_t i = 0; i < (uint32_t)a->stageCount; ++i) {
16294                     checkEqual_VkPipelineShaderStageCreateInfo(a->pStages + i, b->pStages + i,
16295                                                                onFail);
16296                 }
16297             }
16298         }
16299     }
16300     if (!((!(a->pVertexInputState) && !(b->pVertexInputState)) ||
16301           ((a->pVertexInputState) && (b->pVertexInputState)))) {
16302         onFail("a->pVertexInputState (Error: Mismatch in optional field)");
16303     };
16304     if (a->pVertexInputState && b->pVertexInputState) {
16305         if ((a->pVertexInputState) && (b->pVertexInputState)) {
16306             checkEqual_VkPipelineVertexInputStateCreateInfo(a->pVertexInputState,
16307                                                             b->pVertexInputState, onFail);
16308         }
16309     }
16310     if (!((!(a->pTessellationState) && !(b->pTessellationState)) ||
16311           ((a->pTessellationState) && (b->pTessellationState)))) {
16312         onFail("a->pTessellationState (Error: Mismatch in optional field)");
16313     };
16314     if (a->pTessellationState && b->pTessellationState) {
16315         if ((a->pTessellationState) && (b->pTessellationState)) {
16316             checkEqual_VkPipelineTessellationStateCreateInfo(a->pTessellationState,
16317                                                              b->pTessellationState, onFail);
16318         }
16319     }
16320 }
16321 
checkEqual_VkGraphicsPipelineShaderGroupsCreateInfoNV(const VkGraphicsPipelineShaderGroupsCreateInfoNV * a,const VkGraphicsPipelineShaderGroupsCreateInfoNV * b,OnFailCompareFunc onFail)16322 void checkEqual_VkGraphicsPipelineShaderGroupsCreateInfoNV(
16323     const VkGraphicsPipelineShaderGroupsCreateInfoNV* a,
16324     const VkGraphicsPipelineShaderGroupsCreateInfoNV* b, OnFailCompareFunc onFail) {
16325     if (!((a->sType) == (b->sType))) {
16326         onFail("a->sType (Error: Value not equal)");
16327     };
16328     if (a->pNext) {
16329         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16330     }
16331     if (!((a->groupCount) == (b->groupCount))) {
16332         onFail("a->groupCount (Error: Value not equal)");
16333     };
16334     if ((a->pGroups) && (b->pGroups)) {
16335         if (!((a->groupCount) == (b->groupCount))) {
16336             onFail("a->pGroups (Error: Lengths not equal)");
16337         };
16338         if ((a->groupCount) == (b->groupCount)) {
16339             if (a) {
16340                 for (uint32_t i = 0; i < (uint32_t)a->groupCount; ++i) {
16341                     checkEqual_VkGraphicsShaderGroupCreateInfoNV(a->pGroups + i, b->pGroups + i,
16342                                                                  onFail);
16343                 }
16344             }
16345         }
16346     }
16347     if (!((a->pipelineCount) == (b->pipelineCount))) {
16348         onFail("a->pipelineCount (Error: Value not equal)");
16349     };
16350     if (!((a->pipelineCount) == (b->pipelineCount))) {
16351         onFail("a->pPipelines (Error: Lengths not equal)");
16352     };
16353     if (!((memcmp(a->pPipelines, b->pPipelines, a->pipelineCount * sizeof(const VkPipeline)) ==
16354            0))) {
16355         onFail("a->pPipelines (Error: Unequal dyn array)");
16356     };
16357 }
16358 
checkEqual_VkBindShaderGroupIndirectCommandNV(const VkBindShaderGroupIndirectCommandNV * a,const VkBindShaderGroupIndirectCommandNV * b,OnFailCompareFunc onFail)16359 void checkEqual_VkBindShaderGroupIndirectCommandNV(const VkBindShaderGroupIndirectCommandNV* a,
16360                                                    const VkBindShaderGroupIndirectCommandNV* b,
16361                                                    OnFailCompareFunc onFail) {
16362     if (!((a->groupIndex) == (b->groupIndex))) {
16363         onFail("a->groupIndex (Error: Value not equal)");
16364     };
16365 }
16366 
checkEqual_VkBindIndexBufferIndirectCommandNV(const VkBindIndexBufferIndirectCommandNV * a,const VkBindIndexBufferIndirectCommandNV * b,OnFailCompareFunc onFail)16367 void checkEqual_VkBindIndexBufferIndirectCommandNV(const VkBindIndexBufferIndirectCommandNV* a,
16368                                                    const VkBindIndexBufferIndirectCommandNV* b,
16369                                                    OnFailCompareFunc onFail) {
16370     if (!((a->bufferAddress) == (b->bufferAddress))) {
16371         onFail("a->bufferAddress (Error: Value not equal)");
16372     };
16373     if (!((a->size) == (b->size))) {
16374         onFail("a->size (Error: Value not equal)");
16375     };
16376     if (!((a->indexType) == (b->indexType))) {
16377         onFail("a->indexType (Error: Value not equal)");
16378     };
16379 }
16380 
checkEqual_VkBindVertexBufferIndirectCommandNV(const VkBindVertexBufferIndirectCommandNV * a,const VkBindVertexBufferIndirectCommandNV * b,OnFailCompareFunc onFail)16381 void checkEqual_VkBindVertexBufferIndirectCommandNV(const VkBindVertexBufferIndirectCommandNV* a,
16382                                                     const VkBindVertexBufferIndirectCommandNV* b,
16383                                                     OnFailCompareFunc onFail) {
16384     if (!((a->bufferAddress) == (b->bufferAddress))) {
16385         onFail("a->bufferAddress (Error: Value not equal)");
16386     };
16387     if (!((a->size) == (b->size))) {
16388         onFail("a->size (Error: Value not equal)");
16389     };
16390     if (!((a->stride) == (b->stride))) {
16391         onFail("a->stride (Error: Value not equal)");
16392     };
16393 }
16394 
checkEqual_VkSetStateFlagsIndirectCommandNV(const VkSetStateFlagsIndirectCommandNV * a,const VkSetStateFlagsIndirectCommandNV * b,OnFailCompareFunc onFail)16395 void checkEqual_VkSetStateFlagsIndirectCommandNV(const VkSetStateFlagsIndirectCommandNV* a,
16396                                                  const VkSetStateFlagsIndirectCommandNV* b,
16397                                                  OnFailCompareFunc onFail) {
16398     if (!((a->data) == (b->data))) {
16399         onFail("a->data (Error: Value not equal)");
16400     };
16401 }
16402 
checkEqual_VkIndirectCommandsStreamNV(const VkIndirectCommandsStreamNV * a,const VkIndirectCommandsStreamNV * b,OnFailCompareFunc onFail)16403 void checkEqual_VkIndirectCommandsStreamNV(const VkIndirectCommandsStreamNV* a,
16404                                            const VkIndirectCommandsStreamNV* b,
16405                                            OnFailCompareFunc onFail) {
16406     if (!((a->buffer) == (b->buffer))) {
16407         onFail("a->buffer (Error: Value not equal)");
16408     };
16409     if (!((a->offset) == (b->offset))) {
16410         onFail("a->offset (Error: Value not equal)");
16411     };
16412 }
16413 
checkEqual_VkIndirectCommandsLayoutTokenNV(const VkIndirectCommandsLayoutTokenNV * a,const VkIndirectCommandsLayoutTokenNV * b,OnFailCompareFunc onFail)16414 void checkEqual_VkIndirectCommandsLayoutTokenNV(const VkIndirectCommandsLayoutTokenNV* a,
16415                                                 const VkIndirectCommandsLayoutTokenNV* b,
16416                                                 OnFailCompareFunc onFail) {
16417     if (!((a->sType) == (b->sType))) {
16418         onFail("a->sType (Error: Value not equal)");
16419     };
16420     if (a->pNext) {
16421         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16422     }
16423     if (!((a->tokenType) == (b->tokenType))) {
16424         onFail("a->tokenType (Error: Value not equal)");
16425     };
16426     if (!((a->stream) == (b->stream))) {
16427         onFail("a->stream (Error: Value not equal)");
16428     };
16429     if (!((a->offset) == (b->offset))) {
16430         onFail("a->offset (Error: Value not equal)");
16431     };
16432     if (!((a->vertexBindingUnit) == (b->vertexBindingUnit))) {
16433         onFail("a->vertexBindingUnit (Error: Value not equal)");
16434     };
16435     if (!((a->vertexDynamicStride) == (b->vertexDynamicStride))) {
16436         onFail("a->vertexDynamicStride (Error: Value not equal)");
16437     };
16438     if (!((a->pushconstantPipelineLayout) == (b->pushconstantPipelineLayout))) {
16439         onFail("a->pushconstantPipelineLayout (Error: Value not equal)");
16440     };
16441     if (!((a->pushconstantShaderStageFlags) == (b->pushconstantShaderStageFlags))) {
16442         onFail("a->pushconstantShaderStageFlags (Error: Value not equal)");
16443     };
16444     if (!((a->pushconstantOffset) == (b->pushconstantOffset))) {
16445         onFail("a->pushconstantOffset (Error: Value not equal)");
16446     };
16447     if (!((a->pushconstantSize) == (b->pushconstantSize))) {
16448         onFail("a->pushconstantSize (Error: Value not equal)");
16449     };
16450     if (!((a->indirectStateFlags) == (b->indirectStateFlags))) {
16451         onFail("a->indirectStateFlags (Error: Value not equal)");
16452     };
16453     if (!((a->indexTypeCount) == (b->indexTypeCount))) {
16454         onFail("a->indexTypeCount (Error: Value not equal)");
16455     };
16456     if (!((a->indexTypeCount) == (b->indexTypeCount))) {
16457         onFail("a->pIndexTypes (Error: Lengths not equal)");
16458     };
16459     if (!((memcmp(a->pIndexTypes, b->pIndexTypes, a->indexTypeCount * sizeof(const VkIndexType)) ==
16460            0))) {
16461         onFail("a->pIndexTypes (Error: Unequal dyn array)");
16462     };
16463     if (!((a->indexTypeCount) == (b->indexTypeCount))) {
16464         onFail("a->pIndexTypeValues (Error: Lengths not equal)");
16465     };
16466     if (!((memcmp(a->pIndexTypeValues, b->pIndexTypeValues,
16467                   a->indexTypeCount * sizeof(const uint32_t)) == 0))) {
16468         onFail("a->pIndexTypeValues (Error: Unequal dyn array)");
16469     };
16470 }
16471 
checkEqual_VkIndirectCommandsLayoutCreateInfoNV(const VkIndirectCommandsLayoutCreateInfoNV * a,const VkIndirectCommandsLayoutCreateInfoNV * b,OnFailCompareFunc onFail)16472 void checkEqual_VkIndirectCommandsLayoutCreateInfoNV(const VkIndirectCommandsLayoutCreateInfoNV* a,
16473                                                      const VkIndirectCommandsLayoutCreateInfoNV* b,
16474                                                      OnFailCompareFunc onFail) {
16475     if (!((a->sType) == (b->sType))) {
16476         onFail("a->sType (Error: Value not equal)");
16477     };
16478     if (a->pNext) {
16479         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16480     }
16481     if (!((a->flags) == (b->flags))) {
16482         onFail("a->flags (Error: Value not equal)");
16483     };
16484     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
16485         onFail("a->pipelineBindPoint (Error: Value not equal)");
16486     };
16487     if (!((a->tokenCount) == (b->tokenCount))) {
16488         onFail("a->tokenCount (Error: Value not equal)");
16489     };
16490     if ((a->pTokens) && (b->pTokens)) {
16491         if (!((a->tokenCount) == (b->tokenCount))) {
16492             onFail("a->pTokens (Error: Lengths not equal)");
16493         };
16494         if ((a->tokenCount) == (b->tokenCount)) {
16495             if (a) {
16496                 for (uint32_t i = 0; i < (uint32_t)a->tokenCount; ++i) {
16497                     checkEqual_VkIndirectCommandsLayoutTokenNV(a->pTokens + i, b->pTokens + i,
16498                                                                onFail);
16499                 }
16500             }
16501         }
16502     }
16503     if (!((a->streamCount) == (b->streamCount))) {
16504         onFail("a->streamCount (Error: Value not equal)");
16505     };
16506     if (!((a->streamCount) == (b->streamCount))) {
16507         onFail("a->pStreamStrides (Error: Lengths not equal)");
16508     };
16509     if (!((memcmp(a->pStreamStrides, b->pStreamStrides, a->streamCount * sizeof(const uint32_t)) ==
16510            0))) {
16511         onFail("a->pStreamStrides (Error: Unequal dyn array)");
16512     };
16513 }
16514 
checkEqual_VkGeneratedCommandsInfoNV(const VkGeneratedCommandsInfoNV * a,const VkGeneratedCommandsInfoNV * b,OnFailCompareFunc onFail)16515 void checkEqual_VkGeneratedCommandsInfoNV(const VkGeneratedCommandsInfoNV* a,
16516                                           const VkGeneratedCommandsInfoNV* b,
16517                                           OnFailCompareFunc onFail) {
16518     if (!((a->sType) == (b->sType))) {
16519         onFail("a->sType (Error: Value not equal)");
16520     };
16521     if (a->pNext) {
16522         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16523     }
16524     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
16525         onFail("a->pipelineBindPoint (Error: Value not equal)");
16526     };
16527     if (!((a->pipeline) == (b->pipeline))) {
16528         onFail("a->pipeline (Error: Value not equal)");
16529     };
16530     if (!((a->indirectCommandsLayout) == (b->indirectCommandsLayout))) {
16531         onFail("a->indirectCommandsLayout (Error: Value not equal)");
16532     };
16533     if (!((a->streamCount) == (b->streamCount))) {
16534         onFail("a->streamCount (Error: Value not equal)");
16535     };
16536     if ((a->pStreams) && (b->pStreams)) {
16537         if (!((a->streamCount) == (b->streamCount))) {
16538             onFail("a->pStreams (Error: Lengths not equal)");
16539         };
16540         if ((a->streamCount) == (b->streamCount)) {
16541             if (a) {
16542                 for (uint32_t i = 0; i < (uint32_t)a->streamCount; ++i) {
16543                     checkEqual_VkIndirectCommandsStreamNV(a->pStreams + i, b->pStreams + i, onFail);
16544                 }
16545             }
16546         }
16547     }
16548     if (!((a->sequencesCount) == (b->sequencesCount))) {
16549         onFail("a->sequencesCount (Error: Value not equal)");
16550     };
16551     if (!((a->preprocessBuffer) == (b->preprocessBuffer))) {
16552         onFail("a->preprocessBuffer (Error: Value not equal)");
16553     };
16554     if (!((a->preprocessOffset) == (b->preprocessOffset))) {
16555         onFail("a->preprocessOffset (Error: Value not equal)");
16556     };
16557     if (!((a->preprocessSize) == (b->preprocessSize))) {
16558         onFail("a->preprocessSize (Error: Value not equal)");
16559     };
16560     if (!((a->sequencesCountBuffer) == (b->sequencesCountBuffer))) {
16561         onFail("a->sequencesCountBuffer (Error: Value not equal)");
16562     };
16563     if (!((a->sequencesCountOffset) == (b->sequencesCountOffset))) {
16564         onFail("a->sequencesCountOffset (Error: Value not equal)");
16565     };
16566     if (!((a->sequencesIndexBuffer) == (b->sequencesIndexBuffer))) {
16567         onFail("a->sequencesIndexBuffer (Error: Value not equal)");
16568     };
16569     if (!((a->sequencesIndexOffset) == (b->sequencesIndexOffset))) {
16570         onFail("a->sequencesIndexOffset (Error: Value not equal)");
16571     };
16572 }
16573 
checkEqual_VkGeneratedCommandsMemoryRequirementsInfoNV(const VkGeneratedCommandsMemoryRequirementsInfoNV * a,const VkGeneratedCommandsMemoryRequirementsInfoNV * b,OnFailCompareFunc onFail)16574 void checkEqual_VkGeneratedCommandsMemoryRequirementsInfoNV(
16575     const VkGeneratedCommandsMemoryRequirementsInfoNV* a,
16576     const VkGeneratedCommandsMemoryRequirementsInfoNV* b, OnFailCompareFunc onFail) {
16577     if (!((a->sType) == (b->sType))) {
16578         onFail("a->sType (Error: Value not equal)");
16579     };
16580     if (a->pNext) {
16581         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16582     }
16583     if (!((a->pipelineBindPoint) == (b->pipelineBindPoint))) {
16584         onFail("a->pipelineBindPoint (Error: Value not equal)");
16585     };
16586     if (!((a->pipeline) == (b->pipeline))) {
16587         onFail("a->pipeline (Error: Value not equal)");
16588     };
16589     if (!((a->indirectCommandsLayout) == (b->indirectCommandsLayout))) {
16590         onFail("a->indirectCommandsLayout (Error: Value not equal)");
16591     };
16592     if (!((a->maxSequencesCount) == (b->maxSequencesCount))) {
16593         onFail("a->maxSequencesCount (Error: Value not equal)");
16594     };
16595 }
16596 
16597 #endif
16598 #ifdef VK_NV_inherited_viewport_scissor
checkEqual_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(const VkPhysicalDeviceInheritedViewportScissorFeaturesNV * a,const VkPhysicalDeviceInheritedViewportScissorFeaturesNV * b,OnFailCompareFunc onFail)16599 void checkEqual_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
16600     const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* a,
16601     const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* b, OnFailCompareFunc onFail) {
16602     if (!((a->sType) == (b->sType))) {
16603         onFail("a->sType (Error: Value not equal)");
16604     };
16605     if (a->pNext) {
16606         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16607     }
16608     if (!((a->inheritedViewportScissor2D) == (b->inheritedViewportScissor2D))) {
16609         onFail("a->inheritedViewportScissor2D (Error: Value not equal)");
16610     };
16611 }
16612 
checkEqual_VkCommandBufferInheritanceViewportScissorInfoNV(const VkCommandBufferInheritanceViewportScissorInfoNV * a,const VkCommandBufferInheritanceViewportScissorInfoNV * b,OnFailCompareFunc onFail)16613 void checkEqual_VkCommandBufferInheritanceViewportScissorInfoNV(
16614     const VkCommandBufferInheritanceViewportScissorInfoNV* a,
16615     const VkCommandBufferInheritanceViewportScissorInfoNV* b, OnFailCompareFunc onFail) {
16616     if (!((a->sType) == (b->sType))) {
16617         onFail("a->sType (Error: Value not equal)");
16618     };
16619     if (a->pNext) {
16620         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16621     }
16622     if (!((a->viewportScissor2D) == (b->viewportScissor2D))) {
16623         onFail("a->viewportScissor2D (Error: Value not equal)");
16624     };
16625     if (!((a->viewportDepthCount) == (b->viewportDepthCount))) {
16626         onFail("a->viewportDepthCount (Error: Value not equal)");
16627     };
16628     if (!((!(a->pViewportDepths) && !(b->pViewportDepths)) ||
16629           ((a->pViewportDepths) && (b->pViewportDepths)))) {
16630         onFail("a->pViewportDepths (Error: Mismatch in optional field)");
16631     };
16632     if (a->pViewportDepths && b->pViewportDepths) {
16633         if ((a->pViewportDepths) && (b->pViewportDepths)) {
16634             checkEqual_VkViewport(a->pViewportDepths, b->pViewportDepths, onFail);
16635         }
16636     }
16637 }
16638 
16639 #endif
16640 #ifdef VK_EXT_texel_buffer_alignment
checkEqual_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * a,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * b,OnFailCompareFunc onFail)16641 void checkEqual_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
16642     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* a,
16643     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* b, OnFailCompareFunc onFail) {
16644     if (!((a->sType) == (b->sType))) {
16645         onFail("a->sType (Error: Value not equal)");
16646     };
16647     if (a->pNext) {
16648         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16649     }
16650     if (!((a->texelBufferAlignment) == (b->texelBufferAlignment))) {
16651         onFail("a->texelBufferAlignment (Error: Value not equal)");
16652     };
16653 }
16654 
16655 #endif
16656 #ifdef VK_QCOM_render_pass_transform
checkEqual_VkRenderPassTransformBeginInfoQCOM(const VkRenderPassTransformBeginInfoQCOM * a,const VkRenderPassTransformBeginInfoQCOM * b,OnFailCompareFunc onFail)16657 void checkEqual_VkRenderPassTransformBeginInfoQCOM(const VkRenderPassTransformBeginInfoQCOM* a,
16658                                                    const VkRenderPassTransformBeginInfoQCOM* b,
16659                                                    OnFailCompareFunc onFail) {
16660     if (!((a->sType) == (b->sType))) {
16661         onFail("a->sType (Error: Value not equal)");
16662     };
16663     if (a->pNext) {
16664         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16665     }
16666     if (!((a->transform) == (b->transform))) {
16667         onFail("a->transform (Error: Value not equal)");
16668     };
16669 }
16670 
checkEqual_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(const VkCommandBufferInheritanceRenderPassTransformInfoQCOM * a,const VkCommandBufferInheritanceRenderPassTransformInfoQCOM * b,OnFailCompareFunc onFail)16671 void checkEqual_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
16672     const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* a,
16673     const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* b, OnFailCompareFunc onFail) {
16674     if (!((a->sType) == (b->sType))) {
16675         onFail("a->sType (Error: Value not equal)");
16676     };
16677     if (a->pNext) {
16678         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16679     }
16680     if (!((a->transform) == (b->transform))) {
16681         onFail("a->transform (Error: Value not equal)");
16682     };
16683     checkEqual_VkRect2D(&a->renderArea, &b->renderArea, onFail);
16684 }
16685 
16686 #endif
16687 #ifdef VK_EXT_device_memory_report
checkEqual_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * a,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * b,OnFailCompareFunc onFail)16688 void checkEqual_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
16689     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* a,
16690     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* b, OnFailCompareFunc onFail) {
16691     if (!((a->sType) == (b->sType))) {
16692         onFail("a->sType (Error: Value not equal)");
16693     };
16694     if (a->pNext) {
16695         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16696     }
16697     if (!((a->deviceMemoryReport) == (b->deviceMemoryReport))) {
16698         onFail("a->deviceMemoryReport (Error: Value not equal)");
16699     };
16700 }
16701 
checkEqual_VkDeviceMemoryReportCallbackDataEXT(const VkDeviceMemoryReportCallbackDataEXT * a,const VkDeviceMemoryReportCallbackDataEXT * b,OnFailCompareFunc onFail)16702 void checkEqual_VkDeviceMemoryReportCallbackDataEXT(const VkDeviceMemoryReportCallbackDataEXT* a,
16703                                                     const VkDeviceMemoryReportCallbackDataEXT* b,
16704                                                     OnFailCompareFunc onFail) {
16705     if (!((a->sType) == (b->sType))) {
16706         onFail("a->sType (Error: Value not equal)");
16707     };
16708     if (a->pNext) {
16709         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16710     }
16711     if (!((a->flags) == (b->flags))) {
16712         onFail("a->flags (Error: Value not equal)");
16713     };
16714     if (!((a->type) == (b->type))) {
16715         onFail("a->type (Error: Value not equal)");
16716     };
16717     if (!((a->memoryObjectId) == (b->memoryObjectId))) {
16718         onFail("a->memoryObjectId (Error: Value not equal)");
16719     };
16720     if (!((a->size) == (b->size))) {
16721         onFail("a->size (Error: Value not equal)");
16722     };
16723     if (!((a->objectType) == (b->objectType))) {
16724         onFail("a->objectType (Error: Value not equal)");
16725     };
16726     if (!((a->objectHandle) == (b->objectHandle))) {
16727         onFail("a->objectHandle (Error: Value not equal)");
16728     };
16729     if (!((a->heapIndex) == (b->heapIndex))) {
16730         onFail("a->heapIndex (Error: Value not equal)");
16731     };
16732 }
16733 
checkEqual_VkDeviceDeviceMemoryReportCreateInfoEXT(const VkDeviceDeviceMemoryReportCreateInfoEXT * a,const VkDeviceDeviceMemoryReportCreateInfoEXT * b,OnFailCompareFunc onFail)16734 void checkEqual_VkDeviceDeviceMemoryReportCreateInfoEXT(
16735     const VkDeviceDeviceMemoryReportCreateInfoEXT* a,
16736     const VkDeviceDeviceMemoryReportCreateInfoEXT* b, OnFailCompareFunc onFail) {
16737     if (!((a->sType) == (b->sType))) {
16738         onFail("a->sType (Error: Value not equal)");
16739     };
16740     if (a->pNext) {
16741         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16742     }
16743     if (!((a->flags) == (b->flags))) {
16744         onFail("a->flags (Error: Value not equal)");
16745     };
16746     if (!((a->pfnUserCallback) == (b->pfnUserCallback))) {
16747         onFail("a->pfnUserCallback (Error: Value not equal)");
16748     };
16749 }
16750 
16751 #endif
16752 #ifdef VK_EXT_acquire_drm_display
16753 #endif
16754 #ifdef VK_EXT_robustness2
checkEqual_VkPhysicalDeviceRobustness2FeaturesEXT(const VkPhysicalDeviceRobustness2FeaturesEXT * a,const VkPhysicalDeviceRobustness2FeaturesEXT * b,OnFailCompareFunc onFail)16755 void checkEqual_VkPhysicalDeviceRobustness2FeaturesEXT(
16756     const VkPhysicalDeviceRobustness2FeaturesEXT* a,
16757     const VkPhysicalDeviceRobustness2FeaturesEXT* b, OnFailCompareFunc onFail) {
16758     if (!((a->sType) == (b->sType))) {
16759         onFail("a->sType (Error: Value not equal)");
16760     };
16761     if (a->pNext) {
16762         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16763     }
16764     if (!((a->robustBufferAccess2) == (b->robustBufferAccess2))) {
16765         onFail("a->robustBufferAccess2 (Error: Value not equal)");
16766     };
16767     if (!((a->robustImageAccess2) == (b->robustImageAccess2))) {
16768         onFail("a->robustImageAccess2 (Error: Value not equal)");
16769     };
16770     if (!((a->nullDescriptor) == (b->nullDescriptor))) {
16771         onFail("a->nullDescriptor (Error: Value not equal)");
16772     };
16773 }
16774 
checkEqual_VkPhysicalDeviceRobustness2PropertiesEXT(const VkPhysicalDeviceRobustness2PropertiesEXT * a,const VkPhysicalDeviceRobustness2PropertiesEXT * b,OnFailCompareFunc onFail)16775 void checkEqual_VkPhysicalDeviceRobustness2PropertiesEXT(
16776     const VkPhysicalDeviceRobustness2PropertiesEXT* a,
16777     const VkPhysicalDeviceRobustness2PropertiesEXT* b, OnFailCompareFunc onFail) {
16778     if (!((a->sType) == (b->sType))) {
16779         onFail("a->sType (Error: Value not equal)");
16780     };
16781     if (a->pNext) {
16782         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16783     }
16784     if (!((a->robustStorageBufferAccessSizeAlignment) ==
16785           (b->robustStorageBufferAccessSizeAlignment))) {
16786         onFail("a->robustStorageBufferAccessSizeAlignment (Error: Value not equal)");
16787     };
16788     if (!((a->robustUniformBufferAccessSizeAlignment) ==
16789           (b->robustUniformBufferAccessSizeAlignment))) {
16790         onFail("a->robustUniformBufferAccessSizeAlignment (Error: Value not equal)");
16791     };
16792 }
16793 
16794 #endif
16795 #ifdef VK_EXT_custom_border_color
checkEqual_VkSamplerCustomBorderColorCreateInfoEXT(const VkSamplerCustomBorderColorCreateInfoEXT * a,const VkSamplerCustomBorderColorCreateInfoEXT * b,OnFailCompareFunc onFail)16796 void checkEqual_VkSamplerCustomBorderColorCreateInfoEXT(
16797     const VkSamplerCustomBorderColorCreateInfoEXT* a,
16798     const VkSamplerCustomBorderColorCreateInfoEXT* b, OnFailCompareFunc onFail) {
16799     if (!((a->sType) == (b->sType))) {
16800         onFail("a->sType (Error: Value not equal)");
16801     };
16802     if (a->pNext) {
16803         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16804     }
16805     checkEqual_VkClearColorValue(&a->customBorderColor, &b->customBorderColor, onFail);
16806     if (!((a->format) == (b->format))) {
16807         onFail("a->format (Error: Value not equal)");
16808     };
16809 }
16810 
checkEqual_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const VkPhysicalDeviceCustomBorderColorPropertiesEXT * a,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * b,OnFailCompareFunc onFail)16811 void checkEqual_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
16812     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* a,
16813     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* b, OnFailCompareFunc onFail) {
16814     if (!((a->sType) == (b->sType))) {
16815         onFail("a->sType (Error: Value not equal)");
16816     };
16817     if (a->pNext) {
16818         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16819     }
16820     if (!((a->maxCustomBorderColorSamplers) == (b->maxCustomBorderColorSamplers))) {
16821         onFail("a->maxCustomBorderColorSamplers (Error: Value not equal)");
16822     };
16823 }
16824 
checkEqual_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const VkPhysicalDeviceCustomBorderColorFeaturesEXT * a,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * b,OnFailCompareFunc onFail)16825 void checkEqual_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
16826     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* a,
16827     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* b, OnFailCompareFunc onFail) {
16828     if (!((a->sType) == (b->sType))) {
16829         onFail("a->sType (Error: Value not equal)");
16830     };
16831     if (a->pNext) {
16832         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16833     }
16834     if (!((a->customBorderColors) == (b->customBorderColors))) {
16835         onFail("a->customBorderColors (Error: Value not equal)");
16836     };
16837     if (!((a->customBorderColorWithoutFormat) == (b->customBorderColorWithoutFormat))) {
16838         onFail("a->customBorderColorWithoutFormat (Error: Value not equal)");
16839     };
16840 }
16841 
16842 #endif
16843 #ifdef VK_GOOGLE_user_type
16844 #endif
16845 #ifdef VK_NV_present_barrier
checkEqual_VkPhysicalDevicePresentBarrierFeaturesNV(const VkPhysicalDevicePresentBarrierFeaturesNV * a,const VkPhysicalDevicePresentBarrierFeaturesNV * b,OnFailCompareFunc onFail)16846 void checkEqual_VkPhysicalDevicePresentBarrierFeaturesNV(
16847     const VkPhysicalDevicePresentBarrierFeaturesNV* a,
16848     const VkPhysicalDevicePresentBarrierFeaturesNV* b, OnFailCompareFunc onFail) {
16849     if (!((a->sType) == (b->sType))) {
16850         onFail("a->sType (Error: Value not equal)");
16851     };
16852     if (a->pNext) {
16853         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16854     }
16855     if (!((a->presentBarrier) == (b->presentBarrier))) {
16856         onFail("a->presentBarrier (Error: Value not equal)");
16857     };
16858 }
16859 
checkEqual_VkSurfaceCapabilitiesPresentBarrierNV(const VkSurfaceCapabilitiesPresentBarrierNV * a,const VkSurfaceCapabilitiesPresentBarrierNV * b,OnFailCompareFunc onFail)16860 void checkEqual_VkSurfaceCapabilitiesPresentBarrierNV(
16861     const VkSurfaceCapabilitiesPresentBarrierNV* a, const VkSurfaceCapabilitiesPresentBarrierNV* b,
16862     OnFailCompareFunc onFail) {
16863     if (!((a->sType) == (b->sType))) {
16864         onFail("a->sType (Error: Value not equal)");
16865     };
16866     if (a->pNext) {
16867         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16868     }
16869     if (!((a->presentBarrierSupported) == (b->presentBarrierSupported))) {
16870         onFail("a->presentBarrierSupported (Error: Value not equal)");
16871     };
16872 }
16873 
checkEqual_VkSwapchainPresentBarrierCreateInfoNV(const VkSwapchainPresentBarrierCreateInfoNV * a,const VkSwapchainPresentBarrierCreateInfoNV * b,OnFailCompareFunc onFail)16874 void checkEqual_VkSwapchainPresentBarrierCreateInfoNV(
16875     const VkSwapchainPresentBarrierCreateInfoNV* a, const VkSwapchainPresentBarrierCreateInfoNV* b,
16876     OnFailCompareFunc onFail) {
16877     if (!((a->sType) == (b->sType))) {
16878         onFail("a->sType (Error: Value not equal)");
16879     };
16880     if (a->pNext) {
16881         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16882     }
16883     if (!((a->presentBarrierEnable) == (b->presentBarrierEnable))) {
16884         onFail("a->presentBarrierEnable (Error: Value not equal)");
16885     };
16886 }
16887 
16888 #endif
16889 #ifdef VK_EXT_private_data
16890 #endif
16891 #ifdef VK_EXT_pipeline_creation_cache_control
16892 #endif
16893 #ifdef VK_NV_device_diagnostics_config
checkEqual_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(const VkPhysicalDeviceDiagnosticsConfigFeaturesNV * a,const VkPhysicalDeviceDiagnosticsConfigFeaturesNV * b,OnFailCompareFunc onFail)16894 void checkEqual_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
16895     const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* a,
16896     const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* b, OnFailCompareFunc onFail) {
16897     if (!((a->sType) == (b->sType))) {
16898         onFail("a->sType (Error: Value not equal)");
16899     };
16900     if (a->pNext) {
16901         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16902     }
16903     if (!((a->diagnosticsConfig) == (b->diagnosticsConfig))) {
16904         onFail("a->diagnosticsConfig (Error: Value not equal)");
16905     };
16906 }
16907 
checkEqual_VkDeviceDiagnosticsConfigCreateInfoNV(const VkDeviceDiagnosticsConfigCreateInfoNV * a,const VkDeviceDiagnosticsConfigCreateInfoNV * b,OnFailCompareFunc onFail)16908 void checkEqual_VkDeviceDiagnosticsConfigCreateInfoNV(
16909     const VkDeviceDiagnosticsConfigCreateInfoNV* a, const VkDeviceDiagnosticsConfigCreateInfoNV* b,
16910     OnFailCompareFunc onFail) {
16911     if (!((a->sType) == (b->sType))) {
16912         onFail("a->sType (Error: Value not equal)");
16913     };
16914     if (a->pNext) {
16915         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16916     }
16917     if (!((a->flags) == (b->flags))) {
16918         onFail("a->flags (Error: Value not equal)");
16919     };
16920 }
16921 
16922 #endif
16923 #ifdef VK_QCOM_render_pass_store_ops
16924 #endif
16925 #ifdef VK_NV_low_latency
checkEqual_VkQueryLowLatencySupportNV(const VkQueryLowLatencySupportNV * a,const VkQueryLowLatencySupportNV * b,OnFailCompareFunc onFail)16926 void checkEqual_VkQueryLowLatencySupportNV(const VkQueryLowLatencySupportNV* a,
16927                                            const VkQueryLowLatencySupportNV* b,
16928                                            OnFailCompareFunc onFail) {
16929     if (!((a->sType) == (b->sType))) {
16930         onFail("a->sType (Error: Value not equal)");
16931     };
16932     if (a->pNext) {
16933         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16934     }
16935 }
16936 
16937 #endif
16938 #ifdef VK_EXT_metal_objects
checkEqual_VkExportMetalObjectCreateInfoEXT(const VkExportMetalObjectCreateInfoEXT * a,const VkExportMetalObjectCreateInfoEXT * b,OnFailCompareFunc onFail)16939 void checkEqual_VkExportMetalObjectCreateInfoEXT(const VkExportMetalObjectCreateInfoEXT* a,
16940                                                  const VkExportMetalObjectCreateInfoEXT* b,
16941                                                  OnFailCompareFunc onFail) {
16942     if (!((a->sType) == (b->sType))) {
16943         onFail("a->sType (Error: Value not equal)");
16944     };
16945     if (a->pNext) {
16946         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16947     }
16948     if (!((a->exportObjectType) == (b->exportObjectType))) {
16949         onFail("a->exportObjectType (Error: Value not equal)");
16950     };
16951 }
16952 
checkEqual_VkExportMetalObjectsInfoEXT(const VkExportMetalObjectsInfoEXT * a,const VkExportMetalObjectsInfoEXT * b,OnFailCompareFunc onFail)16953 void checkEqual_VkExportMetalObjectsInfoEXT(const VkExportMetalObjectsInfoEXT* a,
16954                                             const VkExportMetalObjectsInfoEXT* b,
16955                                             OnFailCompareFunc onFail) {
16956     if (!((a->sType) == (b->sType))) {
16957         onFail("a->sType (Error: Value not equal)");
16958     };
16959     if (a->pNext) {
16960         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16961     }
16962 }
16963 
checkEqual_VkExportMetalDeviceInfoEXT(const VkExportMetalDeviceInfoEXT * a,const VkExportMetalDeviceInfoEXT * b,OnFailCompareFunc onFail)16964 void checkEqual_VkExportMetalDeviceInfoEXT(const VkExportMetalDeviceInfoEXT* a,
16965                                            const VkExportMetalDeviceInfoEXT* b,
16966                                            OnFailCompareFunc onFail) {
16967     if (!((a->sType) == (b->sType))) {
16968         onFail("a->sType (Error: Value not equal)");
16969     };
16970     if (a->pNext) {
16971         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16972     }
16973     if (!((a->mtlDevice) == (b->mtlDevice))) {
16974         onFail("a->mtlDevice (Error: Value not equal)");
16975     };
16976 }
16977 
checkEqual_VkExportMetalCommandQueueInfoEXT(const VkExportMetalCommandQueueInfoEXT * a,const VkExportMetalCommandQueueInfoEXT * b,OnFailCompareFunc onFail)16978 void checkEqual_VkExportMetalCommandQueueInfoEXT(const VkExportMetalCommandQueueInfoEXT* a,
16979                                                  const VkExportMetalCommandQueueInfoEXT* b,
16980                                                  OnFailCompareFunc onFail) {
16981     if (!((a->sType) == (b->sType))) {
16982         onFail("a->sType (Error: Value not equal)");
16983     };
16984     if (a->pNext) {
16985         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
16986     }
16987     if (!((a->queue) == (b->queue))) {
16988         onFail("a->queue (Error: Value not equal)");
16989     };
16990     if (!((a->mtlCommandQueue) == (b->mtlCommandQueue))) {
16991         onFail("a->mtlCommandQueue (Error: Value not equal)");
16992     };
16993 }
16994 
checkEqual_VkExportMetalBufferInfoEXT(const VkExportMetalBufferInfoEXT * a,const VkExportMetalBufferInfoEXT * b,OnFailCompareFunc onFail)16995 void checkEqual_VkExportMetalBufferInfoEXT(const VkExportMetalBufferInfoEXT* a,
16996                                            const VkExportMetalBufferInfoEXT* b,
16997                                            OnFailCompareFunc onFail) {
16998     if (!((a->sType) == (b->sType))) {
16999         onFail("a->sType (Error: Value not equal)");
17000     };
17001     if (a->pNext) {
17002         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17003     }
17004     if (!((a->memory) == (b->memory))) {
17005         onFail("a->memory (Error: Value not equal)");
17006     };
17007     if (!((a->mtlBuffer) == (b->mtlBuffer))) {
17008         onFail("a->mtlBuffer (Error: Value not equal)");
17009     };
17010 }
17011 
checkEqual_VkImportMetalBufferInfoEXT(const VkImportMetalBufferInfoEXT * a,const VkImportMetalBufferInfoEXT * b,OnFailCompareFunc onFail)17012 void checkEqual_VkImportMetalBufferInfoEXT(const VkImportMetalBufferInfoEXT* a,
17013                                            const VkImportMetalBufferInfoEXT* b,
17014                                            OnFailCompareFunc onFail) {
17015     if (!((a->sType) == (b->sType))) {
17016         onFail("a->sType (Error: Value not equal)");
17017     };
17018     if (a->pNext) {
17019         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17020     }
17021     if (!((a->mtlBuffer) == (b->mtlBuffer))) {
17022         onFail("a->mtlBuffer (Error: Value not equal)");
17023     };
17024 }
17025 
checkEqual_VkExportMetalTextureInfoEXT(const VkExportMetalTextureInfoEXT * a,const VkExportMetalTextureInfoEXT * b,OnFailCompareFunc onFail)17026 void checkEqual_VkExportMetalTextureInfoEXT(const VkExportMetalTextureInfoEXT* a,
17027                                             const VkExportMetalTextureInfoEXT* b,
17028                                             OnFailCompareFunc onFail) {
17029     if (!((a->sType) == (b->sType))) {
17030         onFail("a->sType (Error: Value not equal)");
17031     };
17032     if (a->pNext) {
17033         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17034     }
17035     if (!((a->image) == (b->image))) {
17036         onFail("a->image (Error: Value not equal)");
17037     };
17038     if (!((a->imageView) == (b->imageView))) {
17039         onFail("a->imageView (Error: Value not equal)");
17040     };
17041     if (!((a->bufferView) == (b->bufferView))) {
17042         onFail("a->bufferView (Error: Value not equal)");
17043     };
17044     if (!((a->plane) == (b->plane))) {
17045         onFail("a->plane (Error: Value not equal)");
17046     };
17047     if (!((a->mtlTexture) == (b->mtlTexture))) {
17048         onFail("a->mtlTexture (Error: Value not equal)");
17049     };
17050 }
17051 
checkEqual_VkImportMetalTextureInfoEXT(const VkImportMetalTextureInfoEXT * a,const VkImportMetalTextureInfoEXT * b,OnFailCompareFunc onFail)17052 void checkEqual_VkImportMetalTextureInfoEXT(const VkImportMetalTextureInfoEXT* a,
17053                                             const VkImportMetalTextureInfoEXT* b,
17054                                             OnFailCompareFunc onFail) {
17055     if (!((a->sType) == (b->sType))) {
17056         onFail("a->sType (Error: Value not equal)");
17057     };
17058     if (a->pNext) {
17059         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17060     }
17061     if (!((a->plane) == (b->plane))) {
17062         onFail("a->plane (Error: Value not equal)");
17063     };
17064     if (!((a->mtlTexture) == (b->mtlTexture))) {
17065         onFail("a->mtlTexture (Error: Value not equal)");
17066     };
17067 }
17068 
checkEqual_VkExportMetalIOSurfaceInfoEXT(const VkExportMetalIOSurfaceInfoEXT * a,const VkExportMetalIOSurfaceInfoEXT * b,OnFailCompareFunc onFail)17069 void checkEqual_VkExportMetalIOSurfaceInfoEXT(const VkExportMetalIOSurfaceInfoEXT* a,
17070                                               const VkExportMetalIOSurfaceInfoEXT* b,
17071                                               OnFailCompareFunc onFail) {
17072     if (!((a->sType) == (b->sType))) {
17073         onFail("a->sType (Error: Value not equal)");
17074     };
17075     if (a->pNext) {
17076         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17077     }
17078     if (!((a->image) == (b->image))) {
17079         onFail("a->image (Error: Value not equal)");
17080     };
17081     if (!((a->ioSurface) == (b->ioSurface))) {
17082         onFail("a->ioSurface (Error: Value not equal)");
17083     };
17084 }
17085 
checkEqual_VkImportMetalIOSurfaceInfoEXT(const VkImportMetalIOSurfaceInfoEXT * a,const VkImportMetalIOSurfaceInfoEXT * b,OnFailCompareFunc onFail)17086 void checkEqual_VkImportMetalIOSurfaceInfoEXT(const VkImportMetalIOSurfaceInfoEXT* a,
17087                                               const VkImportMetalIOSurfaceInfoEXT* b,
17088                                               OnFailCompareFunc onFail) {
17089     if (!((a->sType) == (b->sType))) {
17090         onFail("a->sType (Error: Value not equal)");
17091     };
17092     if (a->pNext) {
17093         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17094     }
17095     if (!((a->ioSurface) == (b->ioSurface))) {
17096         onFail("a->ioSurface (Error: Value not equal)");
17097     };
17098 }
17099 
checkEqual_VkExportMetalSharedEventInfoEXT(const VkExportMetalSharedEventInfoEXT * a,const VkExportMetalSharedEventInfoEXT * b,OnFailCompareFunc onFail)17100 void checkEqual_VkExportMetalSharedEventInfoEXT(const VkExportMetalSharedEventInfoEXT* a,
17101                                                 const VkExportMetalSharedEventInfoEXT* b,
17102                                                 OnFailCompareFunc onFail) {
17103     if (!((a->sType) == (b->sType))) {
17104         onFail("a->sType (Error: Value not equal)");
17105     };
17106     if (a->pNext) {
17107         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17108     }
17109     if (!((a->semaphore) == (b->semaphore))) {
17110         onFail("a->semaphore (Error: Value not equal)");
17111     };
17112     if (!((a->event) == (b->event))) {
17113         onFail("a->event (Error: Value not equal)");
17114     };
17115     if (!((a->mtlSharedEvent) == (b->mtlSharedEvent))) {
17116         onFail("a->mtlSharedEvent (Error: Value not equal)");
17117     };
17118 }
17119 
checkEqual_VkImportMetalSharedEventInfoEXT(const VkImportMetalSharedEventInfoEXT * a,const VkImportMetalSharedEventInfoEXT * b,OnFailCompareFunc onFail)17120 void checkEqual_VkImportMetalSharedEventInfoEXT(const VkImportMetalSharedEventInfoEXT* a,
17121                                                 const VkImportMetalSharedEventInfoEXT* b,
17122                                                 OnFailCompareFunc onFail) {
17123     if (!((a->sType) == (b->sType))) {
17124         onFail("a->sType (Error: Value not equal)");
17125     };
17126     if (a->pNext) {
17127         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17128     }
17129     if (!((a->mtlSharedEvent) == (b->mtlSharedEvent))) {
17130         onFail("a->mtlSharedEvent (Error: Value not equal)");
17131     };
17132 }
17133 
17134 #endif
17135 #ifdef VK_EXT_descriptor_buffer
checkEqual_VkPhysicalDeviceDescriptorBufferPropertiesEXT(const VkPhysicalDeviceDescriptorBufferPropertiesEXT * a,const VkPhysicalDeviceDescriptorBufferPropertiesEXT * b,OnFailCompareFunc onFail)17136 void checkEqual_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
17137     const VkPhysicalDeviceDescriptorBufferPropertiesEXT* a,
17138     const VkPhysicalDeviceDescriptorBufferPropertiesEXT* b, OnFailCompareFunc onFail) {
17139     if (!((a->sType) == (b->sType))) {
17140         onFail("a->sType (Error: Value not equal)");
17141     };
17142     if (a->pNext) {
17143         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17144     }
17145     if (!((a->combinedImageSamplerDescriptorSingleArray) ==
17146           (b->combinedImageSamplerDescriptorSingleArray))) {
17147         onFail("a->combinedImageSamplerDescriptorSingleArray (Error: Value not equal)");
17148     };
17149     if (!((a->bufferlessPushDescriptors) == (b->bufferlessPushDescriptors))) {
17150         onFail("a->bufferlessPushDescriptors (Error: Value not equal)");
17151     };
17152     if (!((a->allowSamplerImageViewPostSubmitCreation) ==
17153           (b->allowSamplerImageViewPostSubmitCreation))) {
17154         onFail("a->allowSamplerImageViewPostSubmitCreation (Error: Value not equal)");
17155     };
17156     if (!((a->descriptorBufferOffsetAlignment) == (b->descriptorBufferOffsetAlignment))) {
17157         onFail("a->descriptorBufferOffsetAlignment (Error: Value not equal)");
17158     };
17159     if (!((a->maxDescriptorBufferBindings) == (b->maxDescriptorBufferBindings))) {
17160         onFail("a->maxDescriptorBufferBindings (Error: Value not equal)");
17161     };
17162     if (!((a->maxResourceDescriptorBufferBindings) == (b->maxResourceDescriptorBufferBindings))) {
17163         onFail("a->maxResourceDescriptorBufferBindings (Error: Value not equal)");
17164     };
17165     if (!((a->maxSamplerDescriptorBufferBindings) == (b->maxSamplerDescriptorBufferBindings))) {
17166         onFail("a->maxSamplerDescriptorBufferBindings (Error: Value not equal)");
17167     };
17168     if (!((a->maxEmbeddedImmutableSamplerBindings) == (b->maxEmbeddedImmutableSamplerBindings))) {
17169         onFail("a->maxEmbeddedImmutableSamplerBindings (Error: Value not equal)");
17170     };
17171     if (!((a->maxEmbeddedImmutableSamplers) == (b->maxEmbeddedImmutableSamplers))) {
17172         onFail("a->maxEmbeddedImmutableSamplers (Error: Value not equal)");
17173     };
17174     if (!((a->bufferCaptureReplayDescriptorDataSize) ==
17175           (b->bufferCaptureReplayDescriptorDataSize))) {
17176         onFail("a->bufferCaptureReplayDescriptorDataSize (Error: Value not equal)");
17177     };
17178     if (!((a->imageCaptureReplayDescriptorDataSize) == (b->imageCaptureReplayDescriptorDataSize))) {
17179         onFail("a->imageCaptureReplayDescriptorDataSize (Error: Value not equal)");
17180     };
17181     if (!((a->imageViewCaptureReplayDescriptorDataSize) ==
17182           (b->imageViewCaptureReplayDescriptorDataSize))) {
17183         onFail("a->imageViewCaptureReplayDescriptorDataSize (Error: Value not equal)");
17184     };
17185     if (!((a->samplerCaptureReplayDescriptorDataSize) ==
17186           (b->samplerCaptureReplayDescriptorDataSize))) {
17187         onFail("a->samplerCaptureReplayDescriptorDataSize (Error: Value not equal)");
17188     };
17189     if (!((a->accelerationStructureCaptureReplayDescriptorDataSize) ==
17190           (b->accelerationStructureCaptureReplayDescriptorDataSize))) {
17191         onFail("a->accelerationStructureCaptureReplayDescriptorDataSize (Error: Value not equal)");
17192     };
17193     if (!((a->samplerDescriptorSize) == (b->samplerDescriptorSize))) {
17194         onFail("a->samplerDescriptorSize (Error: Value not equal)");
17195     };
17196     if (!((a->combinedImageSamplerDescriptorSize) == (b->combinedImageSamplerDescriptorSize))) {
17197         onFail("a->combinedImageSamplerDescriptorSize (Error: Value not equal)");
17198     };
17199     if (!((a->sampledImageDescriptorSize) == (b->sampledImageDescriptorSize))) {
17200         onFail("a->sampledImageDescriptorSize (Error: Value not equal)");
17201     };
17202     if (!((a->storageImageDescriptorSize) == (b->storageImageDescriptorSize))) {
17203         onFail("a->storageImageDescriptorSize (Error: Value not equal)");
17204     };
17205     if (!((a->uniformTexelBufferDescriptorSize) == (b->uniformTexelBufferDescriptorSize))) {
17206         onFail("a->uniformTexelBufferDescriptorSize (Error: Value not equal)");
17207     };
17208     if (!((a->robustUniformTexelBufferDescriptorSize) ==
17209           (b->robustUniformTexelBufferDescriptorSize))) {
17210         onFail("a->robustUniformTexelBufferDescriptorSize (Error: Value not equal)");
17211     };
17212     if (!((a->storageTexelBufferDescriptorSize) == (b->storageTexelBufferDescriptorSize))) {
17213         onFail("a->storageTexelBufferDescriptorSize (Error: Value not equal)");
17214     };
17215     if (!((a->robustStorageTexelBufferDescriptorSize) ==
17216           (b->robustStorageTexelBufferDescriptorSize))) {
17217         onFail("a->robustStorageTexelBufferDescriptorSize (Error: Value not equal)");
17218     };
17219     if (!((a->uniformBufferDescriptorSize) == (b->uniformBufferDescriptorSize))) {
17220         onFail("a->uniformBufferDescriptorSize (Error: Value not equal)");
17221     };
17222     if (!((a->robustUniformBufferDescriptorSize) == (b->robustUniformBufferDescriptorSize))) {
17223         onFail("a->robustUniformBufferDescriptorSize (Error: Value not equal)");
17224     };
17225     if (!((a->storageBufferDescriptorSize) == (b->storageBufferDescriptorSize))) {
17226         onFail("a->storageBufferDescriptorSize (Error: Value not equal)");
17227     };
17228     if (!((a->robustStorageBufferDescriptorSize) == (b->robustStorageBufferDescriptorSize))) {
17229         onFail("a->robustStorageBufferDescriptorSize (Error: Value not equal)");
17230     };
17231     if (!((a->inputAttachmentDescriptorSize) == (b->inputAttachmentDescriptorSize))) {
17232         onFail("a->inputAttachmentDescriptorSize (Error: Value not equal)");
17233     };
17234     if (!((a->accelerationStructureDescriptorSize) == (b->accelerationStructureDescriptorSize))) {
17235         onFail("a->accelerationStructureDescriptorSize (Error: Value not equal)");
17236     };
17237     if (!((a->maxSamplerDescriptorBufferRange) == (b->maxSamplerDescriptorBufferRange))) {
17238         onFail("a->maxSamplerDescriptorBufferRange (Error: Value not equal)");
17239     };
17240     if (!((a->maxResourceDescriptorBufferRange) == (b->maxResourceDescriptorBufferRange))) {
17241         onFail("a->maxResourceDescriptorBufferRange (Error: Value not equal)");
17242     };
17243     if (!((a->samplerDescriptorBufferAddressSpaceSize) ==
17244           (b->samplerDescriptorBufferAddressSpaceSize))) {
17245         onFail("a->samplerDescriptorBufferAddressSpaceSize (Error: Value not equal)");
17246     };
17247     if (!((a->resourceDescriptorBufferAddressSpaceSize) ==
17248           (b->resourceDescriptorBufferAddressSpaceSize))) {
17249         onFail("a->resourceDescriptorBufferAddressSpaceSize (Error: Value not equal)");
17250     };
17251     if (!((a->descriptorBufferAddressSpaceSize) == (b->descriptorBufferAddressSpaceSize))) {
17252         onFail("a->descriptorBufferAddressSpaceSize (Error: Value not equal)");
17253     };
17254 }
17255 
checkEqual_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT * a,const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT * b,OnFailCompareFunc onFail)17256 void checkEqual_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
17257     const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* a,
17258     const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* b, OnFailCompareFunc onFail) {
17259     if (!((a->sType) == (b->sType))) {
17260         onFail("a->sType (Error: Value not equal)");
17261     };
17262     if (a->pNext) {
17263         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17264     }
17265     if (!((a->combinedImageSamplerDensityMapDescriptorSize) ==
17266           (b->combinedImageSamplerDensityMapDescriptorSize))) {
17267         onFail("a->combinedImageSamplerDensityMapDescriptorSize (Error: Value not equal)");
17268     };
17269 }
17270 
checkEqual_VkPhysicalDeviceDescriptorBufferFeaturesEXT(const VkPhysicalDeviceDescriptorBufferFeaturesEXT * a,const VkPhysicalDeviceDescriptorBufferFeaturesEXT * b,OnFailCompareFunc onFail)17271 void checkEqual_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
17272     const VkPhysicalDeviceDescriptorBufferFeaturesEXT* a,
17273     const VkPhysicalDeviceDescriptorBufferFeaturesEXT* b, OnFailCompareFunc onFail) {
17274     if (!((a->sType) == (b->sType))) {
17275         onFail("a->sType (Error: Value not equal)");
17276     };
17277     if (a->pNext) {
17278         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17279     }
17280     if (!((a->descriptorBuffer) == (b->descriptorBuffer))) {
17281         onFail("a->descriptorBuffer (Error: Value not equal)");
17282     };
17283     if (!((a->descriptorBufferCaptureReplay) == (b->descriptorBufferCaptureReplay))) {
17284         onFail("a->descriptorBufferCaptureReplay (Error: Value not equal)");
17285     };
17286     if (!((a->descriptorBufferImageLayoutIgnored) == (b->descriptorBufferImageLayoutIgnored))) {
17287         onFail("a->descriptorBufferImageLayoutIgnored (Error: Value not equal)");
17288     };
17289     if (!((a->descriptorBufferPushDescriptors) == (b->descriptorBufferPushDescriptors))) {
17290         onFail("a->descriptorBufferPushDescriptors (Error: Value not equal)");
17291     };
17292 }
17293 
checkEqual_VkDescriptorAddressInfoEXT(const VkDescriptorAddressInfoEXT * a,const VkDescriptorAddressInfoEXT * b,OnFailCompareFunc onFail)17294 void checkEqual_VkDescriptorAddressInfoEXT(const VkDescriptorAddressInfoEXT* a,
17295                                            const VkDescriptorAddressInfoEXT* b,
17296                                            OnFailCompareFunc onFail) {
17297     if (!((a->sType) == (b->sType))) {
17298         onFail("a->sType (Error: Value not equal)");
17299     };
17300     if (a->pNext) {
17301         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17302     }
17303     if (!((a->address) == (b->address))) {
17304         onFail("a->address (Error: Value not equal)");
17305     };
17306     if (!((a->range) == (b->range))) {
17307         onFail("a->range (Error: Value not equal)");
17308     };
17309     if (!((a->format) == (b->format))) {
17310         onFail("a->format (Error: Value not equal)");
17311     };
17312 }
17313 
checkEqual_VkDescriptorBufferBindingInfoEXT(const VkDescriptorBufferBindingInfoEXT * a,const VkDescriptorBufferBindingInfoEXT * b,OnFailCompareFunc onFail)17314 void checkEqual_VkDescriptorBufferBindingInfoEXT(const VkDescriptorBufferBindingInfoEXT* a,
17315                                                  const VkDescriptorBufferBindingInfoEXT* b,
17316                                                  OnFailCompareFunc onFail) {
17317     if (!((a->sType) == (b->sType))) {
17318         onFail("a->sType (Error: Value not equal)");
17319     };
17320     if (a->pNext) {
17321         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17322     }
17323     if (!((a->address) == (b->address))) {
17324         onFail("a->address (Error: Value not equal)");
17325     };
17326     if (!((a->usage) == (b->usage))) {
17327         onFail("a->usage (Error: Value not equal)");
17328     };
17329 }
17330 
checkEqual_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT * a,const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT * b,OnFailCompareFunc onFail)17331 void checkEqual_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
17332     const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* a,
17333     const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* b, OnFailCompareFunc onFail) {
17334     if (!((a->sType) == (b->sType))) {
17335         onFail("a->sType (Error: Value not equal)");
17336     };
17337     if (a->pNext) {
17338         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17339     }
17340     if (!((a->buffer) == (b->buffer))) {
17341         onFail("a->buffer (Error: Value not equal)");
17342     };
17343 }
17344 
checkEqual_VkDescriptorDataEXT(const VkDescriptorDataEXT * a,const VkDescriptorDataEXT * b,OnFailCompareFunc onFail)17345 void checkEqual_VkDescriptorDataEXT(const VkDescriptorDataEXT* a, const VkDescriptorDataEXT* b,
17346                                     OnFailCompareFunc onFail) {
17347     if (!((memcmp(a->pSampler, b->pSampler, sizeof(const VkSampler)) == 0))) {
17348         onFail("a->pSampler (Error: Unequal dyn array)");
17349     };
17350     if ((a->pCombinedImageSampler) && (b->pCombinedImageSampler)) {
17351         checkEqual_VkDescriptorImageInfo(a->pCombinedImageSampler, b->pCombinedImageSampler,
17352                                          onFail);
17353     }
17354     if ((a->pInputAttachmentImage) && (b->pInputAttachmentImage)) {
17355         checkEqual_VkDescriptorImageInfo(a->pInputAttachmentImage, b->pInputAttachmentImage,
17356                                          onFail);
17357     }
17358     if (!((!(a->pSampledImage) && !(b->pSampledImage)) ||
17359           ((a->pSampledImage) && (b->pSampledImage)))) {
17360         onFail("a->pSampledImage (Error: Mismatch in optional field)");
17361     };
17362     if (a->pSampledImage && b->pSampledImage) {
17363         if ((a->pSampledImage) && (b->pSampledImage)) {
17364             checkEqual_VkDescriptorImageInfo(a->pSampledImage, b->pSampledImage, onFail);
17365         }
17366     }
17367     if (!((!(a->pStorageImage) && !(b->pStorageImage)) ||
17368           ((a->pStorageImage) && (b->pStorageImage)))) {
17369         onFail("a->pStorageImage (Error: Mismatch in optional field)");
17370     };
17371     if (a->pStorageImage && b->pStorageImage) {
17372         if ((a->pStorageImage) && (b->pStorageImage)) {
17373             checkEqual_VkDescriptorImageInfo(a->pStorageImage, b->pStorageImage, onFail);
17374         }
17375     }
17376     if (!((!(a->pUniformTexelBuffer) && !(b->pUniformTexelBuffer)) ||
17377           ((a->pUniformTexelBuffer) && (b->pUniformTexelBuffer)))) {
17378         onFail("a->pUniformTexelBuffer (Error: Mismatch in optional field)");
17379     };
17380     if (a->pUniformTexelBuffer && b->pUniformTexelBuffer) {
17381         if ((a->pUniformTexelBuffer) && (b->pUniformTexelBuffer)) {
17382             checkEqual_VkDescriptorAddressInfoEXT(a->pUniformTexelBuffer, b->pUniformTexelBuffer,
17383                                                   onFail);
17384         }
17385     }
17386     if (!((!(a->pStorageTexelBuffer) && !(b->pStorageTexelBuffer)) ||
17387           ((a->pStorageTexelBuffer) && (b->pStorageTexelBuffer)))) {
17388         onFail("a->pStorageTexelBuffer (Error: Mismatch in optional field)");
17389     };
17390     if (a->pStorageTexelBuffer && b->pStorageTexelBuffer) {
17391         if ((a->pStorageTexelBuffer) && (b->pStorageTexelBuffer)) {
17392             checkEqual_VkDescriptorAddressInfoEXT(a->pStorageTexelBuffer, b->pStorageTexelBuffer,
17393                                                   onFail);
17394         }
17395     }
17396     if (!((!(a->pUniformBuffer) && !(b->pUniformBuffer)) ||
17397           ((a->pUniformBuffer) && (b->pUniformBuffer)))) {
17398         onFail("a->pUniformBuffer (Error: Mismatch in optional field)");
17399     };
17400     if (a->pUniformBuffer && b->pUniformBuffer) {
17401         if ((a->pUniformBuffer) && (b->pUniformBuffer)) {
17402             checkEqual_VkDescriptorAddressInfoEXT(a->pUniformBuffer, b->pUniformBuffer, onFail);
17403         }
17404     }
17405     if (!((!(a->pStorageBuffer) && !(b->pStorageBuffer)) ||
17406           ((a->pStorageBuffer) && (b->pStorageBuffer)))) {
17407         onFail("a->pStorageBuffer (Error: Mismatch in optional field)");
17408     };
17409     if (a->pStorageBuffer && b->pStorageBuffer) {
17410         if ((a->pStorageBuffer) && (b->pStorageBuffer)) {
17411             checkEqual_VkDescriptorAddressInfoEXT(a->pStorageBuffer, b->pStorageBuffer, onFail);
17412         }
17413     }
17414     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
17415         onFail("a->accelerationStructure (Error: Value not equal)");
17416     };
17417 }
17418 
checkEqual_VkDescriptorGetInfoEXT(const VkDescriptorGetInfoEXT * a,const VkDescriptorGetInfoEXT * b,OnFailCompareFunc onFail)17419 void checkEqual_VkDescriptorGetInfoEXT(const VkDescriptorGetInfoEXT* a,
17420                                        const VkDescriptorGetInfoEXT* b, OnFailCompareFunc onFail) {
17421     if (!((a->sType) == (b->sType))) {
17422         onFail("a->sType (Error: Value not equal)");
17423     };
17424     if (a->pNext) {
17425         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17426     }
17427     if (!((a->type) == (b->type))) {
17428         onFail("a->type (Error: Value not equal)");
17429     };
17430     checkEqual_VkDescriptorDataEXT(&a->data, &b->data, onFail);
17431 }
17432 
checkEqual_VkBufferCaptureDescriptorDataInfoEXT(const VkBufferCaptureDescriptorDataInfoEXT * a,const VkBufferCaptureDescriptorDataInfoEXT * b,OnFailCompareFunc onFail)17433 void checkEqual_VkBufferCaptureDescriptorDataInfoEXT(const VkBufferCaptureDescriptorDataInfoEXT* a,
17434                                                      const VkBufferCaptureDescriptorDataInfoEXT* b,
17435                                                      OnFailCompareFunc onFail) {
17436     if (!((a->sType) == (b->sType))) {
17437         onFail("a->sType (Error: Value not equal)");
17438     };
17439     if (a->pNext) {
17440         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17441     }
17442     if (!((a->buffer) == (b->buffer))) {
17443         onFail("a->buffer (Error: Value not equal)");
17444     };
17445 }
17446 
checkEqual_VkImageCaptureDescriptorDataInfoEXT(const VkImageCaptureDescriptorDataInfoEXT * a,const VkImageCaptureDescriptorDataInfoEXT * b,OnFailCompareFunc onFail)17447 void checkEqual_VkImageCaptureDescriptorDataInfoEXT(const VkImageCaptureDescriptorDataInfoEXT* a,
17448                                                     const VkImageCaptureDescriptorDataInfoEXT* b,
17449                                                     OnFailCompareFunc onFail) {
17450     if (!((a->sType) == (b->sType))) {
17451         onFail("a->sType (Error: Value not equal)");
17452     };
17453     if (a->pNext) {
17454         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17455     }
17456     if (!((a->image) == (b->image))) {
17457         onFail("a->image (Error: Value not equal)");
17458     };
17459 }
17460 
checkEqual_VkImageViewCaptureDescriptorDataInfoEXT(const VkImageViewCaptureDescriptorDataInfoEXT * a,const VkImageViewCaptureDescriptorDataInfoEXT * b,OnFailCompareFunc onFail)17461 void checkEqual_VkImageViewCaptureDescriptorDataInfoEXT(
17462     const VkImageViewCaptureDescriptorDataInfoEXT* a,
17463     const VkImageViewCaptureDescriptorDataInfoEXT* b, OnFailCompareFunc onFail) {
17464     if (!((a->sType) == (b->sType))) {
17465         onFail("a->sType (Error: Value not equal)");
17466     };
17467     if (a->pNext) {
17468         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17469     }
17470     if (!((a->imageView) == (b->imageView))) {
17471         onFail("a->imageView (Error: Value not equal)");
17472     };
17473 }
17474 
checkEqual_VkSamplerCaptureDescriptorDataInfoEXT(const VkSamplerCaptureDescriptorDataInfoEXT * a,const VkSamplerCaptureDescriptorDataInfoEXT * b,OnFailCompareFunc onFail)17475 void checkEqual_VkSamplerCaptureDescriptorDataInfoEXT(
17476     const VkSamplerCaptureDescriptorDataInfoEXT* a, const VkSamplerCaptureDescriptorDataInfoEXT* b,
17477     OnFailCompareFunc onFail) {
17478     if (!((a->sType) == (b->sType))) {
17479         onFail("a->sType (Error: Value not equal)");
17480     };
17481     if (a->pNext) {
17482         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17483     }
17484     if (!((a->sampler) == (b->sampler))) {
17485         onFail("a->sampler (Error: Value not equal)");
17486     };
17487 }
17488 
checkEqual_VkOpaqueCaptureDescriptorDataCreateInfoEXT(const VkOpaqueCaptureDescriptorDataCreateInfoEXT * a,const VkOpaqueCaptureDescriptorDataCreateInfoEXT * b,OnFailCompareFunc onFail)17489 void checkEqual_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
17490     const VkOpaqueCaptureDescriptorDataCreateInfoEXT* a,
17491     const VkOpaqueCaptureDescriptorDataCreateInfoEXT* b, OnFailCompareFunc onFail) {
17492     if (!((a->sType) == (b->sType))) {
17493         onFail("a->sType (Error: Value not equal)");
17494     };
17495     if (a->pNext) {
17496         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17497     }
17498 }
17499 
checkEqual_VkAccelerationStructureCaptureDescriptorDataInfoEXT(const VkAccelerationStructureCaptureDescriptorDataInfoEXT * a,const VkAccelerationStructureCaptureDescriptorDataInfoEXT * b,OnFailCompareFunc onFail)17500 void checkEqual_VkAccelerationStructureCaptureDescriptorDataInfoEXT(
17501     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* a,
17502     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* b, OnFailCompareFunc onFail) {
17503     if (!((a->sType) == (b->sType))) {
17504         onFail("a->sType (Error: Value not equal)");
17505     };
17506     if (a->pNext) {
17507         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17508     }
17509     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
17510         onFail("a->accelerationStructure (Error: Value not equal)");
17511     };
17512     if (!((a->accelerationStructureNV) == (b->accelerationStructureNV))) {
17513         onFail("a->accelerationStructureNV (Error: Value not equal)");
17514     };
17515 }
17516 
17517 #endif
17518 #ifdef VK_EXT_graphics_pipeline_library
checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * a,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * b,OnFailCompareFunc onFail)17519 void checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
17520     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* a,
17521     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* b, OnFailCompareFunc onFail) {
17522     if (!((a->sType) == (b->sType))) {
17523         onFail("a->sType (Error: Value not equal)");
17524     };
17525     if (a->pNext) {
17526         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17527     }
17528     if (!((a->graphicsPipelineLibrary) == (b->graphicsPipelineLibrary))) {
17529         onFail("a->graphicsPipelineLibrary (Error: Value not equal)");
17530     };
17531 }
17532 
checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * a,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * b,OnFailCompareFunc onFail)17533 void checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
17534     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* a,
17535     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* b, OnFailCompareFunc onFail) {
17536     if (!((a->sType) == (b->sType))) {
17537         onFail("a->sType (Error: Value not equal)");
17538     };
17539     if (a->pNext) {
17540         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17541     }
17542     if (!((a->graphicsPipelineLibraryFastLinking) == (b->graphicsPipelineLibraryFastLinking))) {
17543         onFail("a->graphicsPipelineLibraryFastLinking (Error: Value not equal)");
17544     };
17545     if (!((a->graphicsPipelineLibraryIndependentInterpolationDecoration) ==
17546           (b->graphicsPipelineLibraryIndependentInterpolationDecoration))) {
17547         onFail(
17548             "a->graphicsPipelineLibraryIndependentInterpolationDecoration (Error: Value not "
17549             "equal)");
17550     };
17551 }
17552 
checkEqual_VkGraphicsPipelineLibraryCreateInfoEXT(const VkGraphicsPipelineLibraryCreateInfoEXT * a,const VkGraphicsPipelineLibraryCreateInfoEXT * b,OnFailCompareFunc onFail)17553 void checkEqual_VkGraphicsPipelineLibraryCreateInfoEXT(
17554     const VkGraphicsPipelineLibraryCreateInfoEXT* a,
17555     const VkGraphicsPipelineLibraryCreateInfoEXT* b, OnFailCompareFunc onFail) {
17556     if (!((a->sType) == (b->sType))) {
17557         onFail("a->sType (Error: Value not equal)");
17558     };
17559     if (a->pNext) {
17560         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17561     }
17562     if (!((a->flags) == (b->flags))) {
17563         onFail("a->flags (Error: Value not equal)");
17564     };
17565 }
17566 
17567 #endif
17568 #ifdef VK_AMD_shader_early_and_late_fragment_tests
checkEqual_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD * a,const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD * b,OnFailCompareFunc onFail)17569 void checkEqual_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
17570     const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* a,
17571     const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* b, OnFailCompareFunc onFail) {
17572     if (!((a->sType) == (b->sType))) {
17573         onFail("a->sType (Error: Value not equal)");
17574     };
17575     if (a->pNext) {
17576         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17577     }
17578     if (!((a->shaderEarlyAndLateFragmentTests) == (b->shaderEarlyAndLateFragmentTests))) {
17579         onFail("a->shaderEarlyAndLateFragmentTests (Error: Value not equal)");
17580     };
17581 }
17582 
17583 #endif
17584 #ifdef VK_NV_fragment_shading_rate_enums
checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV * a,const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV * b,OnFailCompareFunc onFail)17585 void checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
17586     const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* a,
17587     const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* b, OnFailCompareFunc onFail) {
17588     if (!((a->sType) == (b->sType))) {
17589         onFail("a->sType (Error: Value not equal)");
17590     };
17591     if (a->pNext) {
17592         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17593     }
17594     if (!((a->fragmentShadingRateEnums) == (b->fragmentShadingRateEnums))) {
17595         onFail("a->fragmentShadingRateEnums (Error: Value not equal)");
17596     };
17597     if (!((a->supersampleFragmentShadingRates) == (b->supersampleFragmentShadingRates))) {
17598         onFail("a->supersampleFragmentShadingRates (Error: Value not equal)");
17599     };
17600     if (!((a->noInvocationFragmentShadingRates) == (b->noInvocationFragmentShadingRates))) {
17601         onFail("a->noInvocationFragmentShadingRates (Error: Value not equal)");
17602     };
17603 }
17604 
checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV * a,const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV * b,OnFailCompareFunc onFail)17605 void checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
17606     const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* a,
17607     const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* b, OnFailCompareFunc onFail) {
17608     if (!((a->sType) == (b->sType))) {
17609         onFail("a->sType (Error: Value not equal)");
17610     };
17611     if (a->pNext) {
17612         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17613     }
17614     if (!((a->maxFragmentShadingRateInvocationCount) ==
17615           (b->maxFragmentShadingRateInvocationCount))) {
17616         onFail("a->maxFragmentShadingRateInvocationCount (Error: Value not equal)");
17617     };
17618 }
17619 
checkEqual_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(const VkPipelineFragmentShadingRateEnumStateCreateInfoNV * a,const VkPipelineFragmentShadingRateEnumStateCreateInfoNV * b,OnFailCompareFunc onFail)17620 void checkEqual_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
17621     const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* a,
17622     const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* b, OnFailCompareFunc onFail) {
17623     if (!((a->sType) == (b->sType))) {
17624         onFail("a->sType (Error: Value not equal)");
17625     };
17626     if (a->pNext) {
17627         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17628     }
17629     if (!((a->shadingRateType) == (b->shadingRateType))) {
17630         onFail("a->shadingRateType (Error: Value not equal)");
17631     };
17632     if (!((a->shadingRate) == (b->shadingRate))) {
17633         onFail("a->shadingRate (Error: Value not equal)");
17634     };
17635     if (!((memcmp(a->combinerOps, b->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR)) ==
17636            0))) {
17637         onFail("a->combinerOps (Error: Unequal static array)");
17638     };
17639 }
17640 
17641 #endif
17642 #ifdef VK_NV_ray_tracing_motion_blur
checkEqual_VkDeviceOrHostAddressConstKHR(const VkDeviceOrHostAddressConstKHR * a,const VkDeviceOrHostAddressConstKHR * b,OnFailCompareFunc onFail)17643 void checkEqual_VkDeviceOrHostAddressConstKHR(const VkDeviceOrHostAddressConstKHR* a,
17644                                               const VkDeviceOrHostAddressConstKHR* b,
17645                                               OnFailCompareFunc onFail) {
17646     if (!((a->deviceAddress) == (b->deviceAddress))) {
17647         onFail("a->deviceAddress (Error: Value not equal)");
17648     };
17649     if (!((!(a->hostAddress) && !(b->hostAddress)) || ((a->hostAddress) && (b->hostAddress)))) {
17650         onFail("a->hostAddress (Error: Mismatch in optional field)");
17651     };
17652 }
17653 
checkEqual_VkAccelerationStructureGeometryMotionTrianglesDataNV(const VkAccelerationStructureGeometryMotionTrianglesDataNV * a,const VkAccelerationStructureGeometryMotionTrianglesDataNV * b,OnFailCompareFunc onFail)17654 void checkEqual_VkAccelerationStructureGeometryMotionTrianglesDataNV(
17655     const VkAccelerationStructureGeometryMotionTrianglesDataNV* a,
17656     const VkAccelerationStructureGeometryMotionTrianglesDataNV* b, OnFailCompareFunc onFail) {
17657     if (!((a->sType) == (b->sType))) {
17658         onFail("a->sType (Error: Value not equal)");
17659     };
17660     if (a->pNext) {
17661         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17662     }
17663     checkEqual_VkDeviceOrHostAddressConstKHR(&a->vertexData, &b->vertexData, onFail);
17664 }
17665 
checkEqual_VkAccelerationStructureMotionInfoNV(const VkAccelerationStructureMotionInfoNV * a,const VkAccelerationStructureMotionInfoNV * b,OnFailCompareFunc onFail)17666 void checkEqual_VkAccelerationStructureMotionInfoNV(const VkAccelerationStructureMotionInfoNV* a,
17667                                                     const VkAccelerationStructureMotionInfoNV* b,
17668                                                     OnFailCompareFunc onFail) {
17669     if (!((a->sType) == (b->sType))) {
17670         onFail("a->sType (Error: Value not equal)");
17671     };
17672     if (a->pNext) {
17673         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17674     }
17675     if (!((a->maxInstances) == (b->maxInstances))) {
17676         onFail("a->maxInstances (Error: Value not equal)");
17677     };
17678     if (!((a->flags) == (b->flags))) {
17679         onFail("a->flags (Error: Value not equal)");
17680     };
17681 }
17682 
checkEqual_VkAccelerationStructureMatrixMotionInstanceNV(const VkAccelerationStructureMatrixMotionInstanceNV * a,const VkAccelerationStructureMatrixMotionInstanceNV * b,OnFailCompareFunc onFail)17683 void checkEqual_VkAccelerationStructureMatrixMotionInstanceNV(
17684     const VkAccelerationStructureMatrixMotionInstanceNV* a,
17685     const VkAccelerationStructureMatrixMotionInstanceNV* b, OnFailCompareFunc onFail) {
17686     checkEqual_VkTransformMatrixKHR(&a->transformT0, &b->transformT0, onFail);
17687     checkEqual_VkTransformMatrixKHR(&a->transformT1, &b->transformT1, onFail);
17688     if (!((a->instanceCustomIndex) == (b->instanceCustomIndex))) {
17689         onFail("a->instanceCustomIndex (Error: Value not equal)");
17690     };
17691     if (!((a->mask) == (b->mask))) {
17692         onFail("a->mask (Error: Value not equal)");
17693     };
17694     if (!((a->instanceShaderBindingTableRecordOffset) ==
17695           (b->instanceShaderBindingTableRecordOffset))) {
17696         onFail("a->instanceShaderBindingTableRecordOffset (Error: Value not equal)");
17697     };
17698     if (!((a->flags) == (b->flags))) {
17699         onFail("a->flags (Error: Value not equal)");
17700     };
17701     if (!((a->accelerationStructureReference) == (b->accelerationStructureReference))) {
17702         onFail("a->accelerationStructureReference (Error: Value not equal)");
17703     };
17704 }
17705 
checkEqual_VkSRTDataNV(const VkSRTDataNV * a,const VkSRTDataNV * b,OnFailCompareFunc onFail)17706 void checkEqual_VkSRTDataNV(const VkSRTDataNV* a, const VkSRTDataNV* b, OnFailCompareFunc onFail) {
17707     if (!((a->sx) == (b->sx))) {
17708         onFail("a->sx (Error: Value not equal)");
17709     };
17710     if (!((a->a) == (b->a))) {
17711         onFail("a->a (Error: Value not equal)");
17712     };
17713     if (!((a->b) == (b->b))) {
17714         onFail("a->b (Error: Value not equal)");
17715     };
17716     if (!((a->pvx) == (b->pvx))) {
17717         onFail("a->pvx (Error: Value not equal)");
17718     };
17719     if (!((a->sy) == (b->sy))) {
17720         onFail("a->sy (Error: Value not equal)");
17721     };
17722     if (!((a->c) == (b->c))) {
17723         onFail("a->c (Error: Value not equal)");
17724     };
17725     if (!((a->pvy) == (b->pvy))) {
17726         onFail("a->pvy (Error: Value not equal)");
17727     };
17728     if (!((a->sz) == (b->sz))) {
17729         onFail("a->sz (Error: Value not equal)");
17730     };
17731     if (!((a->pvz) == (b->pvz))) {
17732         onFail("a->pvz (Error: Value not equal)");
17733     };
17734     if (!((a->qx) == (b->qx))) {
17735         onFail("a->qx (Error: Value not equal)");
17736     };
17737     if (!((a->qy) == (b->qy))) {
17738         onFail("a->qy (Error: Value not equal)");
17739     };
17740     if (!((a->qz) == (b->qz))) {
17741         onFail("a->qz (Error: Value not equal)");
17742     };
17743     if (!((a->qw) == (b->qw))) {
17744         onFail("a->qw (Error: Value not equal)");
17745     };
17746     if (!((a->tx) == (b->tx))) {
17747         onFail("a->tx (Error: Value not equal)");
17748     };
17749     if (!((a->ty) == (b->ty))) {
17750         onFail("a->ty (Error: Value not equal)");
17751     };
17752     if (!((a->tz) == (b->tz))) {
17753         onFail("a->tz (Error: Value not equal)");
17754     };
17755 }
17756 
checkEqual_VkAccelerationStructureSRTMotionInstanceNV(const VkAccelerationStructureSRTMotionInstanceNV * a,const VkAccelerationStructureSRTMotionInstanceNV * b,OnFailCompareFunc onFail)17757 void checkEqual_VkAccelerationStructureSRTMotionInstanceNV(
17758     const VkAccelerationStructureSRTMotionInstanceNV* a,
17759     const VkAccelerationStructureSRTMotionInstanceNV* b, OnFailCompareFunc onFail) {
17760     checkEqual_VkSRTDataNV(&a->transformT0, &b->transformT0, onFail);
17761     checkEqual_VkSRTDataNV(&a->transformT1, &b->transformT1, onFail);
17762     if (!((a->instanceCustomIndex) == (b->instanceCustomIndex))) {
17763         onFail("a->instanceCustomIndex (Error: Value not equal)");
17764     };
17765     if (!((a->mask) == (b->mask))) {
17766         onFail("a->mask (Error: Value not equal)");
17767     };
17768     if (!((a->instanceShaderBindingTableRecordOffset) ==
17769           (b->instanceShaderBindingTableRecordOffset))) {
17770         onFail("a->instanceShaderBindingTableRecordOffset (Error: Value not equal)");
17771     };
17772     if (!((a->flags) == (b->flags))) {
17773         onFail("a->flags (Error: Value not equal)");
17774     };
17775     if (!((a->accelerationStructureReference) == (b->accelerationStructureReference))) {
17776         onFail("a->accelerationStructureReference (Error: Value not equal)");
17777     };
17778 }
17779 
checkEqual_VkAccelerationStructureMotionInstanceDataNV(const VkAccelerationStructureMotionInstanceDataNV * a,const VkAccelerationStructureMotionInstanceDataNV * b,OnFailCompareFunc onFail)17780 void checkEqual_VkAccelerationStructureMotionInstanceDataNV(
17781     const VkAccelerationStructureMotionInstanceDataNV* a,
17782     const VkAccelerationStructureMotionInstanceDataNV* b, OnFailCompareFunc onFail) {
17783     checkEqual_VkAccelerationStructureInstanceKHR(&a->staticInstance, &b->staticInstance, onFail);
17784     checkEqual_VkAccelerationStructureMatrixMotionInstanceNV(&a->matrixMotionInstance,
17785                                                              &b->matrixMotionInstance, onFail);
17786     checkEqual_VkAccelerationStructureSRTMotionInstanceNV(&a->srtMotionInstance,
17787                                                           &b->srtMotionInstance, onFail);
17788 }
17789 
checkEqual_VkAccelerationStructureMotionInstanceNV(const VkAccelerationStructureMotionInstanceNV * a,const VkAccelerationStructureMotionInstanceNV * b,OnFailCompareFunc onFail)17790 void checkEqual_VkAccelerationStructureMotionInstanceNV(
17791     const VkAccelerationStructureMotionInstanceNV* a,
17792     const VkAccelerationStructureMotionInstanceNV* b, OnFailCompareFunc onFail) {
17793     if (!((a->type) == (b->type))) {
17794         onFail("a->type (Error: Value not equal)");
17795     };
17796     if (!((a->flags) == (b->flags))) {
17797         onFail("a->flags (Error: Value not equal)");
17798     };
17799     checkEqual_VkAccelerationStructureMotionInstanceDataNV(&a->data, &b->data, onFail);
17800 }
17801 
checkEqual_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV * a,const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV * b,OnFailCompareFunc onFail)17802 void checkEqual_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
17803     const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* a,
17804     const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* b, OnFailCompareFunc onFail) {
17805     if (!((a->sType) == (b->sType))) {
17806         onFail("a->sType (Error: Value not equal)");
17807     };
17808     if (a->pNext) {
17809         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17810     }
17811     if (!((a->rayTracingMotionBlur) == (b->rayTracingMotionBlur))) {
17812         onFail("a->rayTracingMotionBlur (Error: Value not equal)");
17813     };
17814     if (!((a->rayTracingMotionBlurPipelineTraceRaysIndirect) ==
17815           (b->rayTracingMotionBlurPipelineTraceRaysIndirect))) {
17816         onFail("a->rayTracingMotionBlurPipelineTraceRaysIndirect (Error: Value not equal)");
17817     };
17818 }
17819 
17820 #endif
17821 #ifdef VK_EXT_ycbcr_2plane_444_formats
checkEqual_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * a,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * b,OnFailCompareFunc onFail)17822 void checkEqual_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
17823     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* a,
17824     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* b, OnFailCompareFunc onFail) {
17825     if (!((a->sType) == (b->sType))) {
17826         onFail("a->sType (Error: Value not equal)");
17827     };
17828     if (a->pNext) {
17829         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17830     }
17831     if (!((a->ycbcr2plane444Formats) == (b->ycbcr2plane444Formats))) {
17832         onFail("a->ycbcr2plane444Formats (Error: Value not equal)");
17833     };
17834 }
17835 
17836 #endif
17837 #ifdef VK_EXT_fragment_density_map2
checkEqual_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT * a,const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT * b,OnFailCompareFunc onFail)17838 void checkEqual_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
17839     const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* a,
17840     const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* b, OnFailCompareFunc onFail) {
17841     if (!((a->sType) == (b->sType))) {
17842         onFail("a->sType (Error: Value not equal)");
17843     };
17844     if (a->pNext) {
17845         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17846     }
17847     if (!((a->fragmentDensityMapDeferred) == (b->fragmentDensityMapDeferred))) {
17848         onFail("a->fragmentDensityMapDeferred (Error: Value not equal)");
17849     };
17850 }
17851 
checkEqual_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT * a,const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT * b,OnFailCompareFunc onFail)17852 void checkEqual_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
17853     const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* a,
17854     const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* b, OnFailCompareFunc onFail) {
17855     if (!((a->sType) == (b->sType))) {
17856         onFail("a->sType (Error: Value not equal)");
17857     };
17858     if (a->pNext) {
17859         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17860     }
17861     if (!((a->subsampledLoads) == (b->subsampledLoads))) {
17862         onFail("a->subsampledLoads (Error: Value not equal)");
17863     };
17864     if (!((a->subsampledCoarseReconstructionEarlyAccess) ==
17865           (b->subsampledCoarseReconstructionEarlyAccess))) {
17866         onFail("a->subsampledCoarseReconstructionEarlyAccess (Error: Value not equal)");
17867     };
17868     if (!((a->maxSubsampledArrayLayers) == (b->maxSubsampledArrayLayers))) {
17869         onFail("a->maxSubsampledArrayLayers (Error: Value not equal)");
17870     };
17871     if (!((a->maxDescriptorSetSubsampledSamplers) == (b->maxDescriptorSetSubsampledSamplers))) {
17872         onFail("a->maxDescriptorSetSubsampledSamplers (Error: Value not equal)");
17873     };
17874 }
17875 
17876 #endif
17877 #ifdef VK_QCOM_rotated_copy_commands
checkEqual_VkCopyCommandTransformInfoQCOM(const VkCopyCommandTransformInfoQCOM * a,const VkCopyCommandTransformInfoQCOM * b,OnFailCompareFunc onFail)17878 void checkEqual_VkCopyCommandTransformInfoQCOM(const VkCopyCommandTransformInfoQCOM* a,
17879                                                const VkCopyCommandTransformInfoQCOM* b,
17880                                                OnFailCompareFunc onFail) {
17881     if (!((a->sType) == (b->sType))) {
17882         onFail("a->sType (Error: Value not equal)");
17883     };
17884     if (a->pNext) {
17885         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17886     }
17887     if (!((a->transform) == (b->transform))) {
17888         onFail("a->transform (Error: Value not equal)");
17889     };
17890 }
17891 
17892 #endif
17893 #ifdef VK_EXT_image_robustness
17894 #endif
17895 #ifdef VK_EXT_image_compression_control
checkEqual_VkPhysicalDeviceImageCompressionControlFeaturesEXT(const VkPhysicalDeviceImageCompressionControlFeaturesEXT * a,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * b,OnFailCompareFunc onFail)17896 void checkEqual_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
17897     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* a,
17898     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* b, OnFailCompareFunc onFail) {
17899     if (!((a->sType) == (b->sType))) {
17900         onFail("a->sType (Error: Value not equal)");
17901     };
17902     if (a->pNext) {
17903         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17904     }
17905     if (!((a->imageCompressionControl) == (b->imageCompressionControl))) {
17906         onFail("a->imageCompressionControl (Error: Value not equal)");
17907     };
17908 }
17909 
checkEqual_VkImageCompressionControlEXT(const VkImageCompressionControlEXT * a,const VkImageCompressionControlEXT * b,OnFailCompareFunc onFail)17910 void checkEqual_VkImageCompressionControlEXT(const VkImageCompressionControlEXT* a,
17911                                              const VkImageCompressionControlEXT* b,
17912                                              OnFailCompareFunc onFail) {
17913     if (!((a->sType) == (b->sType))) {
17914         onFail("a->sType (Error: Value not equal)");
17915     };
17916     if (a->pNext) {
17917         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17918     }
17919     if (!((a->flags) == (b->flags))) {
17920         onFail("a->flags (Error: Value not equal)");
17921     };
17922     if (!((a->compressionControlPlaneCount) == (b->compressionControlPlaneCount))) {
17923         onFail("a->compressionControlPlaneCount (Error: Value not equal)");
17924     };
17925     if (!((!(a->pFixedRateFlags) && !(b->pFixedRateFlags)) ||
17926           ((a->pFixedRateFlags) && (b->pFixedRateFlags)))) {
17927         onFail("a->pFixedRateFlags (Error: Mismatch in optional field)");
17928     };
17929     if (a->pFixedRateFlags && b->pFixedRateFlags) {
17930         if (!((a->compressionControlPlaneCount) == (b->compressionControlPlaneCount))) {
17931             onFail("a->pFixedRateFlags (Error: Lengths not equal)");
17932         };
17933         if (!((memcmp(a->pFixedRateFlags, b->pFixedRateFlags,
17934                       a->compressionControlPlaneCount *
17935                           sizeof(VkImageCompressionFixedRateFlagsEXT)) == 0))) {
17936             onFail("a->pFixedRateFlags (Error: Unequal dyn array)");
17937         };
17938     }
17939 }
17940 
checkEqual_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT * a,const VkSubresourceLayout2EXT * b,OnFailCompareFunc onFail)17941 void checkEqual_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT* a,
17942                                         const VkSubresourceLayout2EXT* b,
17943                                         OnFailCompareFunc onFail) {
17944     if (!((a->sType) == (b->sType))) {
17945         onFail("a->sType (Error: Value not equal)");
17946     };
17947     if (a->pNext) {
17948         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17949     }
17950     checkEqual_VkSubresourceLayout(&a->subresourceLayout, &b->subresourceLayout, onFail);
17951 }
17952 
checkEqual_VkImageSubresource2EXT(const VkImageSubresource2EXT * a,const VkImageSubresource2EXT * b,OnFailCompareFunc onFail)17953 void checkEqual_VkImageSubresource2EXT(const VkImageSubresource2EXT* a,
17954                                        const VkImageSubresource2EXT* b, OnFailCompareFunc onFail) {
17955     if (!((a->sType) == (b->sType))) {
17956         onFail("a->sType (Error: Value not equal)");
17957     };
17958     if (a->pNext) {
17959         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17960     }
17961     checkEqual_VkImageSubresource(&a->imageSubresource, &b->imageSubresource, onFail);
17962 }
17963 
checkEqual_VkImageCompressionPropertiesEXT(const VkImageCompressionPropertiesEXT * a,const VkImageCompressionPropertiesEXT * b,OnFailCompareFunc onFail)17964 void checkEqual_VkImageCompressionPropertiesEXT(const VkImageCompressionPropertiesEXT* a,
17965                                                 const VkImageCompressionPropertiesEXT* b,
17966                                                 OnFailCompareFunc onFail) {
17967     if (!((a->sType) == (b->sType))) {
17968         onFail("a->sType (Error: Value not equal)");
17969     };
17970     if (a->pNext) {
17971         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17972     }
17973     if (!((a->imageCompressionFlags) == (b->imageCompressionFlags))) {
17974         onFail("a->imageCompressionFlags (Error: Value not equal)");
17975     };
17976     if (!((a->imageCompressionFixedRateFlags) == (b->imageCompressionFixedRateFlags))) {
17977         onFail("a->imageCompressionFixedRateFlags (Error: Value not equal)");
17978     };
17979 }
17980 
17981 #endif
17982 #ifdef VK_EXT_attachment_feedback_loop_layout
checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT * a,const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT * b,OnFailCompareFunc onFail)17983 void checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
17984     const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* a,
17985     const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* b, OnFailCompareFunc onFail) {
17986     if (!((a->sType) == (b->sType))) {
17987         onFail("a->sType (Error: Value not equal)");
17988     };
17989     if (a->pNext) {
17990         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
17991     }
17992     if (!((a->attachmentFeedbackLoopLayout) == (b->attachmentFeedbackLoopLayout))) {
17993         onFail("a->attachmentFeedbackLoopLayout (Error: Value not equal)");
17994     };
17995 }
17996 
17997 #endif
17998 #ifdef VK_EXT_4444_formats
checkEqual_VkPhysicalDevice4444FormatsFeaturesEXT(const VkPhysicalDevice4444FormatsFeaturesEXT * a,const VkPhysicalDevice4444FormatsFeaturesEXT * b,OnFailCompareFunc onFail)17999 void checkEqual_VkPhysicalDevice4444FormatsFeaturesEXT(
18000     const VkPhysicalDevice4444FormatsFeaturesEXT* a,
18001     const VkPhysicalDevice4444FormatsFeaturesEXT* b, OnFailCompareFunc onFail) {
18002     if (!((a->sType) == (b->sType))) {
18003         onFail("a->sType (Error: Value not equal)");
18004     };
18005     if (a->pNext) {
18006         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18007     }
18008     if (!((a->formatA4R4G4B4) == (b->formatA4R4G4B4))) {
18009         onFail("a->formatA4R4G4B4 (Error: Value not equal)");
18010     };
18011     if (!((a->formatA4B4G4R4) == (b->formatA4B4G4R4))) {
18012         onFail("a->formatA4B4G4R4 (Error: Value not equal)");
18013     };
18014 }
18015 
18016 #endif
18017 #ifdef VK_EXT_device_fault
checkEqual_VkPhysicalDeviceFaultFeaturesEXT(const VkPhysicalDeviceFaultFeaturesEXT * a,const VkPhysicalDeviceFaultFeaturesEXT * b,OnFailCompareFunc onFail)18018 void checkEqual_VkPhysicalDeviceFaultFeaturesEXT(const VkPhysicalDeviceFaultFeaturesEXT* a,
18019                                                  const VkPhysicalDeviceFaultFeaturesEXT* b,
18020                                                  OnFailCompareFunc onFail) {
18021     if (!((a->sType) == (b->sType))) {
18022         onFail("a->sType (Error: Value not equal)");
18023     };
18024     if (a->pNext) {
18025         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18026     }
18027     if (!((a->deviceFault) == (b->deviceFault))) {
18028         onFail("a->deviceFault (Error: Value not equal)");
18029     };
18030     if (!((a->deviceFaultVendorBinary) == (b->deviceFaultVendorBinary))) {
18031         onFail("a->deviceFaultVendorBinary (Error: Value not equal)");
18032     };
18033 }
18034 
checkEqual_VkDeviceFaultCountsEXT(const VkDeviceFaultCountsEXT * a,const VkDeviceFaultCountsEXT * b,OnFailCompareFunc onFail)18035 void checkEqual_VkDeviceFaultCountsEXT(const VkDeviceFaultCountsEXT* a,
18036                                        const VkDeviceFaultCountsEXT* b, OnFailCompareFunc onFail) {
18037     if (!((a->sType) == (b->sType))) {
18038         onFail("a->sType (Error: Value not equal)");
18039     };
18040     if (a->pNext) {
18041         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18042     }
18043     if (!((a->addressInfoCount) == (b->addressInfoCount))) {
18044         onFail("a->addressInfoCount (Error: Value not equal)");
18045     };
18046     if (!((a->vendorInfoCount) == (b->vendorInfoCount))) {
18047         onFail("a->vendorInfoCount (Error: Value not equal)");
18048     };
18049     if (!((a->vendorBinarySize) == (b->vendorBinarySize))) {
18050         onFail("a->vendorBinarySize (Error: Value not equal)");
18051     };
18052 }
18053 
checkEqual_VkDeviceFaultAddressInfoEXT(const VkDeviceFaultAddressInfoEXT * a,const VkDeviceFaultAddressInfoEXT * b,OnFailCompareFunc onFail)18054 void checkEqual_VkDeviceFaultAddressInfoEXT(const VkDeviceFaultAddressInfoEXT* a,
18055                                             const VkDeviceFaultAddressInfoEXT* b,
18056                                             OnFailCompareFunc onFail) {
18057     if (!((a->addressType) == (b->addressType))) {
18058         onFail("a->addressType (Error: Value not equal)");
18059     };
18060     if (!((a->reportedAddress) == (b->reportedAddress))) {
18061         onFail("a->reportedAddress (Error: Value not equal)");
18062     };
18063     if (!((a->addressPrecision) == (b->addressPrecision))) {
18064         onFail("a->addressPrecision (Error: Value not equal)");
18065     };
18066 }
18067 
checkEqual_VkDeviceFaultVendorInfoEXT(const VkDeviceFaultVendorInfoEXT * a,const VkDeviceFaultVendorInfoEXT * b,OnFailCompareFunc onFail)18068 void checkEqual_VkDeviceFaultVendorInfoEXT(const VkDeviceFaultVendorInfoEXT* a,
18069                                            const VkDeviceFaultVendorInfoEXT* b,
18070                                            OnFailCompareFunc onFail) {
18071     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
18072         onFail("a->description (Error: Unequal static array)");
18073     };
18074     if (!((a->vendorFaultCode) == (b->vendorFaultCode))) {
18075         onFail("a->vendorFaultCode (Error: Value not equal)");
18076     };
18077     if (!((a->vendorFaultData) == (b->vendorFaultData))) {
18078         onFail("a->vendorFaultData (Error: Value not equal)");
18079     };
18080 }
18081 
checkEqual_VkDeviceFaultInfoEXT(const VkDeviceFaultInfoEXT * a,const VkDeviceFaultInfoEXT * b,OnFailCompareFunc onFail)18082 void checkEqual_VkDeviceFaultInfoEXT(const VkDeviceFaultInfoEXT* a, const VkDeviceFaultInfoEXT* b,
18083                                      OnFailCompareFunc onFail) {
18084     if (!((a->sType) == (b->sType))) {
18085         onFail("a->sType (Error: Value not equal)");
18086     };
18087     if (a->pNext) {
18088         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18089     }
18090     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
18091         onFail("a->description (Error: Unequal static array)");
18092     };
18093     if (!((!(a->pAddressInfos) && !(b->pAddressInfos)) ||
18094           ((a->pAddressInfos) && (b->pAddressInfos)))) {
18095         onFail("a->pAddressInfos (Error: Mismatch in optional field)");
18096     };
18097     if (a->pAddressInfos && b->pAddressInfos) {
18098         if ((a->pAddressInfos) && (b->pAddressInfos)) {
18099             checkEqual_VkDeviceFaultAddressInfoEXT(a->pAddressInfos, b->pAddressInfos, onFail);
18100         }
18101     }
18102     if (!((!(a->pVendorInfos) && !(b->pVendorInfos)) || ((a->pVendorInfos) && (b->pVendorInfos)))) {
18103         onFail("a->pVendorInfos (Error: Mismatch in optional field)");
18104     };
18105     if (a->pVendorInfos && b->pVendorInfos) {
18106         if ((a->pVendorInfos) && (b->pVendorInfos)) {
18107             checkEqual_VkDeviceFaultVendorInfoEXT(a->pVendorInfos, b->pVendorInfos, onFail);
18108         }
18109     }
18110     if (!((!(a->pVendorBinaryData) && !(b->pVendorBinaryData)) ||
18111           ((a->pVendorBinaryData) && (b->pVendorBinaryData)))) {
18112         onFail("a->pVendorBinaryData (Error: Mismatch in optional field)");
18113     };
18114 }
18115 
checkEqual_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(const VkDeviceFaultVendorBinaryHeaderVersionOneEXT * a,const VkDeviceFaultVendorBinaryHeaderVersionOneEXT * b,OnFailCompareFunc onFail)18116 void checkEqual_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(
18117     const VkDeviceFaultVendorBinaryHeaderVersionOneEXT* a,
18118     const VkDeviceFaultVendorBinaryHeaderVersionOneEXT* b, OnFailCompareFunc onFail) {
18119     if (!((a->headerSize) == (b->headerSize))) {
18120         onFail("a->headerSize (Error: Value not equal)");
18121     };
18122     if (!((a->headerVersion) == (b->headerVersion))) {
18123         onFail("a->headerVersion (Error: Value not equal)");
18124     };
18125     if (!((a->vendorID) == (b->vendorID))) {
18126         onFail("a->vendorID (Error: Value not equal)");
18127     };
18128     if (!((a->deviceID) == (b->deviceID))) {
18129         onFail("a->deviceID (Error: Value not equal)");
18130     };
18131     if (!((a->driverVersion) == (b->driverVersion))) {
18132         onFail("a->driverVersion (Error: Value not equal)");
18133     };
18134     if (!((memcmp(a->pipelineCacheUUID, b->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t)) ==
18135            0))) {
18136         onFail("a->pipelineCacheUUID (Error: Unequal static array)");
18137     };
18138     if (!((a->applicationNameOffset) == (b->applicationNameOffset))) {
18139         onFail("a->applicationNameOffset (Error: Value not equal)");
18140     };
18141     if (!((a->applicationVersion) == (b->applicationVersion))) {
18142         onFail("a->applicationVersion (Error: Value not equal)");
18143     };
18144     if (!((a->engineNameOffset) == (b->engineNameOffset))) {
18145         onFail("a->engineNameOffset (Error: Value not equal)");
18146     };
18147     if (!((a->engineVersion) == (b->engineVersion))) {
18148         onFail("a->engineVersion (Error: Value not equal)");
18149     };
18150     if (!((a->apiVersion) == (b->apiVersion))) {
18151         onFail("a->apiVersion (Error: Value not equal)");
18152     };
18153 }
18154 
18155 #endif
18156 #ifdef VK_ARM_rasterization_order_attachment_access
checkEqual_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT * a,const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT * b,OnFailCompareFunc onFail)18157 void checkEqual_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
18158     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* a,
18159     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* b,
18160     OnFailCompareFunc onFail) {
18161     if (!((a->sType) == (b->sType))) {
18162         onFail("a->sType (Error: Value not equal)");
18163     };
18164     if (a->pNext) {
18165         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18166     }
18167     if (!((a->rasterizationOrderColorAttachmentAccess) ==
18168           (b->rasterizationOrderColorAttachmentAccess))) {
18169         onFail("a->rasterizationOrderColorAttachmentAccess (Error: Value not equal)");
18170     };
18171     if (!((a->rasterizationOrderDepthAttachmentAccess) ==
18172           (b->rasterizationOrderDepthAttachmentAccess))) {
18173         onFail("a->rasterizationOrderDepthAttachmentAccess (Error: Value not equal)");
18174     };
18175     if (!((a->rasterizationOrderStencilAttachmentAccess) ==
18176           (b->rasterizationOrderStencilAttachmentAccess))) {
18177         onFail("a->rasterizationOrderStencilAttachmentAccess (Error: Value not equal)");
18178     };
18179 }
18180 
18181 #endif
18182 #ifdef VK_EXT_rgba10x6_formats
checkEqual_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT * a,const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT * b,OnFailCompareFunc onFail)18183 void checkEqual_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
18184     const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* a,
18185     const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* b, OnFailCompareFunc onFail) {
18186     if (!((a->sType) == (b->sType))) {
18187         onFail("a->sType (Error: Value not equal)");
18188     };
18189     if (a->pNext) {
18190         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18191     }
18192     if (!((a->formatRgba10x6WithoutYCbCrSampler) == (b->formatRgba10x6WithoutYCbCrSampler))) {
18193         onFail("a->formatRgba10x6WithoutYCbCrSampler (Error: Value not equal)");
18194     };
18195 }
18196 
18197 #endif
18198 #ifdef VK_NV_acquire_winrt_display
18199 #endif
18200 #ifdef VK_EXT_directfb_surface
checkEqual_VkDirectFBSurfaceCreateInfoEXT(const VkDirectFBSurfaceCreateInfoEXT * a,const VkDirectFBSurfaceCreateInfoEXT * b,OnFailCompareFunc onFail)18201 void checkEqual_VkDirectFBSurfaceCreateInfoEXT(const VkDirectFBSurfaceCreateInfoEXT* a,
18202                                                const VkDirectFBSurfaceCreateInfoEXT* b,
18203                                                OnFailCompareFunc onFail) {
18204     if (!((a->sType) == (b->sType))) {
18205         onFail("a->sType (Error: Value not equal)");
18206     };
18207     if (a->pNext) {
18208         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18209     }
18210     if (!((a->flags) == (b->flags))) {
18211         onFail("a->flags (Error: Value not equal)");
18212     };
18213     if (!((!(a->dfb) && !(b->dfb)) || ((a->dfb) && (b->dfb)))) {
18214         onFail("a->dfb (Error: Mismatch in optional field)");
18215     };
18216     if (a->dfb && b->dfb) {
18217         if (!((memcmp(a->dfb, b->dfb, sizeof(IDirectFB)) == 0))) {
18218             onFail("a->dfb (Error: Unequal dyn array)");
18219         };
18220     }
18221     if (!((!(a->surface) && !(b->surface)) || ((a->surface) && (b->surface)))) {
18222         onFail("a->surface (Error: Mismatch in optional field)");
18223     };
18224     if (a->surface && b->surface) {
18225         if (!((memcmp(a->surface, b->surface, sizeof(IDirectFBSurface)) == 0))) {
18226             onFail("a->surface (Error: Unequal dyn array)");
18227         };
18228     }
18229 }
18230 
18231 #endif
18232 #ifdef VK_VALVE_mutable_descriptor_type
checkEqual_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * a,const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * b,OnFailCompareFunc onFail)18233 void checkEqual_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
18234     const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* a,
18235     const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* b, OnFailCompareFunc onFail) {
18236     if (!((a->sType) == (b->sType))) {
18237         onFail("a->sType (Error: Value not equal)");
18238     };
18239     if (a->pNext) {
18240         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18241     }
18242     if (!((a->mutableDescriptorType) == (b->mutableDescriptorType))) {
18243         onFail("a->mutableDescriptorType (Error: Value not equal)");
18244     };
18245 }
18246 
checkEqual_VkMutableDescriptorTypeListEXT(const VkMutableDescriptorTypeListEXT * a,const VkMutableDescriptorTypeListEXT * b,OnFailCompareFunc onFail)18247 void checkEqual_VkMutableDescriptorTypeListEXT(const VkMutableDescriptorTypeListEXT* a,
18248                                                const VkMutableDescriptorTypeListEXT* b,
18249                                                OnFailCompareFunc onFail) {
18250     if (!((a->descriptorTypeCount) == (b->descriptorTypeCount))) {
18251         onFail("a->descriptorTypeCount (Error: Value not equal)");
18252     };
18253     if (!((a->descriptorTypeCount) == (b->descriptorTypeCount))) {
18254         onFail("a->pDescriptorTypes (Error: Lengths not equal)");
18255     };
18256     if (!((memcmp(a->pDescriptorTypes, b->pDescriptorTypes,
18257                   a->descriptorTypeCount * sizeof(const VkDescriptorType)) == 0))) {
18258         onFail("a->pDescriptorTypes (Error: Unequal dyn array)");
18259     };
18260 }
18261 
checkEqual_VkMutableDescriptorTypeCreateInfoEXT(const VkMutableDescriptorTypeCreateInfoEXT * a,const VkMutableDescriptorTypeCreateInfoEXT * b,OnFailCompareFunc onFail)18262 void checkEqual_VkMutableDescriptorTypeCreateInfoEXT(const VkMutableDescriptorTypeCreateInfoEXT* a,
18263                                                      const VkMutableDescriptorTypeCreateInfoEXT* b,
18264                                                      OnFailCompareFunc onFail) {
18265     if (!((a->sType) == (b->sType))) {
18266         onFail("a->sType (Error: Value not equal)");
18267     };
18268     if (a->pNext) {
18269         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18270     }
18271     if (!((a->mutableDescriptorTypeListCount) == (b->mutableDescriptorTypeListCount))) {
18272         onFail("a->mutableDescriptorTypeListCount (Error: Value not equal)");
18273     };
18274     if ((a->pMutableDescriptorTypeLists) && (b->pMutableDescriptorTypeLists)) {
18275         if (!((a->mutableDescriptorTypeListCount) == (b->mutableDescriptorTypeListCount))) {
18276             onFail("a->pMutableDescriptorTypeLists (Error: Lengths not equal)");
18277         };
18278         if ((a->mutableDescriptorTypeListCount) == (b->mutableDescriptorTypeListCount)) {
18279             if (a) {
18280                 for (uint32_t i = 0; i < (uint32_t)a->mutableDescriptorTypeListCount; ++i) {
18281                     checkEqual_VkMutableDescriptorTypeListEXT(a->pMutableDescriptorTypeLists + i,
18282                                                               b->pMutableDescriptorTypeLists + i,
18283                                                               onFail);
18284                 }
18285             }
18286         }
18287     }
18288 }
18289 
18290 #endif
18291 #ifdef VK_EXT_vertex_input_dynamic_state
checkEqual_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT * a,const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT * b,OnFailCompareFunc onFail)18292 void checkEqual_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
18293     const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* a,
18294     const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* b, OnFailCompareFunc onFail) {
18295     if (!((a->sType) == (b->sType))) {
18296         onFail("a->sType (Error: Value not equal)");
18297     };
18298     if (a->pNext) {
18299         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18300     }
18301     if (!((a->vertexInputDynamicState) == (b->vertexInputDynamicState))) {
18302         onFail("a->vertexInputDynamicState (Error: Value not equal)");
18303     };
18304 }
18305 
checkEqual_VkVertexInputBindingDescription2EXT(const VkVertexInputBindingDescription2EXT * a,const VkVertexInputBindingDescription2EXT * b,OnFailCompareFunc onFail)18306 void checkEqual_VkVertexInputBindingDescription2EXT(const VkVertexInputBindingDescription2EXT* a,
18307                                                     const VkVertexInputBindingDescription2EXT* b,
18308                                                     OnFailCompareFunc onFail) {
18309     if (!((a->sType) == (b->sType))) {
18310         onFail("a->sType (Error: Value not equal)");
18311     };
18312     if (a->pNext) {
18313         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18314     }
18315     if (!((a->binding) == (b->binding))) {
18316         onFail("a->binding (Error: Value not equal)");
18317     };
18318     if (!((a->stride) == (b->stride))) {
18319         onFail("a->stride (Error: Value not equal)");
18320     };
18321     if (!((a->inputRate) == (b->inputRate))) {
18322         onFail("a->inputRate (Error: Value not equal)");
18323     };
18324     if (!((a->divisor) == (b->divisor))) {
18325         onFail("a->divisor (Error: Value not equal)");
18326     };
18327 }
18328 
checkEqual_VkVertexInputAttributeDescription2EXT(const VkVertexInputAttributeDescription2EXT * a,const VkVertexInputAttributeDescription2EXT * b,OnFailCompareFunc onFail)18329 void checkEqual_VkVertexInputAttributeDescription2EXT(
18330     const VkVertexInputAttributeDescription2EXT* a, const VkVertexInputAttributeDescription2EXT* b,
18331     OnFailCompareFunc onFail) {
18332     if (!((a->sType) == (b->sType))) {
18333         onFail("a->sType (Error: Value not equal)");
18334     };
18335     if (a->pNext) {
18336         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18337     }
18338     if (!((a->location) == (b->location))) {
18339         onFail("a->location (Error: Value not equal)");
18340     };
18341     if (!((a->binding) == (b->binding))) {
18342         onFail("a->binding (Error: Value not equal)");
18343     };
18344     if (!((a->format) == (b->format))) {
18345         onFail("a->format (Error: Value not equal)");
18346     };
18347     if (!((a->offset) == (b->offset))) {
18348         onFail("a->offset (Error: Value not equal)");
18349     };
18350 }
18351 
18352 #endif
18353 #ifdef VK_EXT_physical_device_drm
checkEqual_VkPhysicalDeviceDrmPropertiesEXT(const VkPhysicalDeviceDrmPropertiesEXT * a,const VkPhysicalDeviceDrmPropertiesEXT * b,OnFailCompareFunc onFail)18354 void checkEqual_VkPhysicalDeviceDrmPropertiesEXT(const VkPhysicalDeviceDrmPropertiesEXT* a,
18355                                                  const VkPhysicalDeviceDrmPropertiesEXT* b,
18356                                                  OnFailCompareFunc onFail) {
18357     if (!((a->sType) == (b->sType))) {
18358         onFail("a->sType (Error: Value not equal)");
18359     };
18360     if (a->pNext) {
18361         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18362     }
18363     if (!((a->hasPrimary) == (b->hasPrimary))) {
18364         onFail("a->hasPrimary (Error: Value not equal)");
18365     };
18366     if (!((a->hasRender) == (b->hasRender))) {
18367         onFail("a->hasRender (Error: Value not equal)");
18368     };
18369     if (!((a->primaryMajor) == (b->primaryMajor))) {
18370         onFail("a->primaryMajor (Error: Value not equal)");
18371     };
18372     if (!((a->primaryMinor) == (b->primaryMinor))) {
18373         onFail("a->primaryMinor (Error: Value not equal)");
18374     };
18375     if (!((a->renderMajor) == (b->renderMajor))) {
18376         onFail("a->renderMajor (Error: Value not equal)");
18377     };
18378     if (!((a->renderMinor) == (b->renderMinor))) {
18379         onFail("a->renderMinor (Error: Value not equal)");
18380     };
18381 }
18382 
18383 #endif
18384 #ifdef VK_EXT_device_address_binding_report
checkEqual_VkPhysicalDeviceAddressBindingReportFeaturesEXT(const VkPhysicalDeviceAddressBindingReportFeaturesEXT * a,const VkPhysicalDeviceAddressBindingReportFeaturesEXT * b,OnFailCompareFunc onFail)18385 void checkEqual_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
18386     const VkPhysicalDeviceAddressBindingReportFeaturesEXT* a,
18387     const VkPhysicalDeviceAddressBindingReportFeaturesEXT* b, OnFailCompareFunc onFail) {
18388     if (!((a->sType) == (b->sType))) {
18389         onFail("a->sType (Error: Value not equal)");
18390     };
18391     if (a->pNext) {
18392         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18393     }
18394     if (!((a->reportAddressBinding) == (b->reportAddressBinding))) {
18395         onFail("a->reportAddressBinding (Error: Value not equal)");
18396     };
18397 }
18398 
checkEqual_VkDeviceAddressBindingCallbackDataEXT(const VkDeviceAddressBindingCallbackDataEXT * a,const VkDeviceAddressBindingCallbackDataEXT * b,OnFailCompareFunc onFail)18399 void checkEqual_VkDeviceAddressBindingCallbackDataEXT(
18400     const VkDeviceAddressBindingCallbackDataEXT* a, const VkDeviceAddressBindingCallbackDataEXT* b,
18401     OnFailCompareFunc onFail) {
18402     if (!((a->sType) == (b->sType))) {
18403         onFail("a->sType (Error: Value not equal)");
18404     };
18405     if (a->pNext) {
18406         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18407     }
18408     if (!((a->flags) == (b->flags))) {
18409         onFail("a->flags (Error: Value not equal)");
18410     };
18411     if (!((a->baseAddress) == (b->baseAddress))) {
18412         onFail("a->baseAddress (Error: Value not equal)");
18413     };
18414     if (!((a->size) == (b->size))) {
18415         onFail("a->size (Error: Value not equal)");
18416     };
18417     if (!((a->bindingType) == (b->bindingType))) {
18418         onFail("a->bindingType (Error: Value not equal)");
18419     };
18420 }
18421 
18422 #endif
18423 #ifdef VK_EXT_depth_clip_control
checkEqual_VkPhysicalDeviceDepthClipControlFeaturesEXT(const VkPhysicalDeviceDepthClipControlFeaturesEXT * a,const VkPhysicalDeviceDepthClipControlFeaturesEXT * b,OnFailCompareFunc onFail)18424 void checkEqual_VkPhysicalDeviceDepthClipControlFeaturesEXT(
18425     const VkPhysicalDeviceDepthClipControlFeaturesEXT* a,
18426     const VkPhysicalDeviceDepthClipControlFeaturesEXT* b, OnFailCompareFunc onFail) {
18427     if (!((a->sType) == (b->sType))) {
18428         onFail("a->sType (Error: Value not equal)");
18429     };
18430     if (a->pNext) {
18431         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18432     }
18433     if (!((a->depthClipControl) == (b->depthClipControl))) {
18434         onFail("a->depthClipControl (Error: Value not equal)");
18435     };
18436 }
18437 
checkEqual_VkPipelineViewportDepthClipControlCreateInfoEXT(const VkPipelineViewportDepthClipControlCreateInfoEXT * a,const VkPipelineViewportDepthClipControlCreateInfoEXT * b,OnFailCompareFunc onFail)18438 void checkEqual_VkPipelineViewportDepthClipControlCreateInfoEXT(
18439     const VkPipelineViewportDepthClipControlCreateInfoEXT* a,
18440     const VkPipelineViewportDepthClipControlCreateInfoEXT* b, OnFailCompareFunc onFail) {
18441     if (!((a->sType) == (b->sType))) {
18442         onFail("a->sType (Error: Value not equal)");
18443     };
18444     if (a->pNext) {
18445         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18446     }
18447     if (!((a->negativeOneToOne) == (b->negativeOneToOne))) {
18448         onFail("a->negativeOneToOne (Error: Value not equal)");
18449     };
18450 }
18451 
18452 #endif
18453 #ifdef VK_EXT_primitive_topology_list_restart
checkEqual_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * a,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * b,OnFailCompareFunc onFail)18454 void checkEqual_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
18455     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* a,
18456     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* b, OnFailCompareFunc onFail) {
18457     if (!((a->sType) == (b->sType))) {
18458         onFail("a->sType (Error: Value not equal)");
18459     };
18460     if (a->pNext) {
18461         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18462     }
18463     if (!((a->primitiveTopologyListRestart) == (b->primitiveTopologyListRestart))) {
18464         onFail("a->primitiveTopologyListRestart (Error: Value not equal)");
18465     };
18466     if (!((a->primitiveTopologyPatchListRestart) == (b->primitiveTopologyPatchListRestart))) {
18467         onFail("a->primitiveTopologyPatchListRestart (Error: Value not equal)");
18468     };
18469 }
18470 
18471 #endif
18472 #ifdef VK_FUCHSIA_external_memory
checkEqual_VkImportMemoryZirconHandleInfoFUCHSIA(const VkImportMemoryZirconHandleInfoFUCHSIA * a,const VkImportMemoryZirconHandleInfoFUCHSIA * b,OnFailCompareFunc onFail)18473 void checkEqual_VkImportMemoryZirconHandleInfoFUCHSIA(
18474     const VkImportMemoryZirconHandleInfoFUCHSIA* a, const VkImportMemoryZirconHandleInfoFUCHSIA* b,
18475     OnFailCompareFunc onFail) {
18476     if (!((a->sType) == (b->sType))) {
18477         onFail("a->sType (Error: Value not equal)");
18478     };
18479     if (a->pNext) {
18480         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18481     }
18482     if (!((a->handleType) == (b->handleType))) {
18483         onFail("a->handleType (Error: Value not equal)");
18484     };
18485     if (!((a->handle) == (b->handle))) {
18486         onFail("a->handle (Error: Value not equal)");
18487     };
18488 }
18489 
checkEqual_VkMemoryZirconHandlePropertiesFUCHSIA(const VkMemoryZirconHandlePropertiesFUCHSIA * a,const VkMemoryZirconHandlePropertiesFUCHSIA * b,OnFailCompareFunc onFail)18490 void checkEqual_VkMemoryZirconHandlePropertiesFUCHSIA(
18491     const VkMemoryZirconHandlePropertiesFUCHSIA* a, const VkMemoryZirconHandlePropertiesFUCHSIA* b,
18492     OnFailCompareFunc onFail) {
18493     if (!((a->sType) == (b->sType))) {
18494         onFail("a->sType (Error: Value not equal)");
18495     };
18496     if (a->pNext) {
18497         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18498     }
18499     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
18500         onFail("a->memoryTypeBits (Error: Value not equal)");
18501     };
18502 }
18503 
checkEqual_VkMemoryGetZirconHandleInfoFUCHSIA(const VkMemoryGetZirconHandleInfoFUCHSIA * a,const VkMemoryGetZirconHandleInfoFUCHSIA * b,OnFailCompareFunc onFail)18504 void checkEqual_VkMemoryGetZirconHandleInfoFUCHSIA(const VkMemoryGetZirconHandleInfoFUCHSIA* a,
18505                                                    const VkMemoryGetZirconHandleInfoFUCHSIA* b,
18506                                                    OnFailCompareFunc onFail) {
18507     if (!((a->sType) == (b->sType))) {
18508         onFail("a->sType (Error: Value not equal)");
18509     };
18510     if (a->pNext) {
18511         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18512     }
18513     if (!((a->memory) == (b->memory))) {
18514         onFail("a->memory (Error: Value not equal)");
18515     };
18516     if (!((a->handleType) == (b->handleType))) {
18517         onFail("a->handleType (Error: Value not equal)");
18518     };
18519 }
18520 
18521 #endif
18522 #ifdef VK_FUCHSIA_external_semaphore
checkEqual_VkImportSemaphoreZirconHandleInfoFUCHSIA(const VkImportSemaphoreZirconHandleInfoFUCHSIA * a,const VkImportSemaphoreZirconHandleInfoFUCHSIA * b,OnFailCompareFunc onFail)18523 void checkEqual_VkImportSemaphoreZirconHandleInfoFUCHSIA(
18524     const VkImportSemaphoreZirconHandleInfoFUCHSIA* a,
18525     const VkImportSemaphoreZirconHandleInfoFUCHSIA* b, OnFailCompareFunc onFail) {
18526     if (!((a->sType) == (b->sType))) {
18527         onFail("a->sType (Error: Value not equal)");
18528     };
18529     if (a->pNext) {
18530         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18531     }
18532     if (!((a->semaphore) == (b->semaphore))) {
18533         onFail("a->semaphore (Error: Value not equal)");
18534     };
18535     if (!((a->flags) == (b->flags))) {
18536         onFail("a->flags (Error: Value not equal)");
18537     };
18538     if (!((a->handleType) == (b->handleType))) {
18539         onFail("a->handleType (Error: Value not equal)");
18540     };
18541     if (!((a->zirconHandle) == (b->zirconHandle))) {
18542         onFail("a->zirconHandle (Error: Value not equal)");
18543     };
18544 }
18545 
checkEqual_VkSemaphoreGetZirconHandleInfoFUCHSIA(const VkSemaphoreGetZirconHandleInfoFUCHSIA * a,const VkSemaphoreGetZirconHandleInfoFUCHSIA * b,OnFailCompareFunc onFail)18546 void checkEqual_VkSemaphoreGetZirconHandleInfoFUCHSIA(
18547     const VkSemaphoreGetZirconHandleInfoFUCHSIA* a, const VkSemaphoreGetZirconHandleInfoFUCHSIA* b,
18548     OnFailCompareFunc onFail) {
18549     if (!((a->sType) == (b->sType))) {
18550         onFail("a->sType (Error: Value not equal)");
18551     };
18552     if (a->pNext) {
18553         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18554     }
18555     if (!((a->semaphore) == (b->semaphore))) {
18556         onFail("a->semaphore (Error: Value not equal)");
18557     };
18558     if (!((a->handleType) == (b->handleType))) {
18559         onFail("a->handleType (Error: Value not equal)");
18560     };
18561 }
18562 
18563 #endif
18564 #ifdef VK_FUCHSIA_buffer_collection
checkEqual_VkBufferCollectionCreateInfoFUCHSIA(const VkBufferCollectionCreateInfoFUCHSIA * a,const VkBufferCollectionCreateInfoFUCHSIA * b,OnFailCompareFunc onFail)18565 void checkEqual_VkBufferCollectionCreateInfoFUCHSIA(const VkBufferCollectionCreateInfoFUCHSIA* a,
18566                                                     const VkBufferCollectionCreateInfoFUCHSIA* b,
18567                                                     OnFailCompareFunc onFail) {
18568     if (!((a->sType) == (b->sType))) {
18569         onFail("a->sType (Error: Value not equal)");
18570     };
18571     if (a->pNext) {
18572         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18573     }
18574     if (!((a->collectionToken) == (b->collectionToken))) {
18575         onFail("a->collectionToken (Error: Value not equal)");
18576     };
18577 }
18578 
checkEqual_VkImportMemoryBufferCollectionFUCHSIA(const VkImportMemoryBufferCollectionFUCHSIA * a,const VkImportMemoryBufferCollectionFUCHSIA * b,OnFailCompareFunc onFail)18579 void checkEqual_VkImportMemoryBufferCollectionFUCHSIA(
18580     const VkImportMemoryBufferCollectionFUCHSIA* a, const VkImportMemoryBufferCollectionFUCHSIA* b,
18581     OnFailCompareFunc onFail) {
18582     if (!((a->sType) == (b->sType))) {
18583         onFail("a->sType (Error: Value not equal)");
18584     };
18585     if (a->pNext) {
18586         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18587     }
18588     if (!((a->collection) == (b->collection))) {
18589         onFail("a->collection (Error: Value not equal)");
18590     };
18591     if (!((a->index) == (b->index))) {
18592         onFail("a->index (Error: Value not equal)");
18593     };
18594 }
18595 
checkEqual_VkBufferCollectionImageCreateInfoFUCHSIA(const VkBufferCollectionImageCreateInfoFUCHSIA * a,const VkBufferCollectionImageCreateInfoFUCHSIA * b,OnFailCompareFunc onFail)18596 void checkEqual_VkBufferCollectionImageCreateInfoFUCHSIA(
18597     const VkBufferCollectionImageCreateInfoFUCHSIA* a,
18598     const VkBufferCollectionImageCreateInfoFUCHSIA* b, OnFailCompareFunc onFail) {
18599     if (!((a->sType) == (b->sType))) {
18600         onFail("a->sType (Error: Value not equal)");
18601     };
18602     if (a->pNext) {
18603         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18604     }
18605     if (!((a->collection) == (b->collection))) {
18606         onFail("a->collection (Error: Value not equal)");
18607     };
18608     if (!((a->index) == (b->index))) {
18609         onFail("a->index (Error: Value not equal)");
18610     };
18611 }
18612 
checkEqual_VkBufferCollectionConstraintsInfoFUCHSIA(const VkBufferCollectionConstraintsInfoFUCHSIA * a,const VkBufferCollectionConstraintsInfoFUCHSIA * b,OnFailCompareFunc onFail)18613 void checkEqual_VkBufferCollectionConstraintsInfoFUCHSIA(
18614     const VkBufferCollectionConstraintsInfoFUCHSIA* a,
18615     const VkBufferCollectionConstraintsInfoFUCHSIA* b, OnFailCompareFunc onFail) {
18616     if (!((a->sType) == (b->sType))) {
18617         onFail("a->sType (Error: Value not equal)");
18618     };
18619     if (a->pNext) {
18620         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18621     }
18622     if (!((a->minBufferCount) == (b->minBufferCount))) {
18623         onFail("a->minBufferCount (Error: Value not equal)");
18624     };
18625     if (!((a->maxBufferCount) == (b->maxBufferCount))) {
18626         onFail("a->maxBufferCount (Error: Value not equal)");
18627     };
18628     if (!((a->minBufferCountForCamping) == (b->minBufferCountForCamping))) {
18629         onFail("a->minBufferCountForCamping (Error: Value not equal)");
18630     };
18631     if (!((a->minBufferCountForDedicatedSlack) == (b->minBufferCountForDedicatedSlack))) {
18632         onFail("a->minBufferCountForDedicatedSlack (Error: Value not equal)");
18633     };
18634     if (!((a->minBufferCountForSharedSlack) == (b->minBufferCountForSharedSlack))) {
18635         onFail("a->minBufferCountForSharedSlack (Error: Value not equal)");
18636     };
18637 }
18638 
checkEqual_VkBufferConstraintsInfoFUCHSIA(const VkBufferConstraintsInfoFUCHSIA * a,const VkBufferConstraintsInfoFUCHSIA * b,OnFailCompareFunc onFail)18639 void checkEqual_VkBufferConstraintsInfoFUCHSIA(const VkBufferConstraintsInfoFUCHSIA* a,
18640                                                const VkBufferConstraintsInfoFUCHSIA* b,
18641                                                OnFailCompareFunc onFail) {
18642     if (!((a->sType) == (b->sType))) {
18643         onFail("a->sType (Error: Value not equal)");
18644     };
18645     if (a->pNext) {
18646         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18647     }
18648     checkEqual_VkBufferCreateInfo(&a->createInfo, &b->createInfo, onFail);
18649     if (!((a->requiredFormatFeatures) == (b->requiredFormatFeatures))) {
18650         onFail("a->requiredFormatFeatures (Error: Value not equal)");
18651     };
18652     checkEqual_VkBufferCollectionConstraintsInfoFUCHSIA(&a->bufferCollectionConstraints,
18653                                                         &b->bufferCollectionConstraints, onFail);
18654 }
18655 
checkEqual_VkBufferCollectionBufferCreateInfoFUCHSIA(const VkBufferCollectionBufferCreateInfoFUCHSIA * a,const VkBufferCollectionBufferCreateInfoFUCHSIA * b,OnFailCompareFunc onFail)18656 void checkEqual_VkBufferCollectionBufferCreateInfoFUCHSIA(
18657     const VkBufferCollectionBufferCreateInfoFUCHSIA* a,
18658     const VkBufferCollectionBufferCreateInfoFUCHSIA* b, OnFailCompareFunc onFail) {
18659     if (!((a->sType) == (b->sType))) {
18660         onFail("a->sType (Error: Value not equal)");
18661     };
18662     if (a->pNext) {
18663         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18664     }
18665     if (!((a->collection) == (b->collection))) {
18666         onFail("a->collection (Error: Value not equal)");
18667     };
18668     if (!((a->index) == (b->index))) {
18669         onFail("a->index (Error: Value not equal)");
18670     };
18671 }
18672 
checkEqual_VkSysmemColorSpaceFUCHSIA(const VkSysmemColorSpaceFUCHSIA * a,const VkSysmemColorSpaceFUCHSIA * b,OnFailCompareFunc onFail)18673 void checkEqual_VkSysmemColorSpaceFUCHSIA(const VkSysmemColorSpaceFUCHSIA* a,
18674                                           const VkSysmemColorSpaceFUCHSIA* b,
18675                                           OnFailCompareFunc onFail) {
18676     if (!((a->sType) == (b->sType))) {
18677         onFail("a->sType (Error: Value not equal)");
18678     };
18679     if (a->pNext) {
18680         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18681     }
18682     if (!((a->colorSpace) == (b->colorSpace))) {
18683         onFail("a->colorSpace (Error: Value not equal)");
18684     };
18685 }
18686 
checkEqual_VkBufferCollectionPropertiesFUCHSIA(const VkBufferCollectionPropertiesFUCHSIA * a,const VkBufferCollectionPropertiesFUCHSIA * b,OnFailCompareFunc onFail)18687 void checkEqual_VkBufferCollectionPropertiesFUCHSIA(const VkBufferCollectionPropertiesFUCHSIA* a,
18688                                                     const VkBufferCollectionPropertiesFUCHSIA* b,
18689                                                     OnFailCompareFunc onFail) {
18690     if (!((a->sType) == (b->sType))) {
18691         onFail("a->sType (Error: Value not equal)");
18692     };
18693     if (a->pNext) {
18694         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18695     }
18696     if (!((a->memoryTypeBits) == (b->memoryTypeBits))) {
18697         onFail("a->memoryTypeBits (Error: Value not equal)");
18698     };
18699     if (!((a->bufferCount) == (b->bufferCount))) {
18700         onFail("a->bufferCount (Error: Value not equal)");
18701     };
18702     if (!((a->createInfoIndex) == (b->createInfoIndex))) {
18703         onFail("a->createInfoIndex (Error: Value not equal)");
18704     };
18705     if (!((a->sysmemPixelFormat) == (b->sysmemPixelFormat))) {
18706         onFail("a->sysmemPixelFormat (Error: Value not equal)");
18707     };
18708     if (!((a->formatFeatures) == (b->formatFeatures))) {
18709         onFail("a->formatFeatures (Error: Value not equal)");
18710     };
18711     checkEqual_VkSysmemColorSpaceFUCHSIA(&a->sysmemColorSpaceIndex, &b->sysmemColorSpaceIndex,
18712                                          onFail);
18713     checkEqual_VkComponentMapping(&a->samplerYcbcrConversionComponents,
18714                                   &b->samplerYcbcrConversionComponents, onFail);
18715     if (!((a->suggestedYcbcrModel) == (b->suggestedYcbcrModel))) {
18716         onFail("a->suggestedYcbcrModel (Error: Value not equal)");
18717     };
18718     if (!((a->suggestedYcbcrRange) == (b->suggestedYcbcrRange))) {
18719         onFail("a->suggestedYcbcrRange (Error: Value not equal)");
18720     };
18721     if (!((a->suggestedXChromaOffset) == (b->suggestedXChromaOffset))) {
18722         onFail("a->suggestedXChromaOffset (Error: Value not equal)");
18723     };
18724     if (!((a->suggestedYChromaOffset) == (b->suggestedYChromaOffset))) {
18725         onFail("a->suggestedYChromaOffset (Error: Value not equal)");
18726     };
18727 }
18728 
checkEqual_VkImageFormatConstraintsInfoFUCHSIA(const VkImageFormatConstraintsInfoFUCHSIA * a,const VkImageFormatConstraintsInfoFUCHSIA * b,OnFailCompareFunc onFail)18729 void checkEqual_VkImageFormatConstraintsInfoFUCHSIA(const VkImageFormatConstraintsInfoFUCHSIA* a,
18730                                                     const VkImageFormatConstraintsInfoFUCHSIA* b,
18731                                                     OnFailCompareFunc onFail) {
18732     if (!((a->sType) == (b->sType))) {
18733         onFail("a->sType (Error: Value not equal)");
18734     };
18735     if (a->pNext) {
18736         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18737     }
18738     checkEqual_VkImageCreateInfo(&a->imageCreateInfo, &b->imageCreateInfo, onFail);
18739     if (!((a->requiredFormatFeatures) == (b->requiredFormatFeatures))) {
18740         onFail("a->requiredFormatFeatures (Error: Value not equal)");
18741     };
18742     if (!((a->flags) == (b->flags))) {
18743         onFail("a->flags (Error: Value not equal)");
18744     };
18745     if (!((a->sysmemPixelFormat) == (b->sysmemPixelFormat))) {
18746         onFail("a->sysmemPixelFormat (Error: Value not equal)");
18747     };
18748     if (!((a->colorSpaceCount) == (b->colorSpaceCount))) {
18749         onFail("a->colorSpaceCount (Error: Value not equal)");
18750     };
18751     if ((a->pColorSpaces) && (b->pColorSpaces)) {
18752         if (!((a->colorSpaceCount) == (b->colorSpaceCount))) {
18753             onFail("a->pColorSpaces (Error: Lengths not equal)");
18754         };
18755         if ((a->colorSpaceCount) == (b->colorSpaceCount)) {
18756             if (a) {
18757                 for (uint32_t i = 0; i < (uint32_t)a->colorSpaceCount; ++i) {
18758                     checkEqual_VkSysmemColorSpaceFUCHSIA(a->pColorSpaces + i, b->pColorSpaces + i,
18759                                                          onFail);
18760                 }
18761             }
18762         }
18763     }
18764 }
18765 
checkEqual_VkImageConstraintsInfoFUCHSIA(const VkImageConstraintsInfoFUCHSIA * a,const VkImageConstraintsInfoFUCHSIA * b,OnFailCompareFunc onFail)18766 void checkEqual_VkImageConstraintsInfoFUCHSIA(const VkImageConstraintsInfoFUCHSIA* a,
18767                                               const VkImageConstraintsInfoFUCHSIA* b,
18768                                               OnFailCompareFunc onFail) {
18769     if (!((a->sType) == (b->sType))) {
18770         onFail("a->sType (Error: Value not equal)");
18771     };
18772     if (a->pNext) {
18773         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18774     }
18775     if (!((a->formatConstraintsCount) == (b->formatConstraintsCount))) {
18776         onFail("a->formatConstraintsCount (Error: Value not equal)");
18777     };
18778     if ((a->pFormatConstraints) && (b->pFormatConstraints)) {
18779         if (!((a->formatConstraintsCount) == (b->formatConstraintsCount))) {
18780             onFail("a->pFormatConstraints (Error: Lengths not equal)");
18781         };
18782         if ((a->formatConstraintsCount) == (b->formatConstraintsCount)) {
18783             if (a) {
18784                 for (uint32_t i = 0; i < (uint32_t)a->formatConstraintsCount; ++i) {
18785                     checkEqual_VkImageFormatConstraintsInfoFUCHSIA(
18786                         a->pFormatConstraints + i, b->pFormatConstraints + i, onFail);
18787                 }
18788             }
18789         }
18790     }
18791     checkEqual_VkBufferCollectionConstraintsInfoFUCHSIA(&a->bufferCollectionConstraints,
18792                                                         &b->bufferCollectionConstraints, onFail);
18793     if (!((a->flags) == (b->flags))) {
18794         onFail("a->flags (Error: Value not equal)");
18795     };
18796 }
18797 
18798 #endif
18799 #ifdef VK_HUAWEI_subpass_shading
checkEqual_VkSubpassShadingPipelineCreateInfoHUAWEI(const VkSubpassShadingPipelineCreateInfoHUAWEI * a,const VkSubpassShadingPipelineCreateInfoHUAWEI * b,OnFailCompareFunc onFail)18800 void checkEqual_VkSubpassShadingPipelineCreateInfoHUAWEI(
18801     const VkSubpassShadingPipelineCreateInfoHUAWEI* a,
18802     const VkSubpassShadingPipelineCreateInfoHUAWEI* b, OnFailCompareFunc onFail) {
18803     if (!((a->sType) == (b->sType))) {
18804         onFail("a->sType (Error: Value not equal)");
18805     };
18806     if (a->pNext) {
18807         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18808     }
18809     if (!((a->renderPass) == (b->renderPass))) {
18810         onFail("a->renderPass (Error: Value not equal)");
18811     };
18812     if (!((a->subpass) == (b->subpass))) {
18813         onFail("a->subpass (Error: Value not equal)");
18814     };
18815 }
18816 
checkEqual_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI * a,const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI * b,OnFailCompareFunc onFail)18817 void checkEqual_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
18818     const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* a,
18819     const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* b, OnFailCompareFunc onFail) {
18820     if (!((a->sType) == (b->sType))) {
18821         onFail("a->sType (Error: Value not equal)");
18822     };
18823     if (a->pNext) {
18824         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18825     }
18826     if (!((a->subpassShading) == (b->subpassShading))) {
18827         onFail("a->subpassShading (Error: Value not equal)");
18828     };
18829 }
18830 
checkEqual_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI * a,const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI * b,OnFailCompareFunc onFail)18831 void checkEqual_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
18832     const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* a,
18833     const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* b, OnFailCompareFunc onFail) {
18834     if (!((a->sType) == (b->sType))) {
18835         onFail("a->sType (Error: Value not equal)");
18836     };
18837     if (a->pNext) {
18838         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18839     }
18840     if (!((a->maxSubpassShadingWorkgroupSizeAspectRatio) ==
18841           (b->maxSubpassShadingWorkgroupSizeAspectRatio))) {
18842         onFail("a->maxSubpassShadingWorkgroupSizeAspectRatio (Error: Value not equal)");
18843     };
18844 }
18845 
18846 #endif
18847 #ifdef VK_HUAWEI_invocation_mask
checkEqual_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI * a,const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI * b,OnFailCompareFunc onFail)18848 void checkEqual_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
18849     const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* a,
18850     const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* b, OnFailCompareFunc onFail) {
18851     if (!((a->sType) == (b->sType))) {
18852         onFail("a->sType (Error: Value not equal)");
18853     };
18854     if (a->pNext) {
18855         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18856     }
18857     if (!((a->invocationMask) == (b->invocationMask))) {
18858         onFail("a->invocationMask (Error: Value not equal)");
18859     };
18860 }
18861 
18862 #endif
18863 #ifdef VK_NV_external_memory_rdma
checkEqual_VkMemoryGetRemoteAddressInfoNV(const VkMemoryGetRemoteAddressInfoNV * a,const VkMemoryGetRemoteAddressInfoNV * b,OnFailCompareFunc onFail)18864 void checkEqual_VkMemoryGetRemoteAddressInfoNV(const VkMemoryGetRemoteAddressInfoNV* a,
18865                                                const VkMemoryGetRemoteAddressInfoNV* b,
18866                                                OnFailCompareFunc onFail) {
18867     if (!((a->sType) == (b->sType))) {
18868         onFail("a->sType (Error: Value not equal)");
18869     };
18870     if (a->pNext) {
18871         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18872     }
18873     if (!((a->memory) == (b->memory))) {
18874         onFail("a->memory (Error: Value not equal)");
18875     };
18876     if (!((a->handleType) == (b->handleType))) {
18877         onFail("a->handleType (Error: Value not equal)");
18878     };
18879 }
18880 
checkEqual_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV * a,const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV * b,OnFailCompareFunc onFail)18881 void checkEqual_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
18882     const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* a,
18883     const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* b, OnFailCompareFunc onFail) {
18884     if (!((a->sType) == (b->sType))) {
18885         onFail("a->sType (Error: Value not equal)");
18886     };
18887     if (a->pNext) {
18888         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18889     }
18890     if (!((a->externalMemoryRDMA) == (b->externalMemoryRDMA))) {
18891         onFail("a->externalMemoryRDMA (Error: Value not equal)");
18892     };
18893 }
18894 
18895 #endif
18896 #ifdef VK_EXT_pipeline_properties
checkEqual_VkPipelinePropertiesIdentifierEXT(const VkPipelinePropertiesIdentifierEXT * a,const VkPipelinePropertiesIdentifierEXT * b,OnFailCompareFunc onFail)18897 void checkEqual_VkPipelinePropertiesIdentifierEXT(const VkPipelinePropertiesIdentifierEXT* a,
18898                                                   const VkPipelinePropertiesIdentifierEXT* b,
18899                                                   OnFailCompareFunc onFail) {
18900     if (!((a->sType) == (b->sType))) {
18901         onFail("a->sType (Error: Value not equal)");
18902     };
18903     if (a->pNext) {
18904         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18905     }
18906     if (!((memcmp(a->pipelineIdentifier, b->pipelineIdentifier, VK_UUID_SIZE * sizeof(uint8_t)) ==
18907            0))) {
18908         onFail("a->pipelineIdentifier (Error: Unequal static array)");
18909     };
18910 }
18911 
checkEqual_VkPhysicalDevicePipelinePropertiesFeaturesEXT(const VkPhysicalDevicePipelinePropertiesFeaturesEXT * a,const VkPhysicalDevicePipelinePropertiesFeaturesEXT * b,OnFailCompareFunc onFail)18912 void checkEqual_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
18913     const VkPhysicalDevicePipelinePropertiesFeaturesEXT* a,
18914     const VkPhysicalDevicePipelinePropertiesFeaturesEXT* b, OnFailCompareFunc onFail) {
18915     if (!((a->sType) == (b->sType))) {
18916         onFail("a->sType (Error: Value not equal)");
18917     };
18918     if (a->pNext) {
18919         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18920     }
18921     if (!((a->pipelinePropertiesIdentifier) == (b->pipelinePropertiesIdentifier))) {
18922         onFail("a->pipelinePropertiesIdentifier (Error: Value not equal)");
18923     };
18924 }
18925 
18926 #endif
18927 #ifdef VK_EXT_multisampled_render_to_single_sampled
checkEqual_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT * a,const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT * b,OnFailCompareFunc onFail)18928 void checkEqual_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
18929     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* a,
18930     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* b,
18931     OnFailCompareFunc onFail) {
18932     if (!((a->sType) == (b->sType))) {
18933         onFail("a->sType (Error: Value not equal)");
18934     };
18935     if (a->pNext) {
18936         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18937     }
18938     if (!((a->multisampledRenderToSingleSampled) == (b->multisampledRenderToSingleSampled))) {
18939         onFail("a->multisampledRenderToSingleSampled (Error: Value not equal)");
18940     };
18941 }
18942 
checkEqual_VkSubpassResolvePerformanceQueryEXT(const VkSubpassResolvePerformanceQueryEXT * a,const VkSubpassResolvePerformanceQueryEXT * b,OnFailCompareFunc onFail)18943 void checkEqual_VkSubpassResolvePerformanceQueryEXT(const VkSubpassResolvePerformanceQueryEXT* a,
18944                                                     const VkSubpassResolvePerformanceQueryEXT* b,
18945                                                     OnFailCompareFunc onFail) {
18946     if (!((a->sType) == (b->sType))) {
18947         onFail("a->sType (Error: Value not equal)");
18948     };
18949     if (a->pNext) {
18950         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18951     }
18952     if (!((a->optimal) == (b->optimal))) {
18953         onFail("a->optimal (Error: Value not equal)");
18954     };
18955 }
18956 
checkEqual_VkMultisampledRenderToSingleSampledInfoEXT(const VkMultisampledRenderToSingleSampledInfoEXT * a,const VkMultisampledRenderToSingleSampledInfoEXT * b,OnFailCompareFunc onFail)18957 void checkEqual_VkMultisampledRenderToSingleSampledInfoEXT(
18958     const VkMultisampledRenderToSingleSampledInfoEXT* a,
18959     const VkMultisampledRenderToSingleSampledInfoEXT* b, OnFailCompareFunc onFail) {
18960     if (!((a->sType) == (b->sType))) {
18961         onFail("a->sType (Error: Value not equal)");
18962     };
18963     if (a->pNext) {
18964         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18965     }
18966     if (!((a->multisampledRenderToSingleSampledEnable) ==
18967           (b->multisampledRenderToSingleSampledEnable))) {
18968         onFail("a->multisampledRenderToSingleSampledEnable (Error: Value not equal)");
18969     };
18970     if (!((a->rasterizationSamples) == (b->rasterizationSamples))) {
18971         onFail("a->rasterizationSamples (Error: Value not equal)");
18972     };
18973 }
18974 
18975 #endif
18976 #ifdef VK_EXT_extended_dynamic_state2
checkEqual_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * a,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * b,OnFailCompareFunc onFail)18977 void checkEqual_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
18978     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* a,
18979     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* b, OnFailCompareFunc onFail) {
18980     if (!((a->sType) == (b->sType))) {
18981         onFail("a->sType (Error: Value not equal)");
18982     };
18983     if (a->pNext) {
18984         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
18985     }
18986     if (!((a->extendedDynamicState2) == (b->extendedDynamicState2))) {
18987         onFail("a->extendedDynamicState2 (Error: Value not equal)");
18988     };
18989     if (!((a->extendedDynamicState2LogicOp) == (b->extendedDynamicState2LogicOp))) {
18990         onFail("a->extendedDynamicState2LogicOp (Error: Value not equal)");
18991     };
18992     if (!((a->extendedDynamicState2PatchControlPoints) ==
18993           (b->extendedDynamicState2PatchControlPoints))) {
18994         onFail("a->extendedDynamicState2PatchControlPoints (Error: Value not equal)");
18995     };
18996 }
18997 
18998 #endif
18999 #ifdef VK_QNX_screen_surface
checkEqual_VkScreenSurfaceCreateInfoQNX(const VkScreenSurfaceCreateInfoQNX * a,const VkScreenSurfaceCreateInfoQNX * b,OnFailCompareFunc onFail)19000 void checkEqual_VkScreenSurfaceCreateInfoQNX(const VkScreenSurfaceCreateInfoQNX* a,
19001                                              const VkScreenSurfaceCreateInfoQNX* b,
19002                                              OnFailCompareFunc onFail) {
19003     if (!((a->sType) == (b->sType))) {
19004         onFail("a->sType (Error: Value not equal)");
19005     };
19006     if (a->pNext) {
19007         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19008     }
19009     if (!((a->flags) == (b->flags))) {
19010         onFail("a->flags (Error: Value not equal)");
19011     };
19012     if (!((!(a->context) && !(b->context)) || ((a->context) && (b->context)))) {
19013         onFail("a->context (Error: Mismatch in optional field)");
19014     };
19015     if (a->context && b->context) {
19016         if (!((memcmp(a->context, b->context, sizeof(_screen_context)) == 0))) {
19017             onFail("a->context (Error: Unequal dyn array)");
19018         };
19019     }
19020     if (!((!(a->window) && !(b->window)) || ((a->window) && (b->window)))) {
19021         onFail("a->window (Error: Mismatch in optional field)");
19022     };
19023     if (a->window && b->window) {
19024         if (!((memcmp(a->window, b->window, sizeof(_screen_window)) == 0))) {
19025             onFail("a->window (Error: Unequal dyn array)");
19026         };
19027     }
19028 }
19029 
19030 #endif
19031 #ifdef VK_EXT_color_write_enable
checkEqual_VkPhysicalDeviceColorWriteEnableFeaturesEXT(const VkPhysicalDeviceColorWriteEnableFeaturesEXT * a,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * b,OnFailCompareFunc onFail)19032 void checkEqual_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
19033     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* a,
19034     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* b, OnFailCompareFunc onFail) {
19035     if (!((a->sType) == (b->sType))) {
19036         onFail("a->sType (Error: Value not equal)");
19037     };
19038     if (a->pNext) {
19039         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19040     }
19041     if (!((a->colorWriteEnable) == (b->colorWriteEnable))) {
19042         onFail("a->colorWriteEnable (Error: Value not equal)");
19043     };
19044 }
19045 
checkEqual_VkPipelineColorWriteCreateInfoEXT(const VkPipelineColorWriteCreateInfoEXT * a,const VkPipelineColorWriteCreateInfoEXT * b,OnFailCompareFunc onFail)19046 void checkEqual_VkPipelineColorWriteCreateInfoEXT(const VkPipelineColorWriteCreateInfoEXT* a,
19047                                                   const VkPipelineColorWriteCreateInfoEXT* b,
19048                                                   OnFailCompareFunc onFail) {
19049     if (!((a->sType) == (b->sType))) {
19050         onFail("a->sType (Error: Value not equal)");
19051     };
19052     if (a->pNext) {
19053         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19054     }
19055     if (!((a->attachmentCount) == (b->attachmentCount))) {
19056         onFail("a->attachmentCount (Error: Value not equal)");
19057     };
19058     if (!((a->attachmentCount) == (b->attachmentCount))) {
19059         onFail("a->pColorWriteEnables (Error: Lengths not equal)");
19060     };
19061     if (!((memcmp(a->pColorWriteEnables, b->pColorWriteEnables,
19062                   a->attachmentCount * sizeof(const VkBool32)) == 0))) {
19063         onFail("a->pColorWriteEnables (Error: Unequal dyn array)");
19064     };
19065 }
19066 
19067 #endif
19068 #ifdef VK_EXT_primitives_generated_query
checkEqual_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * a,const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * b,OnFailCompareFunc onFail)19069 void checkEqual_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
19070     const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* a,
19071     const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* b, OnFailCompareFunc onFail) {
19072     if (!((a->sType) == (b->sType))) {
19073         onFail("a->sType (Error: Value not equal)");
19074     };
19075     if (a->pNext) {
19076         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19077     }
19078     if (!((a->primitivesGeneratedQuery) == (b->primitivesGeneratedQuery))) {
19079         onFail("a->primitivesGeneratedQuery (Error: Value not equal)");
19080     };
19081     if (!((a->primitivesGeneratedQueryWithRasterizerDiscard) ==
19082           (b->primitivesGeneratedQueryWithRasterizerDiscard))) {
19083         onFail("a->primitivesGeneratedQueryWithRasterizerDiscard (Error: Value not equal)");
19084     };
19085     if (!((a->primitivesGeneratedQueryWithNonZeroStreams) ==
19086           (b->primitivesGeneratedQueryWithNonZeroStreams))) {
19087         onFail("a->primitivesGeneratedQueryWithNonZeroStreams (Error: Value not equal)");
19088     };
19089 }
19090 
19091 #endif
19092 #ifdef VK_GOOGLE_gfxstream
checkEqual_VkImportColorBufferGOOGLE(const VkImportColorBufferGOOGLE * a,const VkImportColorBufferGOOGLE * b,OnFailCompareFunc onFail)19093 void checkEqual_VkImportColorBufferGOOGLE(const VkImportColorBufferGOOGLE* a,
19094                                           const VkImportColorBufferGOOGLE* b,
19095                                           OnFailCompareFunc onFail) {
19096     if (!((a->sType) == (b->sType))) {
19097         onFail("a->sType (Error: Value not equal)");
19098     };
19099     if (a->pNext) {
19100         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19101     }
19102     if (!((a->colorBuffer) == (b->colorBuffer))) {
19103         onFail("a->colorBuffer (Error: Value not equal)");
19104     };
19105 }
19106 
checkEqual_VkImportBufferGOOGLE(const VkImportBufferGOOGLE * a,const VkImportBufferGOOGLE * b,OnFailCompareFunc onFail)19107 void checkEqual_VkImportBufferGOOGLE(const VkImportBufferGOOGLE* a, const VkImportBufferGOOGLE* b,
19108                                      OnFailCompareFunc onFail) {
19109     if (!((a->sType) == (b->sType))) {
19110         onFail("a->sType (Error: Value not equal)");
19111     };
19112     if (a->pNext) {
19113         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19114     }
19115     if (!((a->buffer) == (b->buffer))) {
19116         onFail("a->buffer (Error: Value not equal)");
19117     };
19118 }
19119 
checkEqual_VkCreateBlobGOOGLE(const VkCreateBlobGOOGLE * a,const VkCreateBlobGOOGLE * b,OnFailCompareFunc onFail)19120 void checkEqual_VkCreateBlobGOOGLE(const VkCreateBlobGOOGLE* a, const VkCreateBlobGOOGLE* b,
19121                                    OnFailCompareFunc onFail) {
19122     if (!((a->sType) == (b->sType))) {
19123         onFail("a->sType (Error: Value not equal)");
19124     };
19125     if (a->pNext) {
19126         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19127     }
19128     if (!((a->blobMem) == (b->blobMem))) {
19129         onFail("a->blobMem (Error: Value not equal)");
19130     };
19131     if (!((a->blobFlags) == (b->blobFlags))) {
19132         onFail("a->blobFlags (Error: Value not equal)");
19133     };
19134     if (!((a->blobId) == (b->blobId))) {
19135         onFail("a->blobId (Error: Value not equal)");
19136     };
19137 }
19138 
19139 #endif
19140 #ifdef VK_EXT_global_priority_query
19141 #endif
19142 #ifdef VK_EXT_image_view_min_lod
checkEqual_VkPhysicalDeviceImageViewMinLodFeaturesEXT(const VkPhysicalDeviceImageViewMinLodFeaturesEXT * a,const VkPhysicalDeviceImageViewMinLodFeaturesEXT * b,OnFailCompareFunc onFail)19143 void checkEqual_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
19144     const VkPhysicalDeviceImageViewMinLodFeaturesEXT* a,
19145     const VkPhysicalDeviceImageViewMinLodFeaturesEXT* b, OnFailCompareFunc onFail) {
19146     if (!((a->sType) == (b->sType))) {
19147         onFail("a->sType (Error: Value not equal)");
19148     };
19149     if (a->pNext) {
19150         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19151     }
19152     if (!((a->minLod) == (b->minLod))) {
19153         onFail("a->minLod (Error: Value not equal)");
19154     };
19155 }
19156 
checkEqual_VkImageViewMinLodCreateInfoEXT(const VkImageViewMinLodCreateInfoEXT * a,const VkImageViewMinLodCreateInfoEXT * b,OnFailCompareFunc onFail)19157 void checkEqual_VkImageViewMinLodCreateInfoEXT(const VkImageViewMinLodCreateInfoEXT* a,
19158                                                const VkImageViewMinLodCreateInfoEXT* b,
19159                                                OnFailCompareFunc onFail) {
19160     if (!((a->sType) == (b->sType))) {
19161         onFail("a->sType (Error: Value not equal)");
19162     };
19163     if (a->pNext) {
19164         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19165     }
19166     if (!((a->minLod) == (b->minLod))) {
19167         onFail("a->minLod (Error: Value not equal)");
19168     };
19169 }
19170 
19171 #endif
19172 #ifdef VK_EXT_multi_draw
checkEqual_VkPhysicalDeviceMultiDrawFeaturesEXT(const VkPhysicalDeviceMultiDrawFeaturesEXT * a,const VkPhysicalDeviceMultiDrawFeaturesEXT * b,OnFailCompareFunc onFail)19173 void checkEqual_VkPhysicalDeviceMultiDrawFeaturesEXT(const VkPhysicalDeviceMultiDrawFeaturesEXT* a,
19174                                                      const VkPhysicalDeviceMultiDrawFeaturesEXT* b,
19175                                                      OnFailCompareFunc onFail) {
19176     if (!((a->sType) == (b->sType))) {
19177         onFail("a->sType (Error: Value not equal)");
19178     };
19179     if (a->pNext) {
19180         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19181     }
19182     if (!((a->multiDraw) == (b->multiDraw))) {
19183         onFail("a->multiDraw (Error: Value not equal)");
19184     };
19185 }
19186 
checkEqual_VkPhysicalDeviceMultiDrawPropertiesEXT(const VkPhysicalDeviceMultiDrawPropertiesEXT * a,const VkPhysicalDeviceMultiDrawPropertiesEXT * b,OnFailCompareFunc onFail)19187 void checkEqual_VkPhysicalDeviceMultiDrawPropertiesEXT(
19188     const VkPhysicalDeviceMultiDrawPropertiesEXT* a,
19189     const VkPhysicalDeviceMultiDrawPropertiesEXT* b, OnFailCompareFunc onFail) {
19190     if (!((a->sType) == (b->sType))) {
19191         onFail("a->sType (Error: Value not equal)");
19192     };
19193     if (a->pNext) {
19194         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19195     }
19196     if (!((a->maxMultiDrawCount) == (b->maxMultiDrawCount))) {
19197         onFail("a->maxMultiDrawCount (Error: Value not equal)");
19198     };
19199 }
19200 
checkEqual_VkMultiDrawInfoEXT(const VkMultiDrawInfoEXT * a,const VkMultiDrawInfoEXT * b,OnFailCompareFunc onFail)19201 void checkEqual_VkMultiDrawInfoEXT(const VkMultiDrawInfoEXT* a, const VkMultiDrawInfoEXT* b,
19202                                    OnFailCompareFunc onFail) {
19203     if (!((a->firstVertex) == (b->firstVertex))) {
19204         onFail("a->firstVertex (Error: Value not equal)");
19205     };
19206     if (!((a->vertexCount) == (b->vertexCount))) {
19207         onFail("a->vertexCount (Error: Value not equal)");
19208     };
19209 }
19210 
checkEqual_VkMultiDrawIndexedInfoEXT(const VkMultiDrawIndexedInfoEXT * a,const VkMultiDrawIndexedInfoEXT * b,OnFailCompareFunc onFail)19211 void checkEqual_VkMultiDrawIndexedInfoEXT(const VkMultiDrawIndexedInfoEXT* a,
19212                                           const VkMultiDrawIndexedInfoEXT* b,
19213                                           OnFailCompareFunc onFail) {
19214     if (!((a->firstIndex) == (b->firstIndex))) {
19215         onFail("a->firstIndex (Error: Value not equal)");
19216     };
19217     if (!((a->indexCount) == (b->indexCount))) {
19218         onFail("a->indexCount (Error: Value not equal)");
19219     };
19220     if (!((a->vertexOffset) == (b->vertexOffset))) {
19221         onFail("a->vertexOffset (Error: Value not equal)");
19222     };
19223 }
19224 
19225 #endif
19226 #ifdef VK_EXT_image_2d_view_of_3d
checkEqual_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT * a,const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT * b,OnFailCompareFunc onFail)19227 void checkEqual_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
19228     const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* a,
19229     const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* b, OnFailCompareFunc onFail) {
19230     if (!((a->sType) == (b->sType))) {
19231         onFail("a->sType (Error: Value not equal)");
19232     };
19233     if (a->pNext) {
19234         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19235     }
19236     if (!((a->image2DViewOf3D) == (b->image2DViewOf3D))) {
19237         onFail("a->image2DViewOf3D (Error: Value not equal)");
19238     };
19239     if (!((a->sampler2DViewOf3D) == (b->sampler2DViewOf3D))) {
19240         onFail("a->sampler2DViewOf3D (Error: Value not equal)");
19241     };
19242 }
19243 
19244 #endif
19245 #ifdef VK_EXT_shader_tile_image
checkEqual_VkPhysicalDeviceShaderTileImageFeaturesEXT(const VkPhysicalDeviceShaderTileImageFeaturesEXT * a,const VkPhysicalDeviceShaderTileImageFeaturesEXT * b,OnFailCompareFunc onFail)19246 void checkEqual_VkPhysicalDeviceShaderTileImageFeaturesEXT(
19247     const VkPhysicalDeviceShaderTileImageFeaturesEXT* a,
19248     const VkPhysicalDeviceShaderTileImageFeaturesEXT* b, OnFailCompareFunc onFail) {
19249     if (!((a->sType) == (b->sType))) {
19250         onFail("a->sType (Error: Value not equal)");
19251     };
19252     if (a->pNext) {
19253         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19254     }
19255     if (!((a->shaderTileImageColorReadAccess) == (b->shaderTileImageColorReadAccess))) {
19256         onFail("a->shaderTileImageColorReadAccess (Error: Value not equal)");
19257     };
19258     if (!((a->shaderTileImageDepthReadAccess) == (b->shaderTileImageDepthReadAccess))) {
19259         onFail("a->shaderTileImageDepthReadAccess (Error: Value not equal)");
19260     };
19261     if (!((a->shaderTileImageStencilReadAccess) == (b->shaderTileImageStencilReadAccess))) {
19262         onFail("a->shaderTileImageStencilReadAccess (Error: Value not equal)");
19263     };
19264 }
19265 
checkEqual_VkPhysicalDeviceShaderTileImagePropertiesEXT(const VkPhysicalDeviceShaderTileImagePropertiesEXT * a,const VkPhysicalDeviceShaderTileImagePropertiesEXT * b,OnFailCompareFunc onFail)19266 void checkEqual_VkPhysicalDeviceShaderTileImagePropertiesEXT(
19267     const VkPhysicalDeviceShaderTileImagePropertiesEXT* a,
19268     const VkPhysicalDeviceShaderTileImagePropertiesEXT* b, OnFailCompareFunc onFail) {
19269     if (!((a->sType) == (b->sType))) {
19270         onFail("a->sType (Error: Value not equal)");
19271     };
19272     if (a->pNext) {
19273         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19274     }
19275     if (!((a->shaderTileImageCoherentReadAccelerated) ==
19276           (b->shaderTileImageCoherentReadAccelerated))) {
19277         onFail("a->shaderTileImageCoherentReadAccelerated (Error: Value not equal)");
19278     };
19279     if (!((a->shaderTileImageReadSampleFromPixelRateInvocation) ==
19280           (b->shaderTileImageReadSampleFromPixelRateInvocation))) {
19281         onFail("a->shaderTileImageReadSampleFromPixelRateInvocation (Error: Value not equal)");
19282     };
19283     if (!((a->shaderTileImageReadFromHelperInvocation) ==
19284           (b->shaderTileImageReadFromHelperInvocation))) {
19285         onFail("a->shaderTileImageReadFromHelperInvocation (Error: Value not equal)");
19286     };
19287 }
19288 
19289 #endif
19290 #ifdef VK_EXT_opacity_micromap
checkEqual_VkMicromapUsageEXT(const VkMicromapUsageEXT * a,const VkMicromapUsageEXT * b,OnFailCompareFunc onFail)19291 void checkEqual_VkMicromapUsageEXT(const VkMicromapUsageEXT* a, const VkMicromapUsageEXT* b,
19292                                    OnFailCompareFunc onFail) {
19293     if (!((a->count) == (b->count))) {
19294         onFail("a->count (Error: Value not equal)");
19295     };
19296     if (!((a->subdivisionLevel) == (b->subdivisionLevel))) {
19297         onFail("a->subdivisionLevel (Error: Value not equal)");
19298     };
19299     if (!((a->format) == (b->format))) {
19300         onFail("a->format (Error: Value not equal)");
19301     };
19302 }
19303 
checkEqual_VkDeviceOrHostAddressKHR(const VkDeviceOrHostAddressKHR * a,const VkDeviceOrHostAddressKHR * b,OnFailCompareFunc onFail)19304 void checkEqual_VkDeviceOrHostAddressKHR(const VkDeviceOrHostAddressKHR* a,
19305                                          const VkDeviceOrHostAddressKHR* b,
19306                                          OnFailCompareFunc onFail) {
19307     if (!((a->deviceAddress) == (b->deviceAddress))) {
19308         onFail("a->deviceAddress (Error: Value not equal)");
19309     };
19310     if (!((!(a->hostAddress) && !(b->hostAddress)) || ((a->hostAddress) && (b->hostAddress)))) {
19311         onFail("a->hostAddress (Error: Mismatch in optional field)");
19312     };
19313 }
19314 
checkEqual_VkMicromapBuildInfoEXT(const VkMicromapBuildInfoEXT * a,const VkMicromapBuildInfoEXT * b,OnFailCompareFunc onFail)19315 void checkEqual_VkMicromapBuildInfoEXT(const VkMicromapBuildInfoEXT* a,
19316                                        const VkMicromapBuildInfoEXT* b, OnFailCompareFunc onFail) {
19317     if (!((a->sType) == (b->sType))) {
19318         onFail("a->sType (Error: Value not equal)");
19319     };
19320     if (a->pNext) {
19321         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19322     }
19323     if (!((a->type) == (b->type))) {
19324         onFail("a->type (Error: Value not equal)");
19325     };
19326     if (!((a->flags) == (b->flags))) {
19327         onFail("a->flags (Error: Value not equal)");
19328     };
19329     if (!((a->mode) == (b->mode))) {
19330         onFail("a->mode (Error: Value not equal)");
19331     };
19332     if (!((a->dstMicromap) == (b->dstMicromap))) {
19333         onFail("a->dstMicromap (Error: Value not equal)");
19334     };
19335     if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19336         onFail("a->usageCountsCount (Error: Value not equal)");
19337     };
19338     if (!((!(a->pUsageCounts) && !(b->pUsageCounts)) || ((a->pUsageCounts) && (b->pUsageCounts)))) {
19339         onFail("a->pUsageCounts (Error: Mismatch in optional field)");
19340     };
19341     if (a->pUsageCounts && b->pUsageCounts) {
19342         if ((a->pUsageCounts) && (b->pUsageCounts)) {
19343             if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19344                 onFail("a->pUsageCounts (Error: Lengths not equal)");
19345             };
19346             if ((a->usageCountsCount) == (b->usageCountsCount)) {
19347                 if (a) {
19348                     for (uint32_t i = 0; i < (uint32_t)a->usageCountsCount; ++i) {
19349                         checkEqual_VkMicromapUsageEXT(a->pUsageCounts + i, b->pUsageCounts + i,
19350                                                       onFail);
19351                     }
19352                 }
19353             }
19354         }
19355     }
19356     checkEqual_VkDeviceOrHostAddressConstKHR(&a->data, &b->data, onFail);
19357     checkEqual_VkDeviceOrHostAddressKHR(&a->scratchData, &b->scratchData, onFail);
19358     checkEqual_VkDeviceOrHostAddressConstKHR(&a->triangleArray, &b->triangleArray, onFail);
19359     if (!((a->triangleArrayStride) == (b->triangleArrayStride))) {
19360         onFail("a->triangleArrayStride (Error: Value not equal)");
19361     };
19362 }
19363 
checkEqual_VkMicromapCreateInfoEXT(const VkMicromapCreateInfoEXT * a,const VkMicromapCreateInfoEXT * b,OnFailCompareFunc onFail)19364 void checkEqual_VkMicromapCreateInfoEXT(const VkMicromapCreateInfoEXT* a,
19365                                         const VkMicromapCreateInfoEXT* b,
19366                                         OnFailCompareFunc onFail) {
19367     if (!((a->sType) == (b->sType))) {
19368         onFail("a->sType (Error: Value not equal)");
19369     };
19370     if (a->pNext) {
19371         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19372     }
19373     if (!((a->createFlags) == (b->createFlags))) {
19374         onFail("a->createFlags (Error: Value not equal)");
19375     };
19376     if (!((a->buffer) == (b->buffer))) {
19377         onFail("a->buffer (Error: Value not equal)");
19378     };
19379     if (!((a->offset) == (b->offset))) {
19380         onFail("a->offset (Error: Value not equal)");
19381     };
19382     if (!((a->size) == (b->size))) {
19383         onFail("a->size (Error: Value not equal)");
19384     };
19385     if (!((a->type) == (b->type))) {
19386         onFail("a->type (Error: Value not equal)");
19387     };
19388     if (!((a->deviceAddress) == (b->deviceAddress))) {
19389         onFail("a->deviceAddress (Error: Value not equal)");
19390     };
19391 }
19392 
checkEqual_VkPhysicalDeviceOpacityMicromapFeaturesEXT(const VkPhysicalDeviceOpacityMicromapFeaturesEXT * a,const VkPhysicalDeviceOpacityMicromapFeaturesEXT * b,OnFailCompareFunc onFail)19393 void checkEqual_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
19394     const VkPhysicalDeviceOpacityMicromapFeaturesEXT* a,
19395     const VkPhysicalDeviceOpacityMicromapFeaturesEXT* b, OnFailCompareFunc onFail) {
19396     if (!((a->sType) == (b->sType))) {
19397         onFail("a->sType (Error: Value not equal)");
19398     };
19399     if (a->pNext) {
19400         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19401     }
19402     if (!((a->micromap) == (b->micromap))) {
19403         onFail("a->micromap (Error: Value not equal)");
19404     };
19405     if (!((a->micromapCaptureReplay) == (b->micromapCaptureReplay))) {
19406         onFail("a->micromapCaptureReplay (Error: Value not equal)");
19407     };
19408     if (!((a->micromapHostCommands) == (b->micromapHostCommands))) {
19409         onFail("a->micromapHostCommands (Error: Value not equal)");
19410     };
19411 }
19412 
checkEqual_VkPhysicalDeviceOpacityMicromapPropertiesEXT(const VkPhysicalDeviceOpacityMicromapPropertiesEXT * a,const VkPhysicalDeviceOpacityMicromapPropertiesEXT * b,OnFailCompareFunc onFail)19413 void checkEqual_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
19414     const VkPhysicalDeviceOpacityMicromapPropertiesEXT* a,
19415     const VkPhysicalDeviceOpacityMicromapPropertiesEXT* b, OnFailCompareFunc onFail) {
19416     if (!((a->sType) == (b->sType))) {
19417         onFail("a->sType (Error: Value not equal)");
19418     };
19419     if (a->pNext) {
19420         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19421     }
19422     if (!((a->maxOpacity2StateSubdivisionLevel) == (b->maxOpacity2StateSubdivisionLevel))) {
19423         onFail("a->maxOpacity2StateSubdivisionLevel (Error: Value not equal)");
19424     };
19425     if (!((a->maxOpacity4StateSubdivisionLevel) == (b->maxOpacity4StateSubdivisionLevel))) {
19426         onFail("a->maxOpacity4StateSubdivisionLevel (Error: Value not equal)");
19427     };
19428 }
19429 
checkEqual_VkMicromapVersionInfoEXT(const VkMicromapVersionInfoEXT * a,const VkMicromapVersionInfoEXT * b,OnFailCompareFunc onFail)19430 void checkEqual_VkMicromapVersionInfoEXT(const VkMicromapVersionInfoEXT* a,
19431                                          const VkMicromapVersionInfoEXT* b,
19432                                          OnFailCompareFunc onFail) {
19433     if (!((a->sType) == (b->sType))) {
19434         onFail("a->sType (Error: Value not equal)");
19435     };
19436     if (a->pNext) {
19437         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19438     }
19439     if (!((2 * VK_UUID_SIZE) == (2 * VK_UUID_SIZE))) {
19440         onFail("a->pVersionData (Error: Lengths not equal)");
19441     };
19442     if (!((memcmp(a->pVersionData, b->pVersionData, 2 * VK_UUID_SIZE * sizeof(const uint8_t)) ==
19443            0))) {
19444         onFail("a->pVersionData (Error: Unequal dyn array)");
19445     };
19446 }
19447 
checkEqual_VkCopyMicromapToMemoryInfoEXT(const VkCopyMicromapToMemoryInfoEXT * a,const VkCopyMicromapToMemoryInfoEXT * b,OnFailCompareFunc onFail)19448 void checkEqual_VkCopyMicromapToMemoryInfoEXT(const VkCopyMicromapToMemoryInfoEXT* a,
19449                                               const VkCopyMicromapToMemoryInfoEXT* b,
19450                                               OnFailCompareFunc onFail) {
19451     if (!((a->sType) == (b->sType))) {
19452         onFail("a->sType (Error: Value not equal)");
19453     };
19454     if (a->pNext) {
19455         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19456     }
19457     if (!((a->src) == (b->src))) {
19458         onFail("a->src (Error: Value not equal)");
19459     };
19460     checkEqual_VkDeviceOrHostAddressKHR(&a->dst, &b->dst, onFail);
19461     if (!((a->mode) == (b->mode))) {
19462         onFail("a->mode (Error: Value not equal)");
19463     };
19464 }
19465 
checkEqual_VkCopyMemoryToMicromapInfoEXT(const VkCopyMemoryToMicromapInfoEXT * a,const VkCopyMemoryToMicromapInfoEXT * b,OnFailCompareFunc onFail)19466 void checkEqual_VkCopyMemoryToMicromapInfoEXT(const VkCopyMemoryToMicromapInfoEXT* a,
19467                                               const VkCopyMemoryToMicromapInfoEXT* b,
19468                                               OnFailCompareFunc onFail) {
19469     if (!((a->sType) == (b->sType))) {
19470         onFail("a->sType (Error: Value not equal)");
19471     };
19472     if (a->pNext) {
19473         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19474     }
19475     checkEqual_VkDeviceOrHostAddressConstKHR(&a->src, &b->src, onFail);
19476     if (!((a->dst) == (b->dst))) {
19477         onFail("a->dst (Error: Value not equal)");
19478     };
19479     if (!((a->mode) == (b->mode))) {
19480         onFail("a->mode (Error: Value not equal)");
19481     };
19482 }
19483 
checkEqual_VkCopyMicromapInfoEXT(const VkCopyMicromapInfoEXT * a,const VkCopyMicromapInfoEXT * b,OnFailCompareFunc onFail)19484 void checkEqual_VkCopyMicromapInfoEXT(const VkCopyMicromapInfoEXT* a,
19485                                       const VkCopyMicromapInfoEXT* b, OnFailCompareFunc onFail) {
19486     if (!((a->sType) == (b->sType))) {
19487         onFail("a->sType (Error: Value not equal)");
19488     };
19489     if (a->pNext) {
19490         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19491     }
19492     if (!((a->src) == (b->src))) {
19493         onFail("a->src (Error: Value not equal)");
19494     };
19495     if (!((a->dst) == (b->dst))) {
19496         onFail("a->dst (Error: Value not equal)");
19497     };
19498     if (!((a->mode) == (b->mode))) {
19499         onFail("a->mode (Error: Value not equal)");
19500     };
19501 }
19502 
checkEqual_VkMicromapBuildSizesInfoEXT(const VkMicromapBuildSizesInfoEXT * a,const VkMicromapBuildSizesInfoEXT * b,OnFailCompareFunc onFail)19503 void checkEqual_VkMicromapBuildSizesInfoEXT(const VkMicromapBuildSizesInfoEXT* a,
19504                                             const VkMicromapBuildSizesInfoEXT* b,
19505                                             OnFailCompareFunc onFail) {
19506     if (!((a->sType) == (b->sType))) {
19507         onFail("a->sType (Error: Value not equal)");
19508     };
19509     if (a->pNext) {
19510         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19511     }
19512     if (!((a->micromapSize) == (b->micromapSize))) {
19513         onFail("a->micromapSize (Error: Value not equal)");
19514     };
19515     if (!((a->buildScratchSize) == (b->buildScratchSize))) {
19516         onFail("a->buildScratchSize (Error: Value not equal)");
19517     };
19518     if (!((a->discardable) == (b->discardable))) {
19519         onFail("a->discardable (Error: Value not equal)");
19520     };
19521 }
19522 
checkEqual_VkAccelerationStructureTrianglesOpacityMicromapEXT(const VkAccelerationStructureTrianglesOpacityMicromapEXT * a,const VkAccelerationStructureTrianglesOpacityMicromapEXT * b,OnFailCompareFunc onFail)19523 void checkEqual_VkAccelerationStructureTrianglesOpacityMicromapEXT(
19524     const VkAccelerationStructureTrianglesOpacityMicromapEXT* a,
19525     const VkAccelerationStructureTrianglesOpacityMicromapEXT* b, OnFailCompareFunc onFail) {
19526     if (!((a->sType) == (b->sType))) {
19527         onFail("a->sType (Error: Value not equal)");
19528     };
19529     if (a->pNext) {
19530         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19531     }
19532     if (!((a->indexType) == (b->indexType))) {
19533         onFail("a->indexType (Error: Value not equal)");
19534     };
19535     checkEqual_VkDeviceOrHostAddressConstKHR(&a->indexBuffer, &b->indexBuffer, onFail);
19536     if (!((a->indexStride) == (b->indexStride))) {
19537         onFail("a->indexStride (Error: Value not equal)");
19538     };
19539     if (!((a->baseTriangle) == (b->baseTriangle))) {
19540         onFail("a->baseTriangle (Error: Value not equal)");
19541     };
19542     if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19543         onFail("a->usageCountsCount (Error: Value not equal)");
19544     };
19545     if (!((!(a->pUsageCounts) && !(b->pUsageCounts)) || ((a->pUsageCounts) && (b->pUsageCounts)))) {
19546         onFail("a->pUsageCounts (Error: Mismatch in optional field)");
19547     };
19548     if (a->pUsageCounts && b->pUsageCounts) {
19549         if ((a->pUsageCounts) && (b->pUsageCounts)) {
19550             if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19551                 onFail("a->pUsageCounts (Error: Lengths not equal)");
19552             };
19553             if ((a->usageCountsCount) == (b->usageCountsCount)) {
19554                 if (a) {
19555                     for (uint32_t i = 0; i < (uint32_t)a->usageCountsCount; ++i) {
19556                         checkEqual_VkMicromapUsageEXT(a->pUsageCounts + i, b->pUsageCounts + i,
19557                                                       onFail);
19558                     }
19559                 }
19560             }
19561         }
19562     }
19563     if (!((a->micromap) == (b->micromap))) {
19564         onFail("a->micromap (Error: Value not equal)");
19565     };
19566 }
19567 
checkEqual_VkMicromapTriangleEXT(const VkMicromapTriangleEXT * a,const VkMicromapTriangleEXT * b,OnFailCompareFunc onFail)19568 void checkEqual_VkMicromapTriangleEXT(const VkMicromapTriangleEXT* a,
19569                                       const VkMicromapTriangleEXT* b, OnFailCompareFunc onFail) {
19570     if (!((a->dataOffset) == (b->dataOffset))) {
19571         onFail("a->dataOffset (Error: Value not equal)");
19572     };
19573     if (!((a->subdivisionLevel) == (b->subdivisionLevel))) {
19574         onFail("a->subdivisionLevel (Error: Value not equal)");
19575     };
19576     if (!((a->format) == (b->format))) {
19577         onFail("a->format (Error: Value not equal)");
19578     };
19579 }
19580 
19581 #endif
19582 #ifdef VK_NV_displacement_micromap
checkEqual_VkPhysicalDeviceDisplacementMicromapFeaturesNV(const VkPhysicalDeviceDisplacementMicromapFeaturesNV * a,const VkPhysicalDeviceDisplacementMicromapFeaturesNV * b,OnFailCompareFunc onFail)19583 void checkEqual_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
19584     const VkPhysicalDeviceDisplacementMicromapFeaturesNV* a,
19585     const VkPhysicalDeviceDisplacementMicromapFeaturesNV* b, OnFailCompareFunc onFail) {
19586     if (!((a->sType) == (b->sType))) {
19587         onFail("a->sType (Error: Value not equal)");
19588     };
19589     if (a->pNext) {
19590         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19591     }
19592     if (!((a->displacementMicromap) == (b->displacementMicromap))) {
19593         onFail("a->displacementMicromap (Error: Value not equal)");
19594     };
19595 }
19596 
checkEqual_VkPhysicalDeviceDisplacementMicromapPropertiesNV(const VkPhysicalDeviceDisplacementMicromapPropertiesNV * a,const VkPhysicalDeviceDisplacementMicromapPropertiesNV * b,OnFailCompareFunc onFail)19597 void checkEqual_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
19598     const VkPhysicalDeviceDisplacementMicromapPropertiesNV* a,
19599     const VkPhysicalDeviceDisplacementMicromapPropertiesNV* b, OnFailCompareFunc onFail) {
19600     if (!((a->sType) == (b->sType))) {
19601         onFail("a->sType (Error: Value not equal)");
19602     };
19603     if (a->pNext) {
19604         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19605     }
19606     if (!((a->maxDisplacementMicromapSubdivisionLevel) ==
19607           (b->maxDisplacementMicromapSubdivisionLevel))) {
19608         onFail("a->maxDisplacementMicromapSubdivisionLevel (Error: Value not equal)");
19609     };
19610 }
19611 
checkEqual_VkAccelerationStructureTrianglesDisplacementMicromapNV(const VkAccelerationStructureTrianglesDisplacementMicromapNV * a,const VkAccelerationStructureTrianglesDisplacementMicromapNV * b,OnFailCompareFunc onFail)19612 void checkEqual_VkAccelerationStructureTrianglesDisplacementMicromapNV(
19613     const VkAccelerationStructureTrianglesDisplacementMicromapNV* a,
19614     const VkAccelerationStructureTrianglesDisplacementMicromapNV* b, OnFailCompareFunc onFail) {
19615     if (!((a->sType) == (b->sType))) {
19616         onFail("a->sType (Error: Value not equal)");
19617     };
19618     if (a->pNext) {
19619         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19620     }
19621     if (!((a->displacementBiasAndScaleFormat) == (b->displacementBiasAndScaleFormat))) {
19622         onFail("a->displacementBiasAndScaleFormat (Error: Value not equal)");
19623     };
19624     if (!((a->displacementVectorFormat) == (b->displacementVectorFormat))) {
19625         onFail("a->displacementVectorFormat (Error: Value not equal)");
19626     };
19627     checkEqual_VkDeviceOrHostAddressConstKHR(&a->displacementBiasAndScaleBuffer,
19628                                              &b->displacementBiasAndScaleBuffer, onFail);
19629     if (!((a->displacementBiasAndScaleStride) == (b->displacementBiasAndScaleStride))) {
19630         onFail("a->displacementBiasAndScaleStride (Error: Value not equal)");
19631     };
19632     checkEqual_VkDeviceOrHostAddressConstKHR(&a->displacementVectorBuffer,
19633                                              &b->displacementVectorBuffer, onFail);
19634     if (!((a->displacementVectorStride) == (b->displacementVectorStride))) {
19635         onFail("a->displacementVectorStride (Error: Value not equal)");
19636     };
19637     checkEqual_VkDeviceOrHostAddressConstKHR(&a->displacedMicromapPrimitiveFlags,
19638                                              &b->displacedMicromapPrimitiveFlags, onFail);
19639     if (!((a->displacedMicromapPrimitiveFlagsStride) ==
19640           (b->displacedMicromapPrimitiveFlagsStride))) {
19641         onFail("a->displacedMicromapPrimitiveFlagsStride (Error: Value not equal)");
19642     };
19643     if (!((a->indexType) == (b->indexType))) {
19644         onFail("a->indexType (Error: Value not equal)");
19645     };
19646     checkEqual_VkDeviceOrHostAddressConstKHR(&a->indexBuffer, &b->indexBuffer, onFail);
19647     if (!((a->indexStride) == (b->indexStride))) {
19648         onFail("a->indexStride (Error: Value not equal)");
19649     };
19650     if (!((a->baseTriangle) == (b->baseTriangle))) {
19651         onFail("a->baseTriangle (Error: Value not equal)");
19652     };
19653     if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19654         onFail("a->usageCountsCount (Error: Value not equal)");
19655     };
19656     if (!((!(a->pUsageCounts) && !(b->pUsageCounts)) || ((a->pUsageCounts) && (b->pUsageCounts)))) {
19657         onFail("a->pUsageCounts (Error: Mismatch in optional field)");
19658     };
19659     if (a->pUsageCounts && b->pUsageCounts) {
19660         if ((a->pUsageCounts) && (b->pUsageCounts)) {
19661             if (!((a->usageCountsCount) == (b->usageCountsCount))) {
19662                 onFail("a->pUsageCounts (Error: Lengths not equal)");
19663             };
19664             if ((a->usageCountsCount) == (b->usageCountsCount)) {
19665                 if (a) {
19666                     for (uint32_t i = 0; i < (uint32_t)a->usageCountsCount; ++i) {
19667                         checkEqual_VkMicromapUsageEXT(a->pUsageCounts + i, b->pUsageCounts + i,
19668                                                       onFail);
19669                     }
19670                 }
19671             }
19672         }
19673     }
19674     if (!((a->micromap) == (b->micromap))) {
19675         onFail("a->micromap (Error: Value not equal)");
19676     };
19677 }
19678 
19679 #endif
19680 #ifdef VK_EXT_load_store_op_none
19681 #endif
19682 #ifdef VK_HUAWEI_cluster_culling_shader
checkEqual_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI * a,const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI * b,OnFailCompareFunc onFail)19683 void checkEqual_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
19684     const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* a,
19685     const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* b, OnFailCompareFunc onFail) {
19686     if (!((a->sType) == (b->sType))) {
19687         onFail("a->sType (Error: Value not equal)");
19688     };
19689     if (a->pNext) {
19690         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19691     }
19692     if (!((a->clustercullingShader) == (b->clustercullingShader))) {
19693         onFail("a->clustercullingShader (Error: Value not equal)");
19694     };
19695     if (!((a->multiviewClusterCullingShader) == (b->multiviewClusterCullingShader))) {
19696         onFail("a->multiviewClusterCullingShader (Error: Value not equal)");
19697     };
19698 }
19699 
checkEqual_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI * a,const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI * b,OnFailCompareFunc onFail)19700 void checkEqual_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
19701     const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* a,
19702     const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* b, OnFailCompareFunc onFail) {
19703     if (!((a->sType) == (b->sType))) {
19704         onFail("a->sType (Error: Value not equal)");
19705     };
19706     if (a->pNext) {
19707         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19708     }
19709     if (!((memcmp(a->maxWorkGroupCount, b->maxWorkGroupCount, 3 * sizeof(uint32_t)) == 0))) {
19710         onFail("a->maxWorkGroupCount (Error: Unequal static array)");
19711     };
19712     if (!((memcmp(a->maxWorkGroupSize, b->maxWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
19713         onFail("a->maxWorkGroupSize (Error: Unequal static array)");
19714     };
19715     if (!((a->maxOutputClusterCount) == (b->maxOutputClusterCount))) {
19716         onFail("a->maxOutputClusterCount (Error: Value not equal)");
19717     };
19718     if (!((a->indirectBufferOffsetAlignment) == (b->indirectBufferOffsetAlignment))) {
19719         onFail("a->indirectBufferOffsetAlignment (Error: Value not equal)");
19720     };
19721 }
19722 
19723 #endif
19724 #ifdef VK_EXT_border_color_swizzle
checkEqual_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT * a,const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT * b,OnFailCompareFunc onFail)19725 void checkEqual_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
19726     const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* a,
19727     const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* b, OnFailCompareFunc onFail) {
19728     if (!((a->sType) == (b->sType))) {
19729         onFail("a->sType (Error: Value not equal)");
19730     };
19731     if (a->pNext) {
19732         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19733     }
19734     if (!((a->borderColorSwizzle) == (b->borderColorSwizzle))) {
19735         onFail("a->borderColorSwizzle (Error: Value not equal)");
19736     };
19737     if (!((a->borderColorSwizzleFromImage) == (b->borderColorSwizzleFromImage))) {
19738         onFail("a->borderColorSwizzleFromImage (Error: Value not equal)");
19739     };
19740 }
19741 
checkEqual_VkSamplerBorderColorComponentMappingCreateInfoEXT(const VkSamplerBorderColorComponentMappingCreateInfoEXT * a,const VkSamplerBorderColorComponentMappingCreateInfoEXT * b,OnFailCompareFunc onFail)19742 void checkEqual_VkSamplerBorderColorComponentMappingCreateInfoEXT(
19743     const VkSamplerBorderColorComponentMappingCreateInfoEXT* a,
19744     const VkSamplerBorderColorComponentMappingCreateInfoEXT* b, OnFailCompareFunc onFail) {
19745     if (!((a->sType) == (b->sType))) {
19746         onFail("a->sType (Error: Value not equal)");
19747     };
19748     if (a->pNext) {
19749         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19750     }
19751     checkEqual_VkComponentMapping(&a->components, &b->components, onFail);
19752     if (!((a->srgb) == (b->srgb))) {
19753         onFail("a->srgb (Error: Value not equal)");
19754     };
19755 }
19756 
19757 #endif
19758 #ifdef VK_EXT_pageable_device_local_memory
checkEqual_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT * a,const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT * b,OnFailCompareFunc onFail)19759 void checkEqual_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
19760     const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* a,
19761     const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* b, OnFailCompareFunc onFail) {
19762     if (!((a->sType) == (b->sType))) {
19763         onFail("a->sType (Error: Value not equal)");
19764     };
19765     if (a->pNext) {
19766         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19767     }
19768     if (!((a->pageableDeviceLocalMemory) == (b->pageableDeviceLocalMemory))) {
19769         onFail("a->pageableDeviceLocalMemory (Error: Value not equal)");
19770     };
19771 }
19772 
19773 #endif
19774 #ifdef VK_ARM_shader_core_properties
checkEqual_VkPhysicalDeviceShaderCorePropertiesARM(const VkPhysicalDeviceShaderCorePropertiesARM * a,const VkPhysicalDeviceShaderCorePropertiesARM * b,OnFailCompareFunc onFail)19775 void checkEqual_VkPhysicalDeviceShaderCorePropertiesARM(
19776     const VkPhysicalDeviceShaderCorePropertiesARM* a,
19777     const VkPhysicalDeviceShaderCorePropertiesARM* b, OnFailCompareFunc onFail) {
19778     if (!((a->sType) == (b->sType))) {
19779         onFail("a->sType (Error: Value not equal)");
19780     };
19781     if (a->pNext) {
19782         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19783     }
19784     if (!((a->pixelRate) == (b->pixelRate))) {
19785         onFail("a->pixelRate (Error: Value not equal)");
19786     };
19787     if (!((a->texelRate) == (b->texelRate))) {
19788         onFail("a->texelRate (Error: Value not equal)");
19789     };
19790     if (!((a->fmaRate) == (b->fmaRate))) {
19791         onFail("a->fmaRate (Error: Value not equal)");
19792     };
19793 }
19794 
19795 #endif
19796 #ifdef VK_EXT_image_sliced_view_of_3d
checkEqual_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT * a,const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT * b,OnFailCompareFunc onFail)19797 void checkEqual_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
19798     const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* a,
19799     const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* b, OnFailCompareFunc onFail) {
19800     if (!((a->sType) == (b->sType))) {
19801         onFail("a->sType (Error: Value not equal)");
19802     };
19803     if (a->pNext) {
19804         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19805     }
19806     if (!((a->imageSlicedViewOf3D) == (b->imageSlicedViewOf3D))) {
19807         onFail("a->imageSlicedViewOf3D (Error: Value not equal)");
19808     };
19809 }
19810 
checkEqual_VkImageViewSlicedCreateInfoEXT(const VkImageViewSlicedCreateInfoEXT * a,const VkImageViewSlicedCreateInfoEXT * b,OnFailCompareFunc onFail)19811 void checkEqual_VkImageViewSlicedCreateInfoEXT(const VkImageViewSlicedCreateInfoEXT* a,
19812                                                const VkImageViewSlicedCreateInfoEXT* b,
19813                                                OnFailCompareFunc onFail) {
19814     if (!((a->sType) == (b->sType))) {
19815         onFail("a->sType (Error: Value not equal)");
19816     };
19817     if (a->pNext) {
19818         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19819     }
19820     if (!((a->sliceOffset) == (b->sliceOffset))) {
19821         onFail("a->sliceOffset (Error: Value not equal)");
19822     };
19823     if (!((a->sliceCount) == (b->sliceCount))) {
19824         onFail("a->sliceCount (Error: Value not equal)");
19825     };
19826 }
19827 
19828 #endif
19829 #ifdef VK_VALVE_descriptor_set_host_mapping
checkEqual_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE * a,const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE * b,OnFailCompareFunc onFail)19830 void checkEqual_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
19831     const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* a,
19832     const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* b, OnFailCompareFunc onFail) {
19833     if (!((a->sType) == (b->sType))) {
19834         onFail("a->sType (Error: Value not equal)");
19835     };
19836     if (a->pNext) {
19837         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19838     }
19839     if (!((a->descriptorSetHostMapping) == (b->descriptorSetHostMapping))) {
19840         onFail("a->descriptorSetHostMapping (Error: Value not equal)");
19841     };
19842 }
19843 
checkEqual_VkDescriptorSetBindingReferenceVALVE(const VkDescriptorSetBindingReferenceVALVE * a,const VkDescriptorSetBindingReferenceVALVE * b,OnFailCompareFunc onFail)19844 void checkEqual_VkDescriptorSetBindingReferenceVALVE(const VkDescriptorSetBindingReferenceVALVE* a,
19845                                                      const VkDescriptorSetBindingReferenceVALVE* b,
19846                                                      OnFailCompareFunc onFail) {
19847     if (!((a->sType) == (b->sType))) {
19848         onFail("a->sType (Error: Value not equal)");
19849     };
19850     if (a->pNext) {
19851         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19852     }
19853     if (!((a->descriptorSetLayout) == (b->descriptorSetLayout))) {
19854         onFail("a->descriptorSetLayout (Error: Value not equal)");
19855     };
19856     if (!((a->binding) == (b->binding))) {
19857         onFail("a->binding (Error: Value not equal)");
19858     };
19859 }
19860 
checkEqual_VkDescriptorSetLayoutHostMappingInfoVALVE(const VkDescriptorSetLayoutHostMappingInfoVALVE * a,const VkDescriptorSetLayoutHostMappingInfoVALVE * b,OnFailCompareFunc onFail)19861 void checkEqual_VkDescriptorSetLayoutHostMappingInfoVALVE(
19862     const VkDescriptorSetLayoutHostMappingInfoVALVE* a,
19863     const VkDescriptorSetLayoutHostMappingInfoVALVE* b, OnFailCompareFunc onFail) {
19864     if (!((a->sType) == (b->sType))) {
19865         onFail("a->sType (Error: Value not equal)");
19866     };
19867     if (a->pNext) {
19868         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19869     }
19870     if (!((a->descriptorOffset) == (b->descriptorOffset))) {
19871         onFail("a->descriptorOffset (Error: Value not equal)");
19872     };
19873     if (!((a->descriptorSize) == (b->descriptorSize))) {
19874         onFail("a->descriptorSize (Error: Value not equal)");
19875     };
19876 }
19877 
19878 #endif
19879 #ifdef VK_EXT_depth_clamp_zero_one
checkEqual_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT * a,const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT * b,OnFailCompareFunc onFail)19880 void checkEqual_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
19881     const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* a,
19882     const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* b, OnFailCompareFunc onFail) {
19883     if (!((a->sType) == (b->sType))) {
19884         onFail("a->sType (Error: Value not equal)");
19885     };
19886     if (a->pNext) {
19887         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19888     }
19889     if (!((a->depthClampZeroOne) == (b->depthClampZeroOne))) {
19890         onFail("a->depthClampZeroOne (Error: Value not equal)");
19891     };
19892 }
19893 
19894 #endif
19895 #ifdef VK_EXT_non_seamless_cube_map
checkEqual_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT * a,const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT * b,OnFailCompareFunc onFail)19896 void checkEqual_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
19897     const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* a,
19898     const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* b, OnFailCompareFunc onFail) {
19899     if (!((a->sType) == (b->sType))) {
19900         onFail("a->sType (Error: Value not equal)");
19901     };
19902     if (a->pNext) {
19903         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19904     }
19905     if (!((a->nonSeamlessCubeMap) == (b->nonSeamlessCubeMap))) {
19906         onFail("a->nonSeamlessCubeMap (Error: Value not equal)");
19907     };
19908 }
19909 
19910 #endif
19911 #ifdef VK_QCOM_fragment_density_map_offset
checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM * a,const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM * b,OnFailCompareFunc onFail)19912 void checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
19913     const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* a,
19914     const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* b, OnFailCompareFunc onFail) {
19915     if (!((a->sType) == (b->sType))) {
19916         onFail("a->sType (Error: Value not equal)");
19917     };
19918     if (a->pNext) {
19919         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19920     }
19921     if (!((a->fragmentDensityMapOffset) == (b->fragmentDensityMapOffset))) {
19922         onFail("a->fragmentDensityMapOffset (Error: Value not equal)");
19923     };
19924 }
19925 
checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM * a,const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM * b,OnFailCompareFunc onFail)19926 void checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
19927     const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* a,
19928     const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* b, OnFailCompareFunc onFail) {
19929     if (!((a->sType) == (b->sType))) {
19930         onFail("a->sType (Error: Value not equal)");
19931     };
19932     if (a->pNext) {
19933         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19934     }
19935     checkEqual_VkExtent2D(&a->fragmentDensityOffsetGranularity,
19936                           &b->fragmentDensityOffsetGranularity, onFail);
19937 }
19938 
checkEqual_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(const VkSubpassFragmentDensityMapOffsetEndInfoQCOM * a,const VkSubpassFragmentDensityMapOffsetEndInfoQCOM * b,OnFailCompareFunc onFail)19939 void checkEqual_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
19940     const VkSubpassFragmentDensityMapOffsetEndInfoQCOM* a,
19941     const VkSubpassFragmentDensityMapOffsetEndInfoQCOM* b, OnFailCompareFunc onFail) {
19942     if (!((a->sType) == (b->sType))) {
19943         onFail("a->sType (Error: Value not equal)");
19944     };
19945     if (a->pNext) {
19946         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
19947     }
19948     if (!((a->fragmentDensityOffsetCount) == (b->fragmentDensityOffsetCount))) {
19949         onFail("a->fragmentDensityOffsetCount (Error: Value not equal)");
19950     };
19951     if ((a->pFragmentDensityOffsets) && (b->pFragmentDensityOffsets)) {
19952         if (!((a->fragmentDensityOffsetCount) == (b->fragmentDensityOffsetCount))) {
19953             onFail("a->pFragmentDensityOffsets (Error: Lengths not equal)");
19954         };
19955         if ((a->fragmentDensityOffsetCount) == (b->fragmentDensityOffsetCount)) {
19956             if (a) {
19957                 for (uint32_t i = 0; i < (uint32_t)a->fragmentDensityOffsetCount; ++i) {
19958                     checkEqual_VkOffset2D(a->pFragmentDensityOffsets + i,
19959                                           b->pFragmentDensityOffsets + i, onFail);
19960                 }
19961             }
19962         }
19963     }
19964 }
19965 
19966 #endif
19967 #ifdef VK_NV_copy_memory_indirect
checkEqual_VkCopyMemoryIndirectCommandNV(const VkCopyMemoryIndirectCommandNV * a,const VkCopyMemoryIndirectCommandNV * b,OnFailCompareFunc onFail)19968 void checkEqual_VkCopyMemoryIndirectCommandNV(const VkCopyMemoryIndirectCommandNV* a,
19969                                               const VkCopyMemoryIndirectCommandNV* b,
19970                                               OnFailCompareFunc onFail) {
19971     if (!((a->srcAddress) == (b->srcAddress))) {
19972         onFail("a->srcAddress (Error: Value not equal)");
19973     };
19974     if (!((a->dstAddress) == (b->dstAddress))) {
19975         onFail("a->dstAddress (Error: Value not equal)");
19976     };
19977     if (!((a->size) == (b->size))) {
19978         onFail("a->size (Error: Value not equal)");
19979     };
19980 }
19981 
checkEqual_VkCopyMemoryToImageIndirectCommandNV(const VkCopyMemoryToImageIndirectCommandNV * a,const VkCopyMemoryToImageIndirectCommandNV * b,OnFailCompareFunc onFail)19982 void checkEqual_VkCopyMemoryToImageIndirectCommandNV(const VkCopyMemoryToImageIndirectCommandNV* a,
19983                                                      const VkCopyMemoryToImageIndirectCommandNV* b,
19984                                                      OnFailCompareFunc onFail) {
19985     if (!((a->srcAddress) == (b->srcAddress))) {
19986         onFail("a->srcAddress (Error: Value not equal)");
19987     };
19988     if (!((a->bufferRowLength) == (b->bufferRowLength))) {
19989         onFail("a->bufferRowLength (Error: Value not equal)");
19990     };
19991     if (!((a->bufferImageHeight) == (b->bufferImageHeight))) {
19992         onFail("a->bufferImageHeight (Error: Value not equal)");
19993     };
19994     checkEqual_VkImageSubresourceLayers(&a->imageSubresource, &b->imageSubresource, onFail);
19995     checkEqual_VkOffset3D(&a->imageOffset, &b->imageOffset, onFail);
19996     checkEqual_VkExtent3D(&a->imageExtent, &b->imageExtent, onFail);
19997 }
19998 
checkEqual_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV * a,const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV * b,OnFailCompareFunc onFail)19999 void checkEqual_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
20000     const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* a,
20001     const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* b, OnFailCompareFunc onFail) {
20002     if (!((a->sType) == (b->sType))) {
20003         onFail("a->sType (Error: Value not equal)");
20004     };
20005     if (a->pNext) {
20006         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20007     }
20008     if (!((a->indirectCopy) == (b->indirectCopy))) {
20009         onFail("a->indirectCopy (Error: Value not equal)");
20010     };
20011 }
20012 
checkEqual_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV * a,const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV * b,OnFailCompareFunc onFail)20013 void checkEqual_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
20014     const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* a,
20015     const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* b, OnFailCompareFunc onFail) {
20016     if (!((a->sType) == (b->sType))) {
20017         onFail("a->sType (Error: Value not equal)");
20018     };
20019     if (a->pNext) {
20020         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20021     }
20022     if (!((a->supportedQueues) == (b->supportedQueues))) {
20023         onFail("a->supportedQueues (Error: Value not equal)");
20024     };
20025 }
20026 
20027 #endif
20028 #ifdef VK_NV_memory_decompression
checkEqual_VkDecompressMemoryRegionNV(const VkDecompressMemoryRegionNV * a,const VkDecompressMemoryRegionNV * b,OnFailCompareFunc onFail)20029 void checkEqual_VkDecompressMemoryRegionNV(const VkDecompressMemoryRegionNV* a,
20030                                            const VkDecompressMemoryRegionNV* b,
20031                                            OnFailCompareFunc onFail) {
20032     if (!((a->srcAddress) == (b->srcAddress))) {
20033         onFail("a->srcAddress (Error: Value not equal)");
20034     };
20035     if (!((a->dstAddress) == (b->dstAddress))) {
20036         onFail("a->dstAddress (Error: Value not equal)");
20037     };
20038     if (!((a->compressedSize) == (b->compressedSize))) {
20039         onFail("a->compressedSize (Error: Value not equal)");
20040     };
20041     if (!((a->decompressedSize) == (b->decompressedSize))) {
20042         onFail("a->decompressedSize (Error: Value not equal)");
20043     };
20044     if (!((a->decompressionMethod) == (b->decompressionMethod))) {
20045         onFail("a->decompressionMethod (Error: Value not equal)");
20046     };
20047 }
20048 
checkEqual_VkPhysicalDeviceMemoryDecompressionFeaturesNV(const VkPhysicalDeviceMemoryDecompressionFeaturesNV * a,const VkPhysicalDeviceMemoryDecompressionFeaturesNV * b,OnFailCompareFunc onFail)20049 void checkEqual_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
20050     const VkPhysicalDeviceMemoryDecompressionFeaturesNV* a,
20051     const VkPhysicalDeviceMemoryDecompressionFeaturesNV* b, OnFailCompareFunc onFail) {
20052     if (!((a->sType) == (b->sType))) {
20053         onFail("a->sType (Error: Value not equal)");
20054     };
20055     if (a->pNext) {
20056         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20057     }
20058     if (!((a->memoryDecompression) == (b->memoryDecompression))) {
20059         onFail("a->memoryDecompression (Error: Value not equal)");
20060     };
20061 }
20062 
checkEqual_VkPhysicalDeviceMemoryDecompressionPropertiesNV(const VkPhysicalDeviceMemoryDecompressionPropertiesNV * a,const VkPhysicalDeviceMemoryDecompressionPropertiesNV * b,OnFailCompareFunc onFail)20063 void checkEqual_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
20064     const VkPhysicalDeviceMemoryDecompressionPropertiesNV* a,
20065     const VkPhysicalDeviceMemoryDecompressionPropertiesNV* b, OnFailCompareFunc onFail) {
20066     if (!((a->sType) == (b->sType))) {
20067         onFail("a->sType (Error: Value not equal)");
20068     };
20069     if (a->pNext) {
20070         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20071     }
20072     if (!((a->decompressionMethods) == (b->decompressionMethods))) {
20073         onFail("a->decompressionMethods (Error: Value not equal)");
20074     };
20075     if (!((a->maxDecompressionIndirectCount) == (b->maxDecompressionIndirectCount))) {
20076         onFail("a->maxDecompressionIndirectCount (Error: Value not equal)");
20077     };
20078 }
20079 
20080 #endif
20081 #ifdef VK_NV_linear_color_attachment
checkEqual_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(const VkPhysicalDeviceLinearColorAttachmentFeaturesNV * a,const VkPhysicalDeviceLinearColorAttachmentFeaturesNV * b,OnFailCompareFunc onFail)20082 void checkEqual_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
20083     const VkPhysicalDeviceLinearColorAttachmentFeaturesNV* a,
20084     const VkPhysicalDeviceLinearColorAttachmentFeaturesNV* b, OnFailCompareFunc onFail) {
20085     if (!((a->sType) == (b->sType))) {
20086         onFail("a->sType (Error: Value not equal)");
20087     };
20088     if (a->pNext) {
20089         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20090     }
20091     if (!((a->linearColorAttachment) == (b->linearColorAttachment))) {
20092         onFail("a->linearColorAttachment (Error: Value not equal)");
20093     };
20094 }
20095 
20096 #endif
20097 #ifdef VK_GOOGLE_surfaceless_query
20098 #endif
20099 #ifdef VK_EXT_image_compression_control_swapchain
checkEqual_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * a,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * b,OnFailCompareFunc onFail)20100 void checkEqual_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
20101     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* a,
20102     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* b,
20103     OnFailCompareFunc onFail) {
20104     if (!((a->sType) == (b->sType))) {
20105         onFail("a->sType (Error: Value not equal)");
20106     };
20107     if (a->pNext) {
20108         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20109     }
20110     if (!((a->imageCompressionControlSwapchain) == (b->imageCompressionControlSwapchain))) {
20111         onFail("a->imageCompressionControlSwapchain (Error: Value not equal)");
20112     };
20113 }
20114 
20115 #endif
20116 #ifdef VK_QCOM_image_processing
checkEqual_VkImageViewSampleWeightCreateInfoQCOM(const VkImageViewSampleWeightCreateInfoQCOM * a,const VkImageViewSampleWeightCreateInfoQCOM * b,OnFailCompareFunc onFail)20117 void checkEqual_VkImageViewSampleWeightCreateInfoQCOM(
20118     const VkImageViewSampleWeightCreateInfoQCOM* a, const VkImageViewSampleWeightCreateInfoQCOM* b,
20119     OnFailCompareFunc onFail) {
20120     if (!((a->sType) == (b->sType))) {
20121         onFail("a->sType (Error: Value not equal)");
20122     };
20123     if (a->pNext) {
20124         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20125     }
20126     checkEqual_VkOffset2D(&a->filterCenter, &b->filterCenter, onFail);
20127     checkEqual_VkExtent2D(&a->filterSize, &b->filterSize, onFail);
20128     if (!((a->numPhases) == (b->numPhases))) {
20129         onFail("a->numPhases (Error: Value not equal)");
20130     };
20131 }
20132 
checkEqual_VkPhysicalDeviceImageProcessingFeaturesQCOM(const VkPhysicalDeviceImageProcessingFeaturesQCOM * a,const VkPhysicalDeviceImageProcessingFeaturesQCOM * b,OnFailCompareFunc onFail)20133 void checkEqual_VkPhysicalDeviceImageProcessingFeaturesQCOM(
20134     const VkPhysicalDeviceImageProcessingFeaturesQCOM* a,
20135     const VkPhysicalDeviceImageProcessingFeaturesQCOM* b, OnFailCompareFunc onFail) {
20136     if (!((a->sType) == (b->sType))) {
20137         onFail("a->sType (Error: Value not equal)");
20138     };
20139     if (a->pNext) {
20140         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20141     }
20142     if (!((a->textureSampleWeighted) == (b->textureSampleWeighted))) {
20143         onFail("a->textureSampleWeighted (Error: Value not equal)");
20144     };
20145     if (!((a->textureBoxFilter) == (b->textureBoxFilter))) {
20146         onFail("a->textureBoxFilter (Error: Value not equal)");
20147     };
20148     if (!((a->textureBlockMatch) == (b->textureBlockMatch))) {
20149         onFail("a->textureBlockMatch (Error: Value not equal)");
20150     };
20151 }
20152 
checkEqual_VkPhysicalDeviceImageProcessingPropertiesQCOM(const VkPhysicalDeviceImageProcessingPropertiesQCOM * a,const VkPhysicalDeviceImageProcessingPropertiesQCOM * b,OnFailCompareFunc onFail)20153 void checkEqual_VkPhysicalDeviceImageProcessingPropertiesQCOM(
20154     const VkPhysicalDeviceImageProcessingPropertiesQCOM* a,
20155     const VkPhysicalDeviceImageProcessingPropertiesQCOM* b, OnFailCompareFunc onFail) {
20156     if (!((a->sType) == (b->sType))) {
20157         onFail("a->sType (Error: Value not equal)");
20158     };
20159     if (a->pNext) {
20160         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20161     }
20162     if (!((a->maxWeightFilterPhases) == (b->maxWeightFilterPhases))) {
20163         onFail("a->maxWeightFilterPhases (Error: Value not equal)");
20164     };
20165     checkEqual_VkExtent2D(&a->maxWeightFilterDimension, &b->maxWeightFilterDimension, onFail);
20166     checkEqual_VkExtent2D(&a->maxBlockMatchRegion, &b->maxBlockMatchRegion, onFail);
20167     checkEqual_VkExtent2D(&a->maxBoxFilterBlockSize, &b->maxBoxFilterBlockSize, onFail);
20168 }
20169 
20170 #endif
20171 #ifdef VK_EXT_extended_dynamic_state3
checkEqual_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT * a,const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT * b,OnFailCompareFunc onFail)20172 void checkEqual_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
20173     const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* a,
20174     const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* b, OnFailCompareFunc onFail) {
20175     if (!((a->sType) == (b->sType))) {
20176         onFail("a->sType (Error: Value not equal)");
20177     };
20178     if (a->pNext) {
20179         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20180     }
20181     if (!((a->extendedDynamicState3TessellationDomainOrigin) ==
20182           (b->extendedDynamicState3TessellationDomainOrigin))) {
20183         onFail("a->extendedDynamicState3TessellationDomainOrigin (Error: Value not equal)");
20184     };
20185     if (!((a->extendedDynamicState3DepthClampEnable) ==
20186           (b->extendedDynamicState3DepthClampEnable))) {
20187         onFail("a->extendedDynamicState3DepthClampEnable (Error: Value not equal)");
20188     };
20189     if (!((a->extendedDynamicState3PolygonMode) == (b->extendedDynamicState3PolygonMode))) {
20190         onFail("a->extendedDynamicState3PolygonMode (Error: Value not equal)");
20191     };
20192     if (!((a->extendedDynamicState3RasterizationSamples) ==
20193           (b->extendedDynamicState3RasterizationSamples))) {
20194         onFail("a->extendedDynamicState3RasterizationSamples (Error: Value not equal)");
20195     };
20196     if (!((a->extendedDynamicState3SampleMask) == (b->extendedDynamicState3SampleMask))) {
20197         onFail("a->extendedDynamicState3SampleMask (Error: Value not equal)");
20198     };
20199     if (!((a->extendedDynamicState3AlphaToCoverageEnable) ==
20200           (b->extendedDynamicState3AlphaToCoverageEnable))) {
20201         onFail("a->extendedDynamicState3AlphaToCoverageEnable (Error: Value not equal)");
20202     };
20203     if (!((a->extendedDynamicState3AlphaToOneEnable) ==
20204           (b->extendedDynamicState3AlphaToOneEnable))) {
20205         onFail("a->extendedDynamicState3AlphaToOneEnable (Error: Value not equal)");
20206     };
20207     if (!((a->extendedDynamicState3LogicOpEnable) == (b->extendedDynamicState3LogicOpEnable))) {
20208         onFail("a->extendedDynamicState3LogicOpEnable (Error: Value not equal)");
20209     };
20210     if (!((a->extendedDynamicState3ColorBlendEnable) ==
20211           (b->extendedDynamicState3ColorBlendEnable))) {
20212         onFail("a->extendedDynamicState3ColorBlendEnable (Error: Value not equal)");
20213     };
20214     if (!((a->extendedDynamicState3ColorBlendEquation) ==
20215           (b->extendedDynamicState3ColorBlendEquation))) {
20216         onFail("a->extendedDynamicState3ColorBlendEquation (Error: Value not equal)");
20217     };
20218     if (!((a->extendedDynamicState3ColorWriteMask) == (b->extendedDynamicState3ColorWriteMask))) {
20219         onFail("a->extendedDynamicState3ColorWriteMask (Error: Value not equal)");
20220     };
20221     if (!((a->extendedDynamicState3RasterizationStream) ==
20222           (b->extendedDynamicState3RasterizationStream))) {
20223         onFail("a->extendedDynamicState3RasterizationStream (Error: Value not equal)");
20224     };
20225     if (!((a->extendedDynamicState3ConservativeRasterizationMode) ==
20226           (b->extendedDynamicState3ConservativeRasterizationMode))) {
20227         onFail("a->extendedDynamicState3ConservativeRasterizationMode (Error: Value not equal)");
20228     };
20229     if (!((a->extendedDynamicState3ExtraPrimitiveOverestimationSize) ==
20230           (b->extendedDynamicState3ExtraPrimitiveOverestimationSize))) {
20231         onFail("a->extendedDynamicState3ExtraPrimitiveOverestimationSize (Error: Value not equal)");
20232     };
20233     if (!((a->extendedDynamicState3DepthClipEnable) == (b->extendedDynamicState3DepthClipEnable))) {
20234         onFail("a->extendedDynamicState3DepthClipEnable (Error: Value not equal)");
20235     };
20236     if (!((a->extendedDynamicState3SampleLocationsEnable) ==
20237           (b->extendedDynamicState3SampleLocationsEnable))) {
20238         onFail("a->extendedDynamicState3SampleLocationsEnable (Error: Value not equal)");
20239     };
20240     if (!((a->extendedDynamicState3ColorBlendAdvanced) ==
20241           (b->extendedDynamicState3ColorBlendAdvanced))) {
20242         onFail("a->extendedDynamicState3ColorBlendAdvanced (Error: Value not equal)");
20243     };
20244     if (!((a->extendedDynamicState3ProvokingVertexMode) ==
20245           (b->extendedDynamicState3ProvokingVertexMode))) {
20246         onFail("a->extendedDynamicState3ProvokingVertexMode (Error: Value not equal)");
20247     };
20248     if (!((a->extendedDynamicState3LineRasterizationMode) ==
20249           (b->extendedDynamicState3LineRasterizationMode))) {
20250         onFail("a->extendedDynamicState3LineRasterizationMode (Error: Value not equal)");
20251     };
20252     if (!((a->extendedDynamicState3LineStippleEnable) ==
20253           (b->extendedDynamicState3LineStippleEnable))) {
20254         onFail("a->extendedDynamicState3LineStippleEnable (Error: Value not equal)");
20255     };
20256     if (!((a->extendedDynamicState3DepthClipNegativeOneToOne) ==
20257           (b->extendedDynamicState3DepthClipNegativeOneToOne))) {
20258         onFail("a->extendedDynamicState3DepthClipNegativeOneToOne (Error: Value not equal)");
20259     };
20260     if (!((a->extendedDynamicState3ViewportWScalingEnable) ==
20261           (b->extendedDynamicState3ViewportWScalingEnable))) {
20262         onFail("a->extendedDynamicState3ViewportWScalingEnable (Error: Value not equal)");
20263     };
20264     if (!((a->extendedDynamicState3ViewportSwizzle) == (b->extendedDynamicState3ViewportSwizzle))) {
20265         onFail("a->extendedDynamicState3ViewportSwizzle (Error: Value not equal)");
20266     };
20267     if (!((a->extendedDynamicState3CoverageToColorEnable) ==
20268           (b->extendedDynamicState3CoverageToColorEnable))) {
20269         onFail("a->extendedDynamicState3CoverageToColorEnable (Error: Value not equal)");
20270     };
20271     if (!((a->extendedDynamicState3CoverageToColorLocation) ==
20272           (b->extendedDynamicState3CoverageToColorLocation))) {
20273         onFail("a->extendedDynamicState3CoverageToColorLocation (Error: Value not equal)");
20274     };
20275     if (!((a->extendedDynamicState3CoverageModulationMode) ==
20276           (b->extendedDynamicState3CoverageModulationMode))) {
20277         onFail("a->extendedDynamicState3CoverageModulationMode (Error: Value not equal)");
20278     };
20279     if (!((a->extendedDynamicState3CoverageModulationTableEnable) ==
20280           (b->extendedDynamicState3CoverageModulationTableEnable))) {
20281         onFail("a->extendedDynamicState3CoverageModulationTableEnable (Error: Value not equal)");
20282     };
20283     if (!((a->extendedDynamicState3CoverageModulationTable) ==
20284           (b->extendedDynamicState3CoverageModulationTable))) {
20285         onFail("a->extendedDynamicState3CoverageModulationTable (Error: Value not equal)");
20286     };
20287     if (!((a->extendedDynamicState3CoverageReductionMode) ==
20288           (b->extendedDynamicState3CoverageReductionMode))) {
20289         onFail("a->extendedDynamicState3CoverageReductionMode (Error: Value not equal)");
20290     };
20291     if (!((a->extendedDynamicState3RepresentativeFragmentTestEnable) ==
20292           (b->extendedDynamicState3RepresentativeFragmentTestEnable))) {
20293         onFail("a->extendedDynamicState3RepresentativeFragmentTestEnable (Error: Value not equal)");
20294     };
20295     if (!((a->extendedDynamicState3ShadingRateImageEnable) ==
20296           (b->extendedDynamicState3ShadingRateImageEnable))) {
20297         onFail("a->extendedDynamicState3ShadingRateImageEnable (Error: Value not equal)");
20298     };
20299 }
20300 
checkEqual_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT * a,const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT * b,OnFailCompareFunc onFail)20301 void checkEqual_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
20302     const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* a,
20303     const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* b, OnFailCompareFunc onFail) {
20304     if (!((a->sType) == (b->sType))) {
20305         onFail("a->sType (Error: Value not equal)");
20306     };
20307     if (a->pNext) {
20308         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20309     }
20310     if (!((a->dynamicPrimitiveTopologyUnrestricted) == (b->dynamicPrimitiveTopologyUnrestricted))) {
20311         onFail("a->dynamicPrimitiveTopologyUnrestricted (Error: Value not equal)");
20312     };
20313 }
20314 
checkEqual_VkColorBlendEquationEXT(const VkColorBlendEquationEXT * a,const VkColorBlendEquationEXT * b,OnFailCompareFunc onFail)20315 void checkEqual_VkColorBlendEquationEXT(const VkColorBlendEquationEXT* a,
20316                                         const VkColorBlendEquationEXT* b,
20317                                         OnFailCompareFunc onFail) {
20318     if (!((a->srcColorBlendFactor) == (b->srcColorBlendFactor))) {
20319         onFail("a->srcColorBlendFactor (Error: Value not equal)");
20320     };
20321     if (!((a->dstColorBlendFactor) == (b->dstColorBlendFactor))) {
20322         onFail("a->dstColorBlendFactor (Error: Value not equal)");
20323     };
20324     if (!((a->colorBlendOp) == (b->colorBlendOp))) {
20325         onFail("a->colorBlendOp (Error: Value not equal)");
20326     };
20327     if (!((a->srcAlphaBlendFactor) == (b->srcAlphaBlendFactor))) {
20328         onFail("a->srcAlphaBlendFactor (Error: Value not equal)");
20329     };
20330     if (!((a->dstAlphaBlendFactor) == (b->dstAlphaBlendFactor))) {
20331         onFail("a->dstAlphaBlendFactor (Error: Value not equal)");
20332     };
20333     if (!((a->alphaBlendOp) == (b->alphaBlendOp))) {
20334         onFail("a->alphaBlendOp (Error: Value not equal)");
20335     };
20336 }
20337 
checkEqual_VkColorBlendAdvancedEXT(const VkColorBlendAdvancedEXT * a,const VkColorBlendAdvancedEXT * b,OnFailCompareFunc onFail)20338 void checkEqual_VkColorBlendAdvancedEXT(const VkColorBlendAdvancedEXT* a,
20339                                         const VkColorBlendAdvancedEXT* b,
20340                                         OnFailCompareFunc onFail) {
20341     if (!((a->advancedBlendOp) == (b->advancedBlendOp))) {
20342         onFail("a->advancedBlendOp (Error: Value not equal)");
20343     };
20344     if (!((a->srcPremultiplied) == (b->srcPremultiplied))) {
20345         onFail("a->srcPremultiplied (Error: Value not equal)");
20346     };
20347     if (!((a->dstPremultiplied) == (b->dstPremultiplied))) {
20348         onFail("a->dstPremultiplied (Error: Value not equal)");
20349     };
20350     if (!((a->blendOverlap) == (b->blendOverlap))) {
20351         onFail("a->blendOverlap (Error: Value not equal)");
20352     };
20353     if (!((a->clampResults) == (b->clampResults))) {
20354         onFail("a->clampResults (Error: Value not equal)");
20355     };
20356 }
20357 
20358 #endif
20359 #ifdef VK_EXT_subpass_merge_feedback
checkEqual_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT * a,const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT * b,OnFailCompareFunc onFail)20360 void checkEqual_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
20361     const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* a,
20362     const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* b, OnFailCompareFunc onFail) {
20363     if (!((a->sType) == (b->sType))) {
20364         onFail("a->sType (Error: Value not equal)");
20365     };
20366     if (a->pNext) {
20367         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20368     }
20369     if (!((a->subpassMergeFeedback) == (b->subpassMergeFeedback))) {
20370         onFail("a->subpassMergeFeedback (Error: Value not equal)");
20371     };
20372 }
20373 
checkEqual_VkRenderPassCreationControlEXT(const VkRenderPassCreationControlEXT * a,const VkRenderPassCreationControlEXT * b,OnFailCompareFunc onFail)20374 void checkEqual_VkRenderPassCreationControlEXT(const VkRenderPassCreationControlEXT* a,
20375                                                const VkRenderPassCreationControlEXT* b,
20376                                                OnFailCompareFunc onFail) {
20377     if (!((a->sType) == (b->sType))) {
20378         onFail("a->sType (Error: Value not equal)");
20379     };
20380     if (a->pNext) {
20381         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20382     }
20383     if (!((a->disallowMerging) == (b->disallowMerging))) {
20384         onFail("a->disallowMerging (Error: Value not equal)");
20385     };
20386 }
20387 
checkEqual_VkRenderPassCreationFeedbackInfoEXT(const VkRenderPassCreationFeedbackInfoEXT * a,const VkRenderPassCreationFeedbackInfoEXT * b,OnFailCompareFunc onFail)20388 void checkEqual_VkRenderPassCreationFeedbackInfoEXT(const VkRenderPassCreationFeedbackInfoEXT* a,
20389                                                     const VkRenderPassCreationFeedbackInfoEXT* b,
20390                                                     OnFailCompareFunc onFail) {
20391     if (!((a->postMergeSubpassCount) == (b->postMergeSubpassCount))) {
20392         onFail("a->postMergeSubpassCount (Error: Value not equal)");
20393     };
20394 }
20395 
checkEqual_VkRenderPassCreationFeedbackCreateInfoEXT(const VkRenderPassCreationFeedbackCreateInfoEXT * a,const VkRenderPassCreationFeedbackCreateInfoEXT * b,OnFailCompareFunc onFail)20396 void checkEqual_VkRenderPassCreationFeedbackCreateInfoEXT(
20397     const VkRenderPassCreationFeedbackCreateInfoEXT* a,
20398     const VkRenderPassCreationFeedbackCreateInfoEXT* b, OnFailCompareFunc onFail) {
20399     if (!((a->sType) == (b->sType))) {
20400         onFail("a->sType (Error: Value not equal)");
20401     };
20402     if (a->pNext) {
20403         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20404     }
20405     if ((a->pRenderPassFeedback) && (b->pRenderPassFeedback)) {
20406         checkEqual_VkRenderPassCreationFeedbackInfoEXT(a->pRenderPassFeedback,
20407                                                        b->pRenderPassFeedback, onFail);
20408     }
20409 }
20410 
checkEqual_VkRenderPassSubpassFeedbackInfoEXT(const VkRenderPassSubpassFeedbackInfoEXT * a,const VkRenderPassSubpassFeedbackInfoEXT * b,OnFailCompareFunc onFail)20411 void checkEqual_VkRenderPassSubpassFeedbackInfoEXT(const VkRenderPassSubpassFeedbackInfoEXT* a,
20412                                                    const VkRenderPassSubpassFeedbackInfoEXT* b,
20413                                                    OnFailCompareFunc onFail) {
20414     if (!((a->subpassMergeStatus) == (b->subpassMergeStatus))) {
20415         onFail("a->subpassMergeStatus (Error: Value not equal)");
20416     };
20417     if (!((memcmp(a->description, b->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)) == 0))) {
20418         onFail("a->description (Error: Unequal static array)");
20419     };
20420     if (!((a->postMergeIndex) == (b->postMergeIndex))) {
20421         onFail("a->postMergeIndex (Error: Value not equal)");
20422     };
20423 }
20424 
checkEqual_VkRenderPassSubpassFeedbackCreateInfoEXT(const VkRenderPassSubpassFeedbackCreateInfoEXT * a,const VkRenderPassSubpassFeedbackCreateInfoEXT * b,OnFailCompareFunc onFail)20425 void checkEqual_VkRenderPassSubpassFeedbackCreateInfoEXT(
20426     const VkRenderPassSubpassFeedbackCreateInfoEXT* a,
20427     const VkRenderPassSubpassFeedbackCreateInfoEXT* b, OnFailCompareFunc onFail) {
20428     if (!((a->sType) == (b->sType))) {
20429         onFail("a->sType (Error: Value not equal)");
20430     };
20431     if (a->pNext) {
20432         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20433     }
20434     if ((a->pSubpassFeedback) && (b->pSubpassFeedback)) {
20435         checkEqual_VkRenderPassSubpassFeedbackInfoEXT(a->pSubpassFeedback, b->pSubpassFeedback,
20436                                                       onFail);
20437     }
20438 }
20439 
20440 #endif
20441 #ifdef VK_LUNARG_direct_driver_loading
checkEqual_VkDirectDriverLoadingInfoLUNARG(const VkDirectDriverLoadingInfoLUNARG * a,const VkDirectDriverLoadingInfoLUNARG * b,OnFailCompareFunc onFail)20442 void checkEqual_VkDirectDriverLoadingInfoLUNARG(const VkDirectDriverLoadingInfoLUNARG* a,
20443                                                 const VkDirectDriverLoadingInfoLUNARG* b,
20444                                                 OnFailCompareFunc onFail) {
20445     if (!((a->sType) == (b->sType))) {
20446         onFail("a->sType (Error: Value not equal)");
20447     };
20448     if (a->pNext) {
20449         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20450     }
20451     if (!((a->flags) == (b->flags))) {
20452         onFail("a->flags (Error: Value not equal)");
20453     };
20454     if (!((a->pfnGetInstanceProcAddr) == (b->pfnGetInstanceProcAddr))) {
20455         onFail("a->pfnGetInstanceProcAddr (Error: Value not equal)");
20456     };
20457 }
20458 
checkEqual_VkDirectDriverLoadingListLUNARG(const VkDirectDriverLoadingListLUNARG * a,const VkDirectDriverLoadingListLUNARG * b,OnFailCompareFunc onFail)20459 void checkEqual_VkDirectDriverLoadingListLUNARG(const VkDirectDriverLoadingListLUNARG* a,
20460                                                 const VkDirectDriverLoadingListLUNARG* b,
20461                                                 OnFailCompareFunc onFail) {
20462     if (!((a->sType) == (b->sType))) {
20463         onFail("a->sType (Error: Value not equal)");
20464     };
20465     if (a->pNext) {
20466         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20467     }
20468     if (!((a->mode) == (b->mode))) {
20469         onFail("a->mode (Error: Value not equal)");
20470     };
20471     if (!((a->driverCount) == (b->driverCount))) {
20472         onFail("a->driverCount (Error: Value not equal)");
20473     };
20474     if ((a->pDrivers) && (b->pDrivers)) {
20475         if (!((a->driverCount) == (b->driverCount))) {
20476             onFail("a->pDrivers (Error: Lengths not equal)");
20477         };
20478         if ((a->driverCount) == (b->driverCount)) {
20479             if (a) {
20480                 for (uint32_t i = 0; i < (uint32_t)a->driverCount; ++i) {
20481                     checkEqual_VkDirectDriverLoadingInfoLUNARG(a->pDrivers + i, b->pDrivers + i,
20482                                                                onFail);
20483                 }
20484             }
20485         }
20486     }
20487 }
20488 
20489 #endif
20490 #ifdef VK_EXT_shader_module_identifier
checkEqual_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT * a,const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT * b,OnFailCompareFunc onFail)20491 void checkEqual_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
20492     const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* a,
20493     const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* b, OnFailCompareFunc onFail) {
20494     if (!((a->sType) == (b->sType))) {
20495         onFail("a->sType (Error: Value not equal)");
20496     };
20497     if (a->pNext) {
20498         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20499     }
20500     if (!((a->shaderModuleIdentifier) == (b->shaderModuleIdentifier))) {
20501         onFail("a->shaderModuleIdentifier (Error: Value not equal)");
20502     };
20503 }
20504 
checkEqual_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT * a,const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT * b,OnFailCompareFunc onFail)20505 void checkEqual_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
20506     const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* a,
20507     const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* b, OnFailCompareFunc onFail) {
20508     if (!((a->sType) == (b->sType))) {
20509         onFail("a->sType (Error: Value not equal)");
20510     };
20511     if (a->pNext) {
20512         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20513     }
20514     if (!((memcmp(a->shaderModuleIdentifierAlgorithmUUID, b->shaderModuleIdentifierAlgorithmUUID,
20515                   VK_UUID_SIZE * sizeof(uint8_t)) == 0))) {
20516         onFail("a->shaderModuleIdentifierAlgorithmUUID (Error: Unequal static array)");
20517     };
20518 }
20519 
checkEqual_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(const VkPipelineShaderStageModuleIdentifierCreateInfoEXT * a,const VkPipelineShaderStageModuleIdentifierCreateInfoEXT * b,OnFailCompareFunc onFail)20520 void checkEqual_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
20521     const VkPipelineShaderStageModuleIdentifierCreateInfoEXT* a,
20522     const VkPipelineShaderStageModuleIdentifierCreateInfoEXT* b, OnFailCompareFunc onFail) {
20523     if (!((a->sType) == (b->sType))) {
20524         onFail("a->sType (Error: Value not equal)");
20525     };
20526     if (a->pNext) {
20527         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20528     }
20529     if (!((a->identifierSize) == (b->identifierSize))) {
20530         onFail("a->identifierSize (Error: Value not equal)");
20531     };
20532     if (!((a->identifierSize) == (b->identifierSize))) {
20533         onFail("a->pIdentifier (Error: Lengths not equal)");
20534     };
20535     if (!((memcmp(a->pIdentifier, b->pIdentifier, a->identifierSize * sizeof(const uint8_t)) ==
20536            0))) {
20537         onFail("a->pIdentifier (Error: Unequal dyn array)");
20538     };
20539 }
20540 
checkEqual_VkShaderModuleIdentifierEXT(const VkShaderModuleIdentifierEXT * a,const VkShaderModuleIdentifierEXT * b,OnFailCompareFunc onFail)20541 void checkEqual_VkShaderModuleIdentifierEXT(const VkShaderModuleIdentifierEXT* a,
20542                                             const VkShaderModuleIdentifierEXT* b,
20543                                             OnFailCompareFunc onFail) {
20544     if (!((a->sType) == (b->sType))) {
20545         onFail("a->sType (Error: Value not equal)");
20546     };
20547     if (a->pNext) {
20548         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20549     }
20550     if (!((a->identifierSize) == (b->identifierSize))) {
20551         onFail("a->identifierSize (Error: Value not equal)");
20552     };
20553     if (!((memcmp(a->identifier, b->identifier,
20554                   VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT * sizeof(uint8_t)) == 0))) {
20555         onFail("a->identifier (Error: Unequal static array)");
20556     };
20557 }
20558 
20559 #endif
20560 #ifdef VK_EXT_rasterization_order_attachment_access
20561 #endif
20562 #ifdef VK_NV_optical_flow
checkEqual_VkPhysicalDeviceOpticalFlowFeaturesNV(const VkPhysicalDeviceOpticalFlowFeaturesNV * a,const VkPhysicalDeviceOpticalFlowFeaturesNV * b,OnFailCompareFunc onFail)20563 void checkEqual_VkPhysicalDeviceOpticalFlowFeaturesNV(
20564     const VkPhysicalDeviceOpticalFlowFeaturesNV* a, const VkPhysicalDeviceOpticalFlowFeaturesNV* b,
20565     OnFailCompareFunc onFail) {
20566     if (!((a->sType) == (b->sType))) {
20567         onFail("a->sType (Error: Value not equal)");
20568     };
20569     if (a->pNext) {
20570         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20571     }
20572     if (!((a->opticalFlow) == (b->opticalFlow))) {
20573         onFail("a->opticalFlow (Error: Value not equal)");
20574     };
20575 }
20576 
checkEqual_VkPhysicalDeviceOpticalFlowPropertiesNV(const VkPhysicalDeviceOpticalFlowPropertiesNV * a,const VkPhysicalDeviceOpticalFlowPropertiesNV * b,OnFailCompareFunc onFail)20577 void checkEqual_VkPhysicalDeviceOpticalFlowPropertiesNV(
20578     const VkPhysicalDeviceOpticalFlowPropertiesNV* a,
20579     const VkPhysicalDeviceOpticalFlowPropertiesNV* b, OnFailCompareFunc onFail) {
20580     if (!((a->sType) == (b->sType))) {
20581         onFail("a->sType (Error: Value not equal)");
20582     };
20583     if (a->pNext) {
20584         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20585     }
20586     if (!((a->supportedOutputGridSizes) == (b->supportedOutputGridSizes))) {
20587         onFail("a->supportedOutputGridSizes (Error: Value not equal)");
20588     };
20589     if (!((a->supportedHintGridSizes) == (b->supportedHintGridSizes))) {
20590         onFail("a->supportedHintGridSizes (Error: Value not equal)");
20591     };
20592     if (!((a->hintSupported) == (b->hintSupported))) {
20593         onFail("a->hintSupported (Error: Value not equal)");
20594     };
20595     if (!((a->costSupported) == (b->costSupported))) {
20596         onFail("a->costSupported (Error: Value not equal)");
20597     };
20598     if (!((a->bidirectionalFlowSupported) == (b->bidirectionalFlowSupported))) {
20599         onFail("a->bidirectionalFlowSupported (Error: Value not equal)");
20600     };
20601     if (!((a->globalFlowSupported) == (b->globalFlowSupported))) {
20602         onFail("a->globalFlowSupported (Error: Value not equal)");
20603     };
20604     if (!((a->minWidth) == (b->minWidth))) {
20605         onFail("a->minWidth (Error: Value not equal)");
20606     };
20607     if (!((a->minHeight) == (b->minHeight))) {
20608         onFail("a->minHeight (Error: Value not equal)");
20609     };
20610     if (!((a->maxWidth) == (b->maxWidth))) {
20611         onFail("a->maxWidth (Error: Value not equal)");
20612     };
20613     if (!((a->maxHeight) == (b->maxHeight))) {
20614         onFail("a->maxHeight (Error: Value not equal)");
20615     };
20616     if (!((a->maxNumRegionsOfInterest) == (b->maxNumRegionsOfInterest))) {
20617         onFail("a->maxNumRegionsOfInterest (Error: Value not equal)");
20618     };
20619 }
20620 
checkEqual_VkOpticalFlowImageFormatInfoNV(const VkOpticalFlowImageFormatInfoNV * a,const VkOpticalFlowImageFormatInfoNV * b,OnFailCompareFunc onFail)20621 void checkEqual_VkOpticalFlowImageFormatInfoNV(const VkOpticalFlowImageFormatInfoNV* a,
20622                                                const VkOpticalFlowImageFormatInfoNV* b,
20623                                                OnFailCompareFunc onFail) {
20624     if (!((a->sType) == (b->sType))) {
20625         onFail("a->sType (Error: Value not equal)");
20626     };
20627     if (a->pNext) {
20628         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20629     }
20630     if (!((a->usage) == (b->usage))) {
20631         onFail("a->usage (Error: Value not equal)");
20632     };
20633 }
20634 
checkEqual_VkOpticalFlowImageFormatPropertiesNV(const VkOpticalFlowImageFormatPropertiesNV * a,const VkOpticalFlowImageFormatPropertiesNV * b,OnFailCompareFunc onFail)20635 void checkEqual_VkOpticalFlowImageFormatPropertiesNV(const VkOpticalFlowImageFormatPropertiesNV* a,
20636                                                      const VkOpticalFlowImageFormatPropertiesNV* b,
20637                                                      OnFailCompareFunc onFail) {
20638     if (!((a->sType) == (b->sType))) {
20639         onFail("a->sType (Error: Value not equal)");
20640     };
20641     if (a->pNext) {
20642         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20643     }
20644     if (!((a->format) == (b->format))) {
20645         onFail("a->format (Error: Value not equal)");
20646     };
20647 }
20648 
checkEqual_VkOpticalFlowSessionCreateInfoNV(const VkOpticalFlowSessionCreateInfoNV * a,const VkOpticalFlowSessionCreateInfoNV * b,OnFailCompareFunc onFail)20649 void checkEqual_VkOpticalFlowSessionCreateInfoNV(const VkOpticalFlowSessionCreateInfoNV* a,
20650                                                  const VkOpticalFlowSessionCreateInfoNV* b,
20651                                                  OnFailCompareFunc onFail) {
20652     if (!((a->sType) == (b->sType))) {
20653         onFail("a->sType (Error: Value not equal)");
20654     };
20655     if (a->pNext) {
20656         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20657     }
20658     if (!((a->width) == (b->width))) {
20659         onFail("a->width (Error: Value not equal)");
20660     };
20661     if (!((a->height) == (b->height))) {
20662         onFail("a->height (Error: Value not equal)");
20663     };
20664     if (!((a->imageFormat) == (b->imageFormat))) {
20665         onFail("a->imageFormat (Error: Value not equal)");
20666     };
20667     if (!((a->flowVectorFormat) == (b->flowVectorFormat))) {
20668         onFail("a->flowVectorFormat (Error: Value not equal)");
20669     };
20670     if (!((a->costFormat) == (b->costFormat))) {
20671         onFail("a->costFormat (Error: Value not equal)");
20672     };
20673     if (!((a->outputGridSize) == (b->outputGridSize))) {
20674         onFail("a->outputGridSize (Error: Value not equal)");
20675     };
20676     if (!((a->hintGridSize) == (b->hintGridSize))) {
20677         onFail("a->hintGridSize (Error: Value not equal)");
20678     };
20679     if (!((a->performanceLevel) == (b->performanceLevel))) {
20680         onFail("a->performanceLevel (Error: Value not equal)");
20681     };
20682     if (!((a->flags) == (b->flags))) {
20683         onFail("a->flags (Error: Value not equal)");
20684     };
20685 }
20686 
checkEqual_VkOpticalFlowSessionCreatePrivateDataInfoNV(const VkOpticalFlowSessionCreatePrivateDataInfoNV * a,const VkOpticalFlowSessionCreatePrivateDataInfoNV * b,OnFailCompareFunc onFail)20687 void checkEqual_VkOpticalFlowSessionCreatePrivateDataInfoNV(
20688     const VkOpticalFlowSessionCreatePrivateDataInfoNV* a,
20689     const VkOpticalFlowSessionCreatePrivateDataInfoNV* b, OnFailCompareFunc onFail) {
20690     if (!((a->sType) == (b->sType))) {
20691         onFail("a->sType (Error: Value not equal)");
20692     };
20693     if (a->pNext) {
20694         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20695     }
20696     if (!((a->id) == (b->id))) {
20697         onFail("a->id (Error: Value not equal)");
20698     };
20699     if (!((a->size) == (b->size))) {
20700         onFail("a->size (Error: Value not equal)");
20701     };
20702 }
20703 
checkEqual_VkOpticalFlowExecuteInfoNV(const VkOpticalFlowExecuteInfoNV * a,const VkOpticalFlowExecuteInfoNV * b,OnFailCompareFunc onFail)20704 void checkEqual_VkOpticalFlowExecuteInfoNV(const VkOpticalFlowExecuteInfoNV* a,
20705                                            const VkOpticalFlowExecuteInfoNV* b,
20706                                            OnFailCompareFunc onFail) {
20707     if (!((a->sType) == (b->sType))) {
20708         onFail("a->sType (Error: Value not equal)");
20709     };
20710     if (a->pNext) {
20711         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20712     }
20713     if (!((a->flags) == (b->flags))) {
20714         onFail("a->flags (Error: Value not equal)");
20715     };
20716     if (!((a->regionCount) == (b->regionCount))) {
20717         onFail("a->regionCount (Error: Value not equal)");
20718     };
20719     if ((a->pRegions) && (b->pRegions)) {
20720         if (!((a->regionCount) == (b->regionCount))) {
20721             onFail("a->pRegions (Error: Lengths not equal)");
20722         };
20723         if ((a->regionCount) == (b->regionCount)) {
20724             if (a) {
20725                 for (uint32_t i = 0; i < (uint32_t)a->regionCount; ++i) {
20726                     checkEqual_VkRect2D(a->pRegions + i, b->pRegions + i, onFail);
20727                 }
20728             }
20729         }
20730     }
20731 }
20732 
20733 #endif
20734 #ifdef VK_EXT_legacy_dithering
checkEqual_VkPhysicalDeviceLegacyDitheringFeaturesEXT(const VkPhysicalDeviceLegacyDitheringFeaturesEXT * a,const VkPhysicalDeviceLegacyDitheringFeaturesEXT * b,OnFailCompareFunc onFail)20735 void checkEqual_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
20736     const VkPhysicalDeviceLegacyDitheringFeaturesEXT* a,
20737     const VkPhysicalDeviceLegacyDitheringFeaturesEXT* b, OnFailCompareFunc onFail) {
20738     if (!((a->sType) == (b->sType))) {
20739         onFail("a->sType (Error: Value not equal)");
20740     };
20741     if (a->pNext) {
20742         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20743     }
20744     if (!((a->legacyDithering) == (b->legacyDithering))) {
20745         onFail("a->legacyDithering (Error: Value not equal)");
20746     };
20747 }
20748 
20749 #endif
20750 #ifdef VK_EXT_pipeline_protected_access
checkEqual_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT * a,const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT * b,OnFailCompareFunc onFail)20751 void checkEqual_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
20752     const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* a,
20753     const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* b, OnFailCompareFunc onFail) {
20754     if (!((a->sType) == (b->sType))) {
20755         onFail("a->sType (Error: Value not equal)");
20756     };
20757     if (a->pNext) {
20758         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20759     }
20760     if (!((a->pipelineProtectedAccess) == (b->pipelineProtectedAccess))) {
20761         onFail("a->pipelineProtectedAccess (Error: Value not equal)");
20762     };
20763 }
20764 
20765 #endif
20766 #ifdef VK_EXT_shader_object
checkEqual_VkPhysicalDeviceShaderObjectFeaturesEXT(const VkPhysicalDeviceShaderObjectFeaturesEXT * a,const VkPhysicalDeviceShaderObjectFeaturesEXT * b,OnFailCompareFunc onFail)20767 void checkEqual_VkPhysicalDeviceShaderObjectFeaturesEXT(
20768     const VkPhysicalDeviceShaderObjectFeaturesEXT* a,
20769     const VkPhysicalDeviceShaderObjectFeaturesEXT* b, OnFailCompareFunc onFail) {
20770     if (!((a->sType) == (b->sType))) {
20771         onFail("a->sType (Error: Value not equal)");
20772     };
20773     if (a->pNext) {
20774         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20775     }
20776     if (!((a->shaderObject) == (b->shaderObject))) {
20777         onFail("a->shaderObject (Error: Value not equal)");
20778     };
20779 }
20780 
checkEqual_VkPhysicalDeviceShaderObjectPropertiesEXT(const VkPhysicalDeviceShaderObjectPropertiesEXT * a,const VkPhysicalDeviceShaderObjectPropertiesEXT * b,OnFailCompareFunc onFail)20781 void checkEqual_VkPhysicalDeviceShaderObjectPropertiesEXT(
20782     const VkPhysicalDeviceShaderObjectPropertiesEXT* a,
20783     const VkPhysicalDeviceShaderObjectPropertiesEXT* b, OnFailCompareFunc onFail) {
20784     if (!((a->sType) == (b->sType))) {
20785         onFail("a->sType (Error: Value not equal)");
20786     };
20787     if (a->pNext) {
20788         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20789     }
20790     if (!((memcmp(a->shaderBinaryUUID, b->shaderBinaryUUID, VK_UUID_SIZE * sizeof(uint8_t)) ==
20791            0))) {
20792         onFail("a->shaderBinaryUUID (Error: Unequal static array)");
20793     };
20794     if (!((a->shaderBinaryVersion) == (b->shaderBinaryVersion))) {
20795         onFail("a->shaderBinaryVersion (Error: Value not equal)");
20796     };
20797 }
20798 
checkEqual_VkShaderCreateInfoEXT(const VkShaderCreateInfoEXT * a,const VkShaderCreateInfoEXT * b,OnFailCompareFunc onFail)20799 void checkEqual_VkShaderCreateInfoEXT(const VkShaderCreateInfoEXT* a,
20800                                       const VkShaderCreateInfoEXT* b, OnFailCompareFunc onFail) {
20801     if (!((a->sType) == (b->sType))) {
20802         onFail("a->sType (Error: Value not equal)");
20803     };
20804     if (a->pNext) {
20805         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20806     }
20807     if (!((a->flags) == (b->flags))) {
20808         onFail("a->flags (Error: Value not equal)");
20809     };
20810     if (!((a->stage) == (b->stage))) {
20811         onFail("a->stage (Error: Value not equal)");
20812     };
20813     if (!((a->nextStage) == (b->nextStage))) {
20814         onFail("a->nextStage (Error: Value not equal)");
20815     };
20816     if (!((a->codeType) == (b->codeType))) {
20817         onFail("a->codeType (Error: Value not equal)");
20818     };
20819     if (!((a->codeSize) == (b->codeSize))) {
20820         onFail("a->codeSize (Error: Value not equal)");
20821     };
20822     if (!((!(a->pName) && !(b->pName)) || ((a->pName) && (b->pName)))) {
20823         onFail("a->pName (Error: Mismatch in optional field)");
20824     };
20825     if (a->pName && b->pName) {
20826         if (!((!(a->pName) && !(b->pName)) || ((a->pName) && (b->pName)))) {
20827             onFail("a->pName (Error: Mismatch in string pointer nullness)");
20828         };
20829         if ((a->pName) && (b->pName)) {
20830             if (!((strcmp(a->pName, b->pName) == 0))) {
20831                 onFail("a->pName (Error: Unequal strings)");
20832             };
20833         }
20834     }
20835     if (!((a->setLayoutCount) == (b->setLayoutCount))) {
20836         onFail("a->setLayoutCount (Error: Value not equal)");
20837     };
20838     if (!((!(a->pSetLayouts) && !(b->pSetLayouts)) || ((a->pSetLayouts) && (b->pSetLayouts)))) {
20839         onFail("a->pSetLayouts (Error: Mismatch in optional field)");
20840     };
20841     if (a->pSetLayouts && b->pSetLayouts) {
20842         if (!((a->setLayoutCount) == (b->setLayoutCount))) {
20843             onFail("a->pSetLayouts (Error: Lengths not equal)");
20844         };
20845         if (!((memcmp(a->pSetLayouts, b->pSetLayouts,
20846                       a->setLayoutCount * sizeof(const VkDescriptorSetLayout)) == 0))) {
20847             onFail("a->pSetLayouts (Error: Unequal dyn array)");
20848         };
20849     }
20850     if (!((a->pushConstantRangeCount) == (b->pushConstantRangeCount))) {
20851         onFail("a->pushConstantRangeCount (Error: Value not equal)");
20852     };
20853     if (!((!(a->pPushConstantRanges) && !(b->pPushConstantRanges)) ||
20854           ((a->pPushConstantRanges) && (b->pPushConstantRanges)))) {
20855         onFail("a->pPushConstantRanges (Error: Mismatch in optional field)");
20856     };
20857     if (a->pPushConstantRanges && b->pPushConstantRanges) {
20858         if ((a->pPushConstantRanges) && (b->pPushConstantRanges)) {
20859             if (!((a->pushConstantRangeCount) == (b->pushConstantRangeCount))) {
20860                 onFail("a->pPushConstantRanges (Error: Lengths not equal)");
20861             };
20862             if ((a->pushConstantRangeCount) == (b->pushConstantRangeCount)) {
20863                 if (a) {
20864                     for (uint32_t i = 0; i < (uint32_t)a->pushConstantRangeCount; ++i) {
20865                         checkEqual_VkPushConstantRange(a->pPushConstantRanges + i,
20866                                                        b->pPushConstantRanges + i, onFail);
20867                     }
20868                 }
20869             }
20870         }
20871     }
20872     if (!((!(a->pSpecializationInfo) && !(b->pSpecializationInfo)) ||
20873           ((a->pSpecializationInfo) && (b->pSpecializationInfo)))) {
20874         onFail("a->pSpecializationInfo (Error: Mismatch in optional field)");
20875     };
20876     if (a->pSpecializationInfo && b->pSpecializationInfo) {
20877         if ((a->pSpecializationInfo) && (b->pSpecializationInfo)) {
20878             checkEqual_VkSpecializationInfo(a->pSpecializationInfo, b->pSpecializationInfo, onFail);
20879         }
20880     }
20881 }
20882 
20883 #endif
20884 #ifdef VK_QCOM_tile_properties
checkEqual_VkPhysicalDeviceTilePropertiesFeaturesQCOM(const VkPhysicalDeviceTilePropertiesFeaturesQCOM * a,const VkPhysicalDeviceTilePropertiesFeaturesQCOM * b,OnFailCompareFunc onFail)20885 void checkEqual_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
20886     const VkPhysicalDeviceTilePropertiesFeaturesQCOM* a,
20887     const VkPhysicalDeviceTilePropertiesFeaturesQCOM* b, OnFailCompareFunc onFail) {
20888     if (!((a->sType) == (b->sType))) {
20889         onFail("a->sType (Error: Value not equal)");
20890     };
20891     if (a->pNext) {
20892         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20893     }
20894     if (!((a->tileProperties) == (b->tileProperties))) {
20895         onFail("a->tileProperties (Error: Value not equal)");
20896     };
20897 }
20898 
checkEqual_VkTilePropertiesQCOM(const VkTilePropertiesQCOM * a,const VkTilePropertiesQCOM * b,OnFailCompareFunc onFail)20899 void checkEqual_VkTilePropertiesQCOM(const VkTilePropertiesQCOM* a, const VkTilePropertiesQCOM* b,
20900                                      OnFailCompareFunc onFail) {
20901     if (!((a->sType) == (b->sType))) {
20902         onFail("a->sType (Error: Value not equal)");
20903     };
20904     if (a->pNext) {
20905         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20906     }
20907     checkEqual_VkExtent3D(&a->tileSize, &b->tileSize, onFail);
20908     checkEqual_VkExtent2D(&a->apronSize, &b->apronSize, onFail);
20909     checkEqual_VkOffset2D(&a->origin, &b->origin, onFail);
20910 }
20911 
20912 #endif
20913 #ifdef VK_SEC_amigo_profiling
checkEqual_VkPhysicalDeviceAmigoProfilingFeaturesSEC(const VkPhysicalDeviceAmigoProfilingFeaturesSEC * a,const VkPhysicalDeviceAmigoProfilingFeaturesSEC * b,OnFailCompareFunc onFail)20914 void checkEqual_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
20915     const VkPhysicalDeviceAmigoProfilingFeaturesSEC* a,
20916     const VkPhysicalDeviceAmigoProfilingFeaturesSEC* b, OnFailCompareFunc onFail) {
20917     if (!((a->sType) == (b->sType))) {
20918         onFail("a->sType (Error: Value not equal)");
20919     };
20920     if (a->pNext) {
20921         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20922     }
20923     if (!((a->amigoProfiling) == (b->amigoProfiling))) {
20924         onFail("a->amigoProfiling (Error: Value not equal)");
20925     };
20926 }
20927 
checkEqual_VkAmigoProfilingSubmitInfoSEC(const VkAmigoProfilingSubmitInfoSEC * a,const VkAmigoProfilingSubmitInfoSEC * b,OnFailCompareFunc onFail)20928 void checkEqual_VkAmigoProfilingSubmitInfoSEC(const VkAmigoProfilingSubmitInfoSEC* a,
20929                                               const VkAmigoProfilingSubmitInfoSEC* b,
20930                                               OnFailCompareFunc onFail) {
20931     if (!((a->sType) == (b->sType))) {
20932         onFail("a->sType (Error: Value not equal)");
20933     };
20934     if (a->pNext) {
20935         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20936     }
20937     if (!((a->firstDrawTimestamp) == (b->firstDrawTimestamp))) {
20938         onFail("a->firstDrawTimestamp (Error: Value not equal)");
20939     };
20940     if (!((a->swapBufferTimestamp) == (b->swapBufferTimestamp))) {
20941         onFail("a->swapBufferTimestamp (Error: Value not equal)");
20942     };
20943 }
20944 
20945 #endif
20946 #ifdef VK_QCOM_multiview_per_view_viewports
checkEqual_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM * a,const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM * b,OnFailCompareFunc onFail)20947 void checkEqual_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
20948     const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* a,
20949     const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* b, OnFailCompareFunc onFail) {
20950     if (!((a->sType) == (b->sType))) {
20951         onFail("a->sType (Error: Value not equal)");
20952     };
20953     if (a->pNext) {
20954         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20955     }
20956     if (!((a->multiviewPerViewViewports) == (b->multiviewPerViewViewports))) {
20957         onFail("a->multiviewPerViewViewports (Error: Value not equal)");
20958     };
20959 }
20960 
20961 #endif
20962 #ifdef VK_NV_ray_tracing_invocation_reorder
checkEqual_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV * a,const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV * b,OnFailCompareFunc onFail)20963 void checkEqual_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
20964     const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* a,
20965     const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* b, OnFailCompareFunc onFail) {
20966     if (!((a->sType) == (b->sType))) {
20967         onFail("a->sType (Error: Value not equal)");
20968     };
20969     if (a->pNext) {
20970         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20971     }
20972     if (!((a->rayTracingInvocationReorderReorderingHint) ==
20973           (b->rayTracingInvocationReorderReorderingHint))) {
20974         onFail("a->rayTracingInvocationReorderReorderingHint (Error: Value not equal)");
20975     };
20976 }
20977 
checkEqual_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV * a,const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV * b,OnFailCompareFunc onFail)20978 void checkEqual_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
20979     const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* a,
20980     const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* b, OnFailCompareFunc onFail) {
20981     if (!((a->sType) == (b->sType))) {
20982         onFail("a->sType (Error: Value not equal)");
20983     };
20984     if (a->pNext) {
20985         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
20986     }
20987     if (!((a->rayTracingInvocationReorder) == (b->rayTracingInvocationReorder))) {
20988         onFail("a->rayTracingInvocationReorder (Error: Value not equal)");
20989     };
20990 }
20991 
20992 #endif
20993 #ifdef VK_EXT_mutable_descriptor_type
20994 #endif
20995 #ifdef VK_ARM_shader_core_builtins
checkEqual_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM * a,const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM * b,OnFailCompareFunc onFail)20996 void checkEqual_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
20997     const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* a,
20998     const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* b, OnFailCompareFunc onFail) {
20999     if (!((a->sType) == (b->sType))) {
21000         onFail("a->sType (Error: Value not equal)");
21001     };
21002     if (a->pNext) {
21003         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21004     }
21005     if (!((a->shaderCoreBuiltins) == (b->shaderCoreBuiltins))) {
21006         onFail("a->shaderCoreBuiltins (Error: Value not equal)");
21007     };
21008 }
21009 
checkEqual_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM * a,const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM * b,OnFailCompareFunc onFail)21010 void checkEqual_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
21011     const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* a,
21012     const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* b, OnFailCompareFunc onFail) {
21013     if (!((a->sType) == (b->sType))) {
21014         onFail("a->sType (Error: Value not equal)");
21015     };
21016     if (a->pNext) {
21017         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21018     }
21019     if (!((a->shaderCoreMask) == (b->shaderCoreMask))) {
21020         onFail("a->shaderCoreMask (Error: Value not equal)");
21021     };
21022     if (!((a->shaderCoreCount) == (b->shaderCoreCount))) {
21023         onFail("a->shaderCoreCount (Error: Value not equal)");
21024     };
21025     if (!((a->shaderWarpsPerCore) == (b->shaderWarpsPerCore))) {
21026         onFail("a->shaderWarpsPerCore (Error: Value not equal)");
21027     };
21028 }
21029 
21030 #endif
21031 #ifdef VK_EXT_pipeline_library_group_handles
checkEqual_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT * a,const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT * b,OnFailCompareFunc onFail)21032 void checkEqual_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
21033     const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* a,
21034     const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* b, OnFailCompareFunc onFail) {
21035     if (!((a->sType) == (b->sType))) {
21036         onFail("a->sType (Error: Value not equal)");
21037     };
21038     if (a->pNext) {
21039         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21040     }
21041     if (!((a->pipelineLibraryGroupHandles) == (b->pipelineLibraryGroupHandles))) {
21042         onFail("a->pipelineLibraryGroupHandles (Error: Value not equal)");
21043     };
21044 }
21045 
21046 #endif
21047 #ifdef VK_QCOM_multiview_per_view_render_areas
checkEqual_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM * a,const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM * b,OnFailCompareFunc onFail)21048 void checkEqual_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
21049     const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* a,
21050     const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* b, OnFailCompareFunc onFail) {
21051     if (!((a->sType) == (b->sType))) {
21052         onFail("a->sType (Error: Value not equal)");
21053     };
21054     if (a->pNext) {
21055         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21056     }
21057     if (!((a->multiviewPerViewRenderAreas) == (b->multiviewPerViewRenderAreas))) {
21058         onFail("a->multiviewPerViewRenderAreas (Error: Value not equal)");
21059     };
21060 }
21061 
checkEqual_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM * a,const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM * b,OnFailCompareFunc onFail)21062 void checkEqual_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
21063     const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* a,
21064     const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* b, OnFailCompareFunc onFail) {
21065     if (!((a->sType) == (b->sType))) {
21066         onFail("a->sType (Error: Value not equal)");
21067     };
21068     if (a->pNext) {
21069         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21070     }
21071     if (!((a->perViewRenderAreaCount) == (b->perViewRenderAreaCount))) {
21072         onFail("a->perViewRenderAreaCount (Error: Value not equal)");
21073     };
21074     if ((a->pPerViewRenderAreas) && (b->pPerViewRenderAreas)) {
21075         if (!((a->perViewRenderAreaCount) == (b->perViewRenderAreaCount))) {
21076             onFail("a->pPerViewRenderAreas (Error: Lengths not equal)");
21077         };
21078         if ((a->perViewRenderAreaCount) == (b->perViewRenderAreaCount)) {
21079             if (a) {
21080                 for (uint32_t i = 0; i < (uint32_t)a->perViewRenderAreaCount; ++i) {
21081                     checkEqual_VkRect2D(a->pPerViewRenderAreas + i, b->pPerViewRenderAreas + i,
21082                                         onFail);
21083                 }
21084             }
21085         }
21086     }
21087 }
21088 
21089 #endif
21090 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT * a,const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT * b,OnFailCompareFunc onFail)21091 void checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
21092     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* a,
21093     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* b,
21094     OnFailCompareFunc onFail) {
21095     if (!((a->sType) == (b->sType))) {
21096         onFail("a->sType (Error: Value not equal)");
21097     };
21098     if (a->pNext) {
21099         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21100     }
21101     if (!((a->attachmentFeedbackLoopDynamicState) == (b->attachmentFeedbackLoopDynamicState))) {
21102         onFail("a->attachmentFeedbackLoopDynamicState (Error: Value not equal)");
21103     };
21104 }
21105 
21106 #endif
21107 #ifdef VK_KHR_acceleration_structure
checkEqual_VkAccelerationStructureBuildRangeInfoKHR(const VkAccelerationStructureBuildRangeInfoKHR * a,const VkAccelerationStructureBuildRangeInfoKHR * b,OnFailCompareFunc onFail)21108 void checkEqual_VkAccelerationStructureBuildRangeInfoKHR(
21109     const VkAccelerationStructureBuildRangeInfoKHR* a,
21110     const VkAccelerationStructureBuildRangeInfoKHR* b, OnFailCompareFunc onFail) {
21111     if (!((a->primitiveCount) == (b->primitiveCount))) {
21112         onFail("a->primitiveCount (Error: Value not equal)");
21113     };
21114     if (!((a->primitiveOffset) == (b->primitiveOffset))) {
21115         onFail("a->primitiveOffset (Error: Value not equal)");
21116     };
21117     if (!((a->firstVertex) == (b->firstVertex))) {
21118         onFail("a->firstVertex (Error: Value not equal)");
21119     };
21120     if (!((a->transformOffset) == (b->transformOffset))) {
21121         onFail("a->transformOffset (Error: Value not equal)");
21122     };
21123 }
21124 
checkEqual_VkAccelerationStructureGeometryTrianglesDataKHR(const VkAccelerationStructureGeometryTrianglesDataKHR * a,const VkAccelerationStructureGeometryTrianglesDataKHR * b,OnFailCompareFunc onFail)21125 void checkEqual_VkAccelerationStructureGeometryTrianglesDataKHR(
21126     const VkAccelerationStructureGeometryTrianglesDataKHR* a,
21127     const VkAccelerationStructureGeometryTrianglesDataKHR* b, OnFailCompareFunc onFail) {
21128     if (!((a->sType) == (b->sType))) {
21129         onFail("a->sType (Error: Value not equal)");
21130     };
21131     if (a->pNext) {
21132         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21133     }
21134     if (!((a->vertexFormat) == (b->vertexFormat))) {
21135         onFail("a->vertexFormat (Error: Value not equal)");
21136     };
21137     checkEqual_VkDeviceOrHostAddressConstKHR(&a->vertexData, &b->vertexData, onFail);
21138     if (!((a->vertexStride) == (b->vertexStride))) {
21139         onFail("a->vertexStride (Error: Value not equal)");
21140     };
21141     if (!((a->maxVertex) == (b->maxVertex))) {
21142         onFail("a->maxVertex (Error: Value not equal)");
21143     };
21144     if (!((a->indexType) == (b->indexType))) {
21145         onFail("a->indexType (Error: Value not equal)");
21146     };
21147     checkEqual_VkDeviceOrHostAddressConstKHR(&a->indexData, &b->indexData, onFail);
21148     checkEqual_VkDeviceOrHostAddressConstKHR(&a->transformData, &b->transformData, onFail);
21149 }
21150 
checkEqual_VkAccelerationStructureGeometryAabbsDataKHR(const VkAccelerationStructureGeometryAabbsDataKHR * a,const VkAccelerationStructureGeometryAabbsDataKHR * b,OnFailCompareFunc onFail)21151 void checkEqual_VkAccelerationStructureGeometryAabbsDataKHR(
21152     const VkAccelerationStructureGeometryAabbsDataKHR* a,
21153     const VkAccelerationStructureGeometryAabbsDataKHR* b, OnFailCompareFunc onFail) {
21154     if (!((a->sType) == (b->sType))) {
21155         onFail("a->sType (Error: Value not equal)");
21156     };
21157     if (a->pNext) {
21158         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21159     }
21160     checkEqual_VkDeviceOrHostAddressConstKHR(&a->data, &b->data, onFail);
21161     if (!((a->stride) == (b->stride))) {
21162         onFail("a->stride (Error: Value not equal)");
21163     };
21164 }
21165 
checkEqual_VkAccelerationStructureGeometryInstancesDataKHR(const VkAccelerationStructureGeometryInstancesDataKHR * a,const VkAccelerationStructureGeometryInstancesDataKHR * b,OnFailCompareFunc onFail)21166 void checkEqual_VkAccelerationStructureGeometryInstancesDataKHR(
21167     const VkAccelerationStructureGeometryInstancesDataKHR* a,
21168     const VkAccelerationStructureGeometryInstancesDataKHR* b, OnFailCompareFunc onFail) {
21169     if (!((a->sType) == (b->sType))) {
21170         onFail("a->sType (Error: Value not equal)");
21171     };
21172     if (a->pNext) {
21173         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21174     }
21175     if (!((a->arrayOfPointers) == (b->arrayOfPointers))) {
21176         onFail("a->arrayOfPointers (Error: Value not equal)");
21177     };
21178     checkEqual_VkDeviceOrHostAddressConstKHR(&a->data, &b->data, onFail);
21179 }
21180 
checkEqual_VkAccelerationStructureGeometryDataKHR(const VkAccelerationStructureGeometryDataKHR * a,const VkAccelerationStructureGeometryDataKHR * b,OnFailCompareFunc onFail)21181 void checkEqual_VkAccelerationStructureGeometryDataKHR(
21182     const VkAccelerationStructureGeometryDataKHR* a,
21183     const VkAccelerationStructureGeometryDataKHR* b, OnFailCompareFunc onFail) {
21184     checkEqual_VkAccelerationStructureGeometryTrianglesDataKHR(&a->triangles, &b->triangles,
21185                                                                onFail);
21186     checkEqual_VkAccelerationStructureGeometryAabbsDataKHR(&a->aabbs, &b->aabbs, onFail);
21187     checkEqual_VkAccelerationStructureGeometryInstancesDataKHR(&a->instances, &b->instances,
21188                                                                onFail);
21189 }
21190 
checkEqual_VkAccelerationStructureGeometryKHR(const VkAccelerationStructureGeometryKHR * a,const VkAccelerationStructureGeometryKHR * b,OnFailCompareFunc onFail)21191 void checkEqual_VkAccelerationStructureGeometryKHR(const VkAccelerationStructureGeometryKHR* a,
21192                                                    const VkAccelerationStructureGeometryKHR* b,
21193                                                    OnFailCompareFunc onFail) {
21194     if (!((a->sType) == (b->sType))) {
21195         onFail("a->sType (Error: Value not equal)");
21196     };
21197     if (a->pNext) {
21198         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21199     }
21200     if (!((a->geometryType) == (b->geometryType))) {
21201         onFail("a->geometryType (Error: Value not equal)");
21202     };
21203     checkEqual_VkAccelerationStructureGeometryDataKHR(&a->geometry, &b->geometry, onFail);
21204     if (!((a->flags) == (b->flags))) {
21205         onFail("a->flags (Error: Value not equal)");
21206     };
21207 }
21208 
checkEqual_VkAccelerationStructureBuildGeometryInfoKHR(const VkAccelerationStructureBuildGeometryInfoKHR * a,const VkAccelerationStructureBuildGeometryInfoKHR * b,OnFailCompareFunc onFail)21209 void checkEqual_VkAccelerationStructureBuildGeometryInfoKHR(
21210     const VkAccelerationStructureBuildGeometryInfoKHR* a,
21211     const VkAccelerationStructureBuildGeometryInfoKHR* b, OnFailCompareFunc onFail) {
21212     if (!((a->sType) == (b->sType))) {
21213         onFail("a->sType (Error: Value not equal)");
21214     };
21215     if (a->pNext) {
21216         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21217     }
21218     if (!((a->type) == (b->type))) {
21219         onFail("a->type (Error: Value not equal)");
21220     };
21221     if (!((a->flags) == (b->flags))) {
21222         onFail("a->flags (Error: Value not equal)");
21223     };
21224     if (!((a->mode) == (b->mode))) {
21225         onFail("a->mode (Error: Value not equal)");
21226     };
21227     if (!((a->srcAccelerationStructure) == (b->srcAccelerationStructure))) {
21228         onFail("a->srcAccelerationStructure (Error: Value not equal)");
21229     };
21230     if (!((a->dstAccelerationStructure) == (b->dstAccelerationStructure))) {
21231         onFail("a->dstAccelerationStructure (Error: Value not equal)");
21232     };
21233     if (!((a->geometryCount) == (b->geometryCount))) {
21234         onFail("a->geometryCount (Error: Value not equal)");
21235     };
21236     if (!((!(a->pGeometries) && !(b->pGeometries)) || ((a->pGeometries) && (b->pGeometries)))) {
21237         onFail("a->pGeometries (Error: Mismatch in optional field)");
21238     };
21239     if (a->pGeometries && b->pGeometries) {
21240         if ((a->pGeometries) && (b->pGeometries)) {
21241             if (!((a->geometryCount) == (b->geometryCount))) {
21242                 onFail("a->pGeometries (Error: Lengths not equal)");
21243             };
21244             if ((a->geometryCount) == (b->geometryCount)) {
21245                 if (a) {
21246                     for (uint32_t i = 0; i < (uint32_t)a->geometryCount; ++i) {
21247                         checkEqual_VkAccelerationStructureGeometryKHR(a->pGeometries + i,
21248                                                                       b->pGeometries + i, onFail);
21249                     }
21250                 }
21251             }
21252         }
21253     }
21254     checkEqual_VkDeviceOrHostAddressKHR(&a->scratchData, &b->scratchData, onFail);
21255 }
21256 
checkEqual_VkAccelerationStructureCreateInfoKHR(const VkAccelerationStructureCreateInfoKHR * a,const VkAccelerationStructureCreateInfoKHR * b,OnFailCompareFunc onFail)21257 void checkEqual_VkAccelerationStructureCreateInfoKHR(const VkAccelerationStructureCreateInfoKHR* a,
21258                                                      const VkAccelerationStructureCreateInfoKHR* b,
21259                                                      OnFailCompareFunc onFail) {
21260     if (!((a->sType) == (b->sType))) {
21261         onFail("a->sType (Error: Value not equal)");
21262     };
21263     if (a->pNext) {
21264         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21265     }
21266     if (!((a->createFlags) == (b->createFlags))) {
21267         onFail("a->createFlags (Error: Value not equal)");
21268     };
21269     if (!((a->buffer) == (b->buffer))) {
21270         onFail("a->buffer (Error: Value not equal)");
21271     };
21272     if (!((a->offset) == (b->offset))) {
21273         onFail("a->offset (Error: Value not equal)");
21274     };
21275     if (!((a->size) == (b->size))) {
21276         onFail("a->size (Error: Value not equal)");
21277     };
21278     if (!((a->type) == (b->type))) {
21279         onFail("a->type (Error: Value not equal)");
21280     };
21281     if (!((a->deviceAddress) == (b->deviceAddress))) {
21282         onFail("a->deviceAddress (Error: Value not equal)");
21283     };
21284 }
21285 
checkEqual_VkWriteDescriptorSetAccelerationStructureKHR(const VkWriteDescriptorSetAccelerationStructureKHR * a,const VkWriteDescriptorSetAccelerationStructureKHR * b,OnFailCompareFunc onFail)21286 void checkEqual_VkWriteDescriptorSetAccelerationStructureKHR(
21287     const VkWriteDescriptorSetAccelerationStructureKHR* a,
21288     const VkWriteDescriptorSetAccelerationStructureKHR* b, OnFailCompareFunc onFail) {
21289     if (!((a->sType) == (b->sType))) {
21290         onFail("a->sType (Error: Value not equal)");
21291     };
21292     if (a->pNext) {
21293         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21294     }
21295     if (!((a->accelerationStructureCount) == (b->accelerationStructureCount))) {
21296         onFail("a->accelerationStructureCount (Error: Value not equal)");
21297     };
21298     if (!((!(a->pAccelerationStructures) && !(b->pAccelerationStructures)) ||
21299           ((a->pAccelerationStructures) && (b->pAccelerationStructures)))) {
21300         onFail("a->pAccelerationStructures (Error: Mismatch in optional field)");
21301     };
21302     if (a->pAccelerationStructures && b->pAccelerationStructures) {
21303         if (!((a->accelerationStructureCount) == (b->accelerationStructureCount))) {
21304             onFail("a->pAccelerationStructures (Error: Lengths not equal)");
21305         };
21306         if (!((memcmp(a->pAccelerationStructures, b->pAccelerationStructures,
21307                       a->accelerationStructureCount * sizeof(const VkAccelerationStructureKHR)) ==
21308                0))) {
21309             onFail("a->pAccelerationStructures (Error: Unequal dyn array)");
21310         };
21311     }
21312 }
21313 
checkEqual_VkPhysicalDeviceAccelerationStructureFeaturesKHR(const VkPhysicalDeviceAccelerationStructureFeaturesKHR * a,const VkPhysicalDeviceAccelerationStructureFeaturesKHR * b,OnFailCompareFunc onFail)21314 void checkEqual_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
21315     const VkPhysicalDeviceAccelerationStructureFeaturesKHR* a,
21316     const VkPhysicalDeviceAccelerationStructureFeaturesKHR* b, OnFailCompareFunc onFail) {
21317     if (!((a->sType) == (b->sType))) {
21318         onFail("a->sType (Error: Value not equal)");
21319     };
21320     if (a->pNext) {
21321         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21322     }
21323     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
21324         onFail("a->accelerationStructure (Error: Value not equal)");
21325     };
21326     if (!((a->accelerationStructureCaptureReplay) == (b->accelerationStructureCaptureReplay))) {
21327         onFail("a->accelerationStructureCaptureReplay (Error: Value not equal)");
21328     };
21329     if (!((a->accelerationStructureIndirectBuild) == (b->accelerationStructureIndirectBuild))) {
21330         onFail("a->accelerationStructureIndirectBuild (Error: Value not equal)");
21331     };
21332     if (!((a->accelerationStructureHostCommands) == (b->accelerationStructureHostCommands))) {
21333         onFail("a->accelerationStructureHostCommands (Error: Value not equal)");
21334     };
21335     if (!((a->descriptorBindingAccelerationStructureUpdateAfterBind) ==
21336           (b->descriptorBindingAccelerationStructureUpdateAfterBind))) {
21337         onFail("a->descriptorBindingAccelerationStructureUpdateAfterBind (Error: Value not equal)");
21338     };
21339 }
21340 
checkEqual_VkPhysicalDeviceAccelerationStructurePropertiesKHR(const VkPhysicalDeviceAccelerationStructurePropertiesKHR * a,const VkPhysicalDeviceAccelerationStructurePropertiesKHR * b,OnFailCompareFunc onFail)21341 void checkEqual_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
21342     const VkPhysicalDeviceAccelerationStructurePropertiesKHR* a,
21343     const VkPhysicalDeviceAccelerationStructurePropertiesKHR* b, OnFailCompareFunc onFail) {
21344     if (!((a->sType) == (b->sType))) {
21345         onFail("a->sType (Error: Value not equal)");
21346     };
21347     if (a->pNext) {
21348         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21349     }
21350     if (!((a->maxGeometryCount) == (b->maxGeometryCount))) {
21351         onFail("a->maxGeometryCount (Error: Value not equal)");
21352     };
21353     if (!((a->maxInstanceCount) == (b->maxInstanceCount))) {
21354         onFail("a->maxInstanceCount (Error: Value not equal)");
21355     };
21356     if (!((a->maxPrimitiveCount) == (b->maxPrimitiveCount))) {
21357         onFail("a->maxPrimitiveCount (Error: Value not equal)");
21358     };
21359     if (!((a->maxPerStageDescriptorAccelerationStructures) ==
21360           (b->maxPerStageDescriptorAccelerationStructures))) {
21361         onFail("a->maxPerStageDescriptorAccelerationStructures (Error: Value not equal)");
21362     };
21363     if (!((a->maxPerStageDescriptorUpdateAfterBindAccelerationStructures) ==
21364           (b->maxPerStageDescriptorUpdateAfterBindAccelerationStructures))) {
21365         onFail(
21366             "a->maxPerStageDescriptorUpdateAfterBindAccelerationStructures (Error: Value not "
21367             "equal)");
21368     };
21369     if (!((a->maxDescriptorSetAccelerationStructures) ==
21370           (b->maxDescriptorSetAccelerationStructures))) {
21371         onFail("a->maxDescriptorSetAccelerationStructures (Error: Value not equal)");
21372     };
21373     if (!((a->maxDescriptorSetUpdateAfterBindAccelerationStructures) ==
21374           (b->maxDescriptorSetUpdateAfterBindAccelerationStructures))) {
21375         onFail("a->maxDescriptorSetUpdateAfterBindAccelerationStructures (Error: Value not equal)");
21376     };
21377     if (!((a->minAccelerationStructureScratchOffsetAlignment) ==
21378           (b->minAccelerationStructureScratchOffsetAlignment))) {
21379         onFail("a->minAccelerationStructureScratchOffsetAlignment (Error: Value not equal)");
21380     };
21381 }
21382 
checkEqual_VkAccelerationStructureDeviceAddressInfoKHR(const VkAccelerationStructureDeviceAddressInfoKHR * a,const VkAccelerationStructureDeviceAddressInfoKHR * b,OnFailCompareFunc onFail)21383 void checkEqual_VkAccelerationStructureDeviceAddressInfoKHR(
21384     const VkAccelerationStructureDeviceAddressInfoKHR* a,
21385     const VkAccelerationStructureDeviceAddressInfoKHR* b, OnFailCompareFunc onFail) {
21386     if (!((a->sType) == (b->sType))) {
21387         onFail("a->sType (Error: Value not equal)");
21388     };
21389     if (a->pNext) {
21390         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21391     }
21392     if (!((a->accelerationStructure) == (b->accelerationStructure))) {
21393         onFail("a->accelerationStructure (Error: Value not equal)");
21394     };
21395 }
21396 
checkEqual_VkAccelerationStructureVersionInfoKHR(const VkAccelerationStructureVersionInfoKHR * a,const VkAccelerationStructureVersionInfoKHR * b,OnFailCompareFunc onFail)21397 void checkEqual_VkAccelerationStructureVersionInfoKHR(
21398     const VkAccelerationStructureVersionInfoKHR* a, const VkAccelerationStructureVersionInfoKHR* b,
21399     OnFailCompareFunc onFail) {
21400     if (!((a->sType) == (b->sType))) {
21401         onFail("a->sType (Error: Value not equal)");
21402     };
21403     if (a->pNext) {
21404         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21405     }
21406     if (!((2 * VK_UUID_SIZE) == (2 * VK_UUID_SIZE))) {
21407         onFail("a->pVersionData (Error: Lengths not equal)");
21408     };
21409     if (!((memcmp(a->pVersionData, b->pVersionData, 2 * VK_UUID_SIZE * sizeof(const uint8_t)) ==
21410            0))) {
21411         onFail("a->pVersionData (Error: Unequal dyn array)");
21412     };
21413 }
21414 
checkEqual_VkCopyAccelerationStructureToMemoryInfoKHR(const VkCopyAccelerationStructureToMemoryInfoKHR * a,const VkCopyAccelerationStructureToMemoryInfoKHR * b,OnFailCompareFunc onFail)21415 void checkEqual_VkCopyAccelerationStructureToMemoryInfoKHR(
21416     const VkCopyAccelerationStructureToMemoryInfoKHR* a,
21417     const VkCopyAccelerationStructureToMemoryInfoKHR* b, OnFailCompareFunc onFail) {
21418     if (!((a->sType) == (b->sType))) {
21419         onFail("a->sType (Error: Value not equal)");
21420     };
21421     if (a->pNext) {
21422         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21423     }
21424     if (!((a->src) == (b->src))) {
21425         onFail("a->src (Error: Value not equal)");
21426     };
21427     checkEqual_VkDeviceOrHostAddressKHR(&a->dst, &b->dst, onFail);
21428     if (!((a->mode) == (b->mode))) {
21429         onFail("a->mode (Error: Value not equal)");
21430     };
21431 }
21432 
checkEqual_VkCopyMemoryToAccelerationStructureInfoKHR(const VkCopyMemoryToAccelerationStructureInfoKHR * a,const VkCopyMemoryToAccelerationStructureInfoKHR * b,OnFailCompareFunc onFail)21433 void checkEqual_VkCopyMemoryToAccelerationStructureInfoKHR(
21434     const VkCopyMemoryToAccelerationStructureInfoKHR* a,
21435     const VkCopyMemoryToAccelerationStructureInfoKHR* b, OnFailCompareFunc onFail) {
21436     if (!((a->sType) == (b->sType))) {
21437         onFail("a->sType (Error: Value not equal)");
21438     };
21439     if (a->pNext) {
21440         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21441     }
21442     checkEqual_VkDeviceOrHostAddressConstKHR(&a->src, &b->src, onFail);
21443     if (!((a->dst) == (b->dst))) {
21444         onFail("a->dst (Error: Value not equal)");
21445     };
21446     if (!((a->mode) == (b->mode))) {
21447         onFail("a->mode (Error: Value not equal)");
21448     };
21449 }
21450 
checkEqual_VkCopyAccelerationStructureInfoKHR(const VkCopyAccelerationStructureInfoKHR * a,const VkCopyAccelerationStructureInfoKHR * b,OnFailCompareFunc onFail)21451 void checkEqual_VkCopyAccelerationStructureInfoKHR(const VkCopyAccelerationStructureInfoKHR* a,
21452                                                    const VkCopyAccelerationStructureInfoKHR* b,
21453                                                    OnFailCompareFunc onFail) {
21454     if (!((a->sType) == (b->sType))) {
21455         onFail("a->sType (Error: Value not equal)");
21456     };
21457     if (a->pNext) {
21458         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21459     }
21460     if (!((a->src) == (b->src))) {
21461         onFail("a->src (Error: Value not equal)");
21462     };
21463     if (!((a->dst) == (b->dst))) {
21464         onFail("a->dst (Error: Value not equal)");
21465     };
21466     if (!((a->mode) == (b->mode))) {
21467         onFail("a->mode (Error: Value not equal)");
21468     };
21469 }
21470 
checkEqual_VkAccelerationStructureBuildSizesInfoKHR(const VkAccelerationStructureBuildSizesInfoKHR * a,const VkAccelerationStructureBuildSizesInfoKHR * b,OnFailCompareFunc onFail)21471 void checkEqual_VkAccelerationStructureBuildSizesInfoKHR(
21472     const VkAccelerationStructureBuildSizesInfoKHR* a,
21473     const VkAccelerationStructureBuildSizesInfoKHR* b, OnFailCompareFunc onFail) {
21474     if (!((a->sType) == (b->sType))) {
21475         onFail("a->sType (Error: Value not equal)");
21476     };
21477     if (a->pNext) {
21478         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21479     }
21480     if (!((a->accelerationStructureSize) == (b->accelerationStructureSize))) {
21481         onFail("a->accelerationStructureSize (Error: Value not equal)");
21482     };
21483     if (!((a->updateScratchSize) == (b->updateScratchSize))) {
21484         onFail("a->updateScratchSize (Error: Value not equal)");
21485     };
21486     if (!((a->buildScratchSize) == (b->buildScratchSize))) {
21487         onFail("a->buildScratchSize (Error: Value not equal)");
21488     };
21489 }
21490 
21491 #endif
21492 #ifdef VK_KHR_ray_tracing_pipeline
checkEqual_VkRayTracingShaderGroupCreateInfoKHR(const VkRayTracingShaderGroupCreateInfoKHR * a,const VkRayTracingShaderGroupCreateInfoKHR * b,OnFailCompareFunc onFail)21493 void checkEqual_VkRayTracingShaderGroupCreateInfoKHR(const VkRayTracingShaderGroupCreateInfoKHR* a,
21494                                                      const VkRayTracingShaderGroupCreateInfoKHR* b,
21495                                                      OnFailCompareFunc onFail) {
21496     if (!((a->sType) == (b->sType))) {
21497         onFail("a->sType (Error: Value not equal)");
21498     };
21499     if (a->pNext) {
21500         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21501     }
21502     if (!((a->type) == (b->type))) {
21503         onFail("a->type (Error: Value not equal)");
21504     };
21505     if (!((a->generalShader) == (b->generalShader))) {
21506         onFail("a->generalShader (Error: Value not equal)");
21507     };
21508     if (!((a->closestHitShader) == (b->closestHitShader))) {
21509         onFail("a->closestHitShader (Error: Value not equal)");
21510     };
21511     if (!((a->anyHitShader) == (b->anyHitShader))) {
21512         onFail("a->anyHitShader (Error: Value not equal)");
21513     };
21514     if (!((a->intersectionShader) == (b->intersectionShader))) {
21515         onFail("a->intersectionShader (Error: Value not equal)");
21516     };
21517     if (!((!(a->pShaderGroupCaptureReplayHandle) && !(b->pShaderGroupCaptureReplayHandle)) ||
21518           ((a->pShaderGroupCaptureReplayHandle) && (b->pShaderGroupCaptureReplayHandle)))) {
21519         onFail("a->pShaderGroupCaptureReplayHandle (Error: Mismatch in optional field)");
21520     };
21521 }
21522 
checkEqual_VkRayTracingPipelineInterfaceCreateInfoKHR(const VkRayTracingPipelineInterfaceCreateInfoKHR * a,const VkRayTracingPipelineInterfaceCreateInfoKHR * b,OnFailCompareFunc onFail)21523 void checkEqual_VkRayTracingPipelineInterfaceCreateInfoKHR(
21524     const VkRayTracingPipelineInterfaceCreateInfoKHR* a,
21525     const VkRayTracingPipelineInterfaceCreateInfoKHR* b, OnFailCompareFunc onFail) {
21526     if (!((a->sType) == (b->sType))) {
21527         onFail("a->sType (Error: Value not equal)");
21528     };
21529     if (a->pNext) {
21530         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21531     }
21532     if (!((a->maxPipelineRayPayloadSize) == (b->maxPipelineRayPayloadSize))) {
21533         onFail("a->maxPipelineRayPayloadSize (Error: Value not equal)");
21534     };
21535     if (!((a->maxPipelineRayHitAttributeSize) == (b->maxPipelineRayHitAttributeSize))) {
21536         onFail("a->maxPipelineRayHitAttributeSize (Error: Value not equal)");
21537     };
21538 }
21539 
checkEqual_VkRayTracingPipelineCreateInfoKHR(const VkRayTracingPipelineCreateInfoKHR * a,const VkRayTracingPipelineCreateInfoKHR * b,OnFailCompareFunc onFail)21540 void checkEqual_VkRayTracingPipelineCreateInfoKHR(const VkRayTracingPipelineCreateInfoKHR* a,
21541                                                   const VkRayTracingPipelineCreateInfoKHR* b,
21542                                                   OnFailCompareFunc onFail) {
21543     if (!((a->sType) == (b->sType))) {
21544         onFail("a->sType (Error: Value not equal)");
21545     };
21546     if (a->pNext) {
21547         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21548     }
21549     if (!((a->flags) == (b->flags))) {
21550         onFail("a->flags (Error: Value not equal)");
21551     };
21552     if (!((a->stageCount) == (b->stageCount))) {
21553         onFail("a->stageCount (Error: Value not equal)");
21554     };
21555     if ((a->pStages) && (b->pStages)) {
21556         if (!((a->stageCount) == (b->stageCount))) {
21557             onFail("a->pStages (Error: Lengths not equal)");
21558         };
21559         if ((a->stageCount) == (b->stageCount)) {
21560             if (a) {
21561                 for (uint32_t i = 0; i < (uint32_t)a->stageCount; ++i) {
21562                     checkEqual_VkPipelineShaderStageCreateInfo(a->pStages + i, b->pStages + i,
21563                                                                onFail);
21564                 }
21565             }
21566         }
21567     }
21568     if (!((a->groupCount) == (b->groupCount))) {
21569         onFail("a->groupCount (Error: Value not equal)");
21570     };
21571     if ((a->pGroups) && (b->pGroups)) {
21572         if (!((a->groupCount) == (b->groupCount))) {
21573             onFail("a->pGroups (Error: Lengths not equal)");
21574         };
21575         if ((a->groupCount) == (b->groupCount)) {
21576             if (a) {
21577                 for (uint32_t i = 0; i < (uint32_t)a->groupCount; ++i) {
21578                     checkEqual_VkRayTracingShaderGroupCreateInfoKHR(a->pGroups + i, b->pGroups + i,
21579                                                                     onFail);
21580                 }
21581             }
21582         }
21583     }
21584     if (!((a->maxPipelineRayRecursionDepth) == (b->maxPipelineRayRecursionDepth))) {
21585         onFail("a->maxPipelineRayRecursionDepth (Error: Value not equal)");
21586     };
21587     if (!((!(a->pLibraryInfo) && !(b->pLibraryInfo)) || ((a->pLibraryInfo) && (b->pLibraryInfo)))) {
21588         onFail("a->pLibraryInfo (Error: Mismatch in optional field)");
21589     };
21590     if (a->pLibraryInfo && b->pLibraryInfo) {
21591         if ((a->pLibraryInfo) && (b->pLibraryInfo)) {
21592             checkEqual_VkPipelineLibraryCreateInfoKHR(a->pLibraryInfo, b->pLibraryInfo, onFail);
21593         }
21594     }
21595     if (!((!(a->pLibraryInterface) && !(b->pLibraryInterface)) ||
21596           ((a->pLibraryInterface) && (b->pLibraryInterface)))) {
21597         onFail("a->pLibraryInterface (Error: Mismatch in optional field)");
21598     };
21599     if (a->pLibraryInterface && b->pLibraryInterface) {
21600         if ((a->pLibraryInterface) && (b->pLibraryInterface)) {
21601             checkEqual_VkRayTracingPipelineInterfaceCreateInfoKHR(a->pLibraryInterface,
21602                                                                   b->pLibraryInterface, onFail);
21603         }
21604     }
21605     if (!((!(a->pDynamicState) && !(b->pDynamicState)) ||
21606           ((a->pDynamicState) && (b->pDynamicState)))) {
21607         onFail("a->pDynamicState (Error: Mismatch in optional field)");
21608     };
21609     if (a->pDynamicState && b->pDynamicState) {
21610         if ((a->pDynamicState) && (b->pDynamicState)) {
21611             checkEqual_VkPipelineDynamicStateCreateInfo(a->pDynamicState, b->pDynamicState, onFail);
21612         }
21613     }
21614     if (!((a->layout) == (b->layout))) {
21615         onFail("a->layout (Error: Value not equal)");
21616     };
21617     if (!((a->basePipelineHandle) == (b->basePipelineHandle))) {
21618         onFail("a->basePipelineHandle (Error: Value not equal)");
21619     };
21620     if (!((a->basePipelineIndex) == (b->basePipelineIndex))) {
21621         onFail("a->basePipelineIndex (Error: Value not equal)");
21622     };
21623 }
21624 
checkEqual_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(const VkPhysicalDeviceRayTracingPipelineFeaturesKHR * a,const VkPhysicalDeviceRayTracingPipelineFeaturesKHR * b,OnFailCompareFunc onFail)21625 void checkEqual_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
21626     const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* a,
21627     const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* b, OnFailCompareFunc onFail) {
21628     if (!((a->sType) == (b->sType))) {
21629         onFail("a->sType (Error: Value not equal)");
21630     };
21631     if (a->pNext) {
21632         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21633     }
21634     if (!((a->rayTracingPipeline) == (b->rayTracingPipeline))) {
21635         onFail("a->rayTracingPipeline (Error: Value not equal)");
21636     };
21637     if (!((a->rayTracingPipelineShaderGroupHandleCaptureReplay) ==
21638           (b->rayTracingPipelineShaderGroupHandleCaptureReplay))) {
21639         onFail("a->rayTracingPipelineShaderGroupHandleCaptureReplay (Error: Value not equal)");
21640     };
21641     if (!((a->rayTracingPipelineShaderGroupHandleCaptureReplayMixed) ==
21642           (b->rayTracingPipelineShaderGroupHandleCaptureReplayMixed))) {
21643         onFail("a->rayTracingPipelineShaderGroupHandleCaptureReplayMixed (Error: Value not equal)");
21644     };
21645     if (!((a->rayTracingPipelineTraceRaysIndirect) == (b->rayTracingPipelineTraceRaysIndirect))) {
21646         onFail("a->rayTracingPipelineTraceRaysIndirect (Error: Value not equal)");
21647     };
21648     if (!((a->rayTraversalPrimitiveCulling) == (b->rayTraversalPrimitiveCulling))) {
21649         onFail("a->rayTraversalPrimitiveCulling (Error: Value not equal)");
21650     };
21651 }
21652 
checkEqual_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(const VkPhysicalDeviceRayTracingPipelinePropertiesKHR * a,const VkPhysicalDeviceRayTracingPipelinePropertiesKHR * b,OnFailCompareFunc onFail)21653 void checkEqual_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
21654     const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* a,
21655     const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* b, OnFailCompareFunc onFail) {
21656     if (!((a->sType) == (b->sType))) {
21657         onFail("a->sType (Error: Value not equal)");
21658     };
21659     if (a->pNext) {
21660         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21661     }
21662     if (!((a->shaderGroupHandleSize) == (b->shaderGroupHandleSize))) {
21663         onFail("a->shaderGroupHandleSize (Error: Value not equal)");
21664     };
21665     if (!((a->maxRayRecursionDepth) == (b->maxRayRecursionDepth))) {
21666         onFail("a->maxRayRecursionDepth (Error: Value not equal)");
21667     };
21668     if (!((a->maxShaderGroupStride) == (b->maxShaderGroupStride))) {
21669         onFail("a->maxShaderGroupStride (Error: Value not equal)");
21670     };
21671     if (!((a->shaderGroupBaseAlignment) == (b->shaderGroupBaseAlignment))) {
21672         onFail("a->shaderGroupBaseAlignment (Error: Value not equal)");
21673     };
21674     if (!((a->shaderGroupHandleCaptureReplaySize) == (b->shaderGroupHandleCaptureReplaySize))) {
21675         onFail("a->shaderGroupHandleCaptureReplaySize (Error: Value not equal)");
21676     };
21677     if (!((a->maxRayDispatchInvocationCount) == (b->maxRayDispatchInvocationCount))) {
21678         onFail("a->maxRayDispatchInvocationCount (Error: Value not equal)");
21679     };
21680     if (!((a->shaderGroupHandleAlignment) == (b->shaderGroupHandleAlignment))) {
21681         onFail("a->shaderGroupHandleAlignment (Error: Value not equal)");
21682     };
21683     if (!((a->maxRayHitAttributeSize) == (b->maxRayHitAttributeSize))) {
21684         onFail("a->maxRayHitAttributeSize (Error: Value not equal)");
21685     };
21686 }
21687 
checkEqual_VkStridedDeviceAddressRegionKHR(const VkStridedDeviceAddressRegionKHR * a,const VkStridedDeviceAddressRegionKHR * b,OnFailCompareFunc onFail)21688 void checkEqual_VkStridedDeviceAddressRegionKHR(const VkStridedDeviceAddressRegionKHR* a,
21689                                                 const VkStridedDeviceAddressRegionKHR* b,
21690                                                 OnFailCompareFunc onFail) {
21691     if (!((a->deviceAddress) == (b->deviceAddress))) {
21692         onFail("a->deviceAddress (Error: Value not equal)");
21693     };
21694     if (!((a->stride) == (b->stride))) {
21695         onFail("a->stride (Error: Value not equal)");
21696     };
21697     if (!((a->size) == (b->size))) {
21698         onFail("a->size (Error: Value not equal)");
21699     };
21700 }
21701 
checkEqual_VkTraceRaysIndirectCommandKHR(const VkTraceRaysIndirectCommandKHR * a,const VkTraceRaysIndirectCommandKHR * b,OnFailCompareFunc onFail)21702 void checkEqual_VkTraceRaysIndirectCommandKHR(const VkTraceRaysIndirectCommandKHR* a,
21703                                               const VkTraceRaysIndirectCommandKHR* b,
21704                                               OnFailCompareFunc onFail) {
21705     if (!((a->width) == (b->width))) {
21706         onFail("a->width (Error: Value not equal)");
21707     };
21708     if (!((a->height) == (b->height))) {
21709         onFail("a->height (Error: Value not equal)");
21710     };
21711     if (!((a->depth) == (b->depth))) {
21712         onFail("a->depth (Error: Value not equal)");
21713     };
21714 }
21715 
21716 #endif
21717 #ifdef VK_KHR_ray_query
checkEqual_VkPhysicalDeviceRayQueryFeaturesKHR(const VkPhysicalDeviceRayQueryFeaturesKHR * a,const VkPhysicalDeviceRayQueryFeaturesKHR * b,OnFailCompareFunc onFail)21718 void checkEqual_VkPhysicalDeviceRayQueryFeaturesKHR(const VkPhysicalDeviceRayQueryFeaturesKHR* a,
21719                                                     const VkPhysicalDeviceRayQueryFeaturesKHR* b,
21720                                                     OnFailCompareFunc onFail) {
21721     if (!((a->sType) == (b->sType))) {
21722         onFail("a->sType (Error: Value not equal)");
21723     };
21724     if (a->pNext) {
21725         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21726     }
21727     if (!((a->rayQuery) == (b->rayQuery))) {
21728         onFail("a->rayQuery (Error: Value not equal)");
21729     };
21730 }
21731 
21732 #endif
21733 #ifdef VK_EXT_mesh_shader
checkEqual_VkPhysicalDeviceMeshShaderFeaturesEXT(const VkPhysicalDeviceMeshShaderFeaturesEXT * a,const VkPhysicalDeviceMeshShaderFeaturesEXT * b,OnFailCompareFunc onFail)21734 void checkEqual_VkPhysicalDeviceMeshShaderFeaturesEXT(
21735     const VkPhysicalDeviceMeshShaderFeaturesEXT* a, const VkPhysicalDeviceMeshShaderFeaturesEXT* b,
21736     OnFailCompareFunc onFail) {
21737     if (!((a->sType) == (b->sType))) {
21738         onFail("a->sType (Error: Value not equal)");
21739     };
21740     if (a->pNext) {
21741         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21742     }
21743     if (!((a->taskShader) == (b->taskShader))) {
21744         onFail("a->taskShader (Error: Value not equal)");
21745     };
21746     if (!((a->meshShader) == (b->meshShader))) {
21747         onFail("a->meshShader (Error: Value not equal)");
21748     };
21749     if (!((a->multiviewMeshShader) == (b->multiviewMeshShader))) {
21750         onFail("a->multiviewMeshShader (Error: Value not equal)");
21751     };
21752     if (!((a->primitiveFragmentShadingRateMeshShader) ==
21753           (b->primitiveFragmentShadingRateMeshShader))) {
21754         onFail("a->primitiveFragmentShadingRateMeshShader (Error: Value not equal)");
21755     };
21756     if (!((a->meshShaderQueries) == (b->meshShaderQueries))) {
21757         onFail("a->meshShaderQueries (Error: Value not equal)");
21758     };
21759 }
21760 
checkEqual_VkPhysicalDeviceMeshShaderPropertiesEXT(const VkPhysicalDeviceMeshShaderPropertiesEXT * a,const VkPhysicalDeviceMeshShaderPropertiesEXT * b,OnFailCompareFunc onFail)21761 void checkEqual_VkPhysicalDeviceMeshShaderPropertiesEXT(
21762     const VkPhysicalDeviceMeshShaderPropertiesEXT* a,
21763     const VkPhysicalDeviceMeshShaderPropertiesEXT* b, OnFailCompareFunc onFail) {
21764     if (!((a->sType) == (b->sType))) {
21765         onFail("a->sType (Error: Value not equal)");
21766     };
21767     if (a->pNext) {
21768         checkEqual_extension_struct(a->pNext, b->pNext, onFail);
21769     }
21770     if (!((a->maxTaskWorkGroupTotalCount) == (b->maxTaskWorkGroupTotalCount))) {
21771         onFail("a->maxTaskWorkGroupTotalCount (Error: Value not equal)");
21772     };
21773     if (!((memcmp(a->maxTaskWorkGroupCount, b->maxTaskWorkGroupCount, 3 * sizeof(uint32_t)) ==
21774            0))) {
21775         onFail("a->maxTaskWorkGroupCount (Error: Unequal static array)");
21776     };
21777     if (!((a->maxTaskWorkGroupInvocations) == (b->maxTaskWorkGroupInvocations))) {
21778         onFail("a->maxTaskWorkGroupInvocations (Error: Value not equal)");
21779     };
21780     if (!((memcmp(a->maxTaskWorkGroupSize, b->maxTaskWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
21781         onFail("a->maxTaskWorkGroupSize (Error: Unequal static array)");
21782     };
21783     if (!((a->maxTaskPayloadSize) == (b->maxTaskPayloadSize))) {
21784         onFail("a->maxTaskPayloadSize (Error: Value not equal)");
21785     };
21786     if (!((a->maxTaskSharedMemorySize) == (b->maxTaskSharedMemorySize))) {
21787         onFail("a->maxTaskSharedMemorySize (Error: Value not equal)");
21788     };
21789     if (!((a->maxTaskPayloadAndSharedMemorySize) == (b->maxTaskPayloadAndSharedMemorySize))) {
21790         onFail("a->maxTaskPayloadAndSharedMemorySize (Error: Value not equal)");
21791     };
21792     if (!((a->maxMeshWorkGroupTotalCount) == (b->maxMeshWorkGroupTotalCount))) {
21793         onFail("a->maxMeshWorkGroupTotalCount (Error: Value not equal)");
21794     };
21795     if (!((memcmp(a->maxMeshWorkGroupCount, b->maxMeshWorkGroupCount, 3 * sizeof(uint32_t)) ==
21796            0))) {
21797         onFail("a->maxMeshWorkGroupCount (Error: Unequal static array)");
21798     };
21799     if (!((a->maxMeshWorkGroupInvocations) == (b->maxMeshWorkGroupInvocations))) {
21800         onFail("a->maxMeshWorkGroupInvocations (Error: Value not equal)");
21801     };
21802     if (!((memcmp(a->maxMeshWorkGroupSize, b->maxMeshWorkGroupSize, 3 * sizeof(uint32_t)) == 0))) {
21803         onFail("a->maxMeshWorkGroupSize (Error: Unequal static array)");
21804     };
21805     if (!((a->maxMeshSharedMemorySize) == (b->maxMeshSharedMemorySize))) {
21806         onFail("a->maxMeshSharedMemorySize (Error: Value not equal)");
21807     };
21808     if (!((a->maxMeshPayloadAndSharedMemorySize) == (b->maxMeshPayloadAndSharedMemorySize))) {
21809         onFail("a->maxMeshPayloadAndSharedMemorySize (Error: Value not equal)");
21810     };
21811     if (!((a->maxMeshOutputMemorySize) == (b->maxMeshOutputMemorySize))) {
21812         onFail("a->maxMeshOutputMemorySize (Error: Value not equal)");
21813     };
21814     if (!((a->maxMeshPayloadAndOutputMemorySize) == (b->maxMeshPayloadAndOutputMemorySize))) {
21815         onFail("a->maxMeshPayloadAndOutputMemorySize (Error: Value not equal)");
21816     };
21817     if (!((a->maxMeshOutputComponents) == (b->maxMeshOutputComponents))) {
21818         onFail("a->maxMeshOutputComponents (Error: Value not equal)");
21819     };
21820     if (!((a->maxMeshOutputVertices) == (b->maxMeshOutputVertices))) {
21821         onFail("a->maxMeshOutputVertices (Error: Value not equal)");
21822     };
21823     if (!((a->maxMeshOutputPrimitives) == (b->maxMeshOutputPrimitives))) {
21824         onFail("a->maxMeshOutputPrimitives (Error: Value not equal)");
21825     };
21826     if (!((a->maxMeshOutputLayers) == (b->maxMeshOutputLayers))) {
21827         onFail("a->maxMeshOutputLayers (Error: Value not equal)");
21828     };
21829     if (!((a->maxMeshMultiviewViewCount) == (b->maxMeshMultiviewViewCount))) {
21830         onFail("a->maxMeshMultiviewViewCount (Error: Value not equal)");
21831     };
21832     if (!((a->meshOutputPerVertexGranularity) == (b->meshOutputPerVertexGranularity))) {
21833         onFail("a->meshOutputPerVertexGranularity (Error: Value not equal)");
21834     };
21835     if (!((a->meshOutputPerPrimitiveGranularity) == (b->meshOutputPerPrimitiveGranularity))) {
21836         onFail("a->meshOutputPerPrimitiveGranularity (Error: Value not equal)");
21837     };
21838     if (!((a->maxPreferredTaskWorkGroupInvocations) == (b->maxPreferredTaskWorkGroupInvocations))) {
21839         onFail("a->maxPreferredTaskWorkGroupInvocations (Error: Value not equal)");
21840     };
21841     if (!((a->maxPreferredMeshWorkGroupInvocations) == (b->maxPreferredMeshWorkGroupInvocations))) {
21842         onFail("a->maxPreferredMeshWorkGroupInvocations (Error: Value not equal)");
21843     };
21844     if (!((a->prefersLocalInvocationVertexOutput) == (b->prefersLocalInvocationVertexOutput))) {
21845         onFail("a->prefersLocalInvocationVertexOutput (Error: Value not equal)");
21846     };
21847     if (!((a->prefersLocalInvocationPrimitiveOutput) ==
21848           (b->prefersLocalInvocationPrimitiveOutput))) {
21849         onFail("a->prefersLocalInvocationPrimitiveOutput (Error: Value not equal)");
21850     };
21851     if (!((a->prefersCompactVertexOutput) == (b->prefersCompactVertexOutput))) {
21852         onFail("a->prefersCompactVertexOutput (Error: Value not equal)");
21853     };
21854     if (!((a->prefersCompactPrimitiveOutput) == (b->prefersCompactPrimitiveOutput))) {
21855         onFail("a->prefersCompactPrimitiveOutput (Error: Value not equal)");
21856     };
21857 }
21858 
checkEqual_VkDrawMeshTasksIndirectCommandEXT(const VkDrawMeshTasksIndirectCommandEXT * a,const VkDrawMeshTasksIndirectCommandEXT * b,OnFailCompareFunc onFail)21859 void checkEqual_VkDrawMeshTasksIndirectCommandEXT(const VkDrawMeshTasksIndirectCommandEXT* a,
21860                                                   const VkDrawMeshTasksIndirectCommandEXT* b,
21861                                                   OnFailCompareFunc onFail) {
21862     if (!((a->groupCountX) == (b->groupCountX))) {
21863         onFail("a->groupCountX (Error: Value not equal)");
21864     };
21865     if (!((a->groupCountY) == (b->groupCountY))) {
21866         onFail("a->groupCountY (Error: Value not equal)");
21867     };
21868     if (!((a->groupCountZ) == (b->groupCountZ))) {
21869         onFail("a->groupCountZ (Error: Value not equal)");
21870     };
21871 }
21872 
21873 #endif
checkEqual_extension_struct(const void * structExtension,const void * structExtension2,OnFailCompareFunc onFail)21874 void checkEqual_extension_struct(const void* structExtension, const void* structExtension2,
21875                                  OnFailCompareFunc onFail) {
21876     if (!structExtension) {
21877         return;
21878     }
21879     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
21880     switch (structType) {
21881 #ifdef VK_VERSION_1_0
21882         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
21883             checkEqual_VkShaderModuleCreateInfo(
21884                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension),
21885                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension2), onFail);
21886             break;
21887         }
21888 #endif
21889 #ifdef VK_VERSION_1_1
21890         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
21891             checkEqual_VkPhysicalDeviceSubgroupProperties(
21892                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension),
21893                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension2),
21894                 onFail);
21895             break;
21896         }
21897         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
21898             checkEqual_VkPhysicalDevice16BitStorageFeatures(
21899                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension),
21900                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension2),
21901                 onFail);
21902             break;
21903         }
21904         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
21905             checkEqual_VkMemoryDedicatedRequirements(
21906                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension),
21907                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension2), onFail);
21908             break;
21909         }
21910         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
21911             checkEqual_VkMemoryDedicatedAllocateInfo(
21912                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension),
21913                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension2), onFail);
21914             break;
21915         }
21916         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
21917             checkEqual_VkMemoryAllocateFlagsInfo(
21918                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension),
21919                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension2), onFail);
21920             break;
21921         }
21922         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
21923             checkEqual_VkDeviceGroupRenderPassBeginInfo(
21924                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension),
21925                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension2),
21926                 onFail);
21927             break;
21928         }
21929         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
21930             checkEqual_VkDeviceGroupCommandBufferBeginInfo(
21931                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension),
21932                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension2),
21933                 onFail);
21934             break;
21935         }
21936         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
21937             checkEqual_VkDeviceGroupSubmitInfo(
21938                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension),
21939                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension2), onFail);
21940             break;
21941         }
21942         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
21943             checkEqual_VkDeviceGroupBindSparseInfo(
21944                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension),
21945                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension2), onFail);
21946             break;
21947         }
21948         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
21949             checkEqual_VkBindBufferMemoryDeviceGroupInfo(
21950                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension),
21951                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension2),
21952                 onFail);
21953             break;
21954         }
21955         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
21956             checkEqual_VkBindImageMemoryDeviceGroupInfo(
21957                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension),
21958                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension2),
21959                 onFail);
21960             break;
21961         }
21962         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
21963             checkEqual_VkDeviceGroupDeviceCreateInfo(
21964                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension),
21965                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension2), onFail);
21966             break;
21967         }
21968         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
21969             checkEqual_VkPhysicalDeviceFeatures2(
21970                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension),
21971                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension2), onFail);
21972             break;
21973         }
21974         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
21975             checkEqual_VkPhysicalDevicePointClippingProperties(
21976                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension),
21977                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension2),
21978                 onFail);
21979             break;
21980         }
21981         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
21982             checkEqual_VkRenderPassInputAttachmentAspectCreateInfo(
21983                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
21984                     structExtension),
21985                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
21986                     structExtension2),
21987                 onFail);
21988             break;
21989         }
21990         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
21991             checkEqual_VkImageViewUsageCreateInfo(
21992                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension),
21993                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension2), onFail);
21994             break;
21995         }
21996         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
21997             checkEqual_VkPipelineTessellationDomainOriginStateCreateInfo(
21998                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
21999                     structExtension),
22000                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
22001                     structExtension2),
22002                 onFail);
22003             break;
22004         }
22005         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
22006             checkEqual_VkRenderPassMultiviewCreateInfo(
22007                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension),
22008                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension2), onFail);
22009             break;
22010         }
22011         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
22012             checkEqual_VkPhysicalDeviceMultiviewFeatures(
22013                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension),
22014                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension2),
22015                 onFail);
22016             break;
22017         }
22018         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
22019             checkEqual_VkPhysicalDeviceMultiviewProperties(
22020                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension),
22021                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension2),
22022                 onFail);
22023             break;
22024         }
22025         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
22026             checkEqual_VkPhysicalDeviceVariablePointersFeatures(
22027                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension),
22028                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension2),
22029                 onFail);
22030             break;
22031         }
22032         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
22033             checkEqual_VkPhysicalDeviceProtectedMemoryFeatures(
22034                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension),
22035                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension2),
22036                 onFail);
22037             break;
22038         }
22039         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
22040             checkEqual_VkPhysicalDeviceProtectedMemoryProperties(
22041                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension),
22042                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(
22043                     structExtension2),
22044                 onFail);
22045             break;
22046         }
22047         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
22048             checkEqual_VkProtectedSubmitInfo(
22049                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension),
22050                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension2), onFail);
22051             break;
22052         }
22053         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
22054             checkEqual_VkSamplerYcbcrConversionInfo(
22055                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension),
22056                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension2), onFail);
22057             break;
22058         }
22059         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
22060             checkEqual_VkBindImagePlaneMemoryInfo(
22061                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension),
22062                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension2), onFail);
22063             break;
22064         }
22065         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
22066             checkEqual_VkImagePlaneMemoryRequirementsInfo(
22067                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension),
22068                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension2),
22069                 onFail);
22070             break;
22071         }
22072         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
22073             checkEqual_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
22074                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
22075                     structExtension),
22076                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
22077                     structExtension2),
22078                 onFail);
22079             break;
22080         }
22081         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
22082             checkEqual_VkSamplerYcbcrConversionImageFormatProperties(
22083                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
22084                     structExtension),
22085                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
22086                     structExtension2),
22087                 onFail);
22088             break;
22089         }
22090         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
22091             checkEqual_VkPhysicalDeviceExternalImageFormatInfo(
22092                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension),
22093                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension2),
22094                 onFail);
22095             break;
22096         }
22097         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
22098             checkEqual_VkExternalImageFormatProperties(
22099                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension),
22100                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension2), onFail);
22101             break;
22102         }
22103         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
22104             checkEqual_VkPhysicalDeviceIDProperties(
22105                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension),
22106                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension2), onFail);
22107             break;
22108         }
22109         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
22110             checkEqual_VkExternalMemoryImageCreateInfo(
22111                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension),
22112                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension2), onFail);
22113             break;
22114         }
22115         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
22116             checkEqual_VkExternalMemoryBufferCreateInfo(
22117                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension),
22118                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension2),
22119                 onFail);
22120             break;
22121         }
22122         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
22123             checkEqual_VkExportMemoryAllocateInfo(
22124                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension),
22125                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension2), onFail);
22126             break;
22127         }
22128         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
22129             checkEqual_VkExportFenceCreateInfo(
22130                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension),
22131                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension2), onFail);
22132             break;
22133         }
22134         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
22135             checkEqual_VkExportSemaphoreCreateInfo(
22136                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension),
22137                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension2), onFail);
22138             break;
22139         }
22140         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
22141             checkEqual_VkPhysicalDeviceMaintenance3Properties(
22142                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension),
22143                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension2),
22144                 onFail);
22145             break;
22146         }
22147         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
22148             checkEqual_VkPhysicalDeviceShaderDrawParametersFeatures(
22149                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
22150                     structExtension),
22151                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
22152                     structExtension2),
22153                 onFail);
22154             break;
22155         }
22156 #endif
22157 #ifdef VK_VERSION_1_2
22158         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
22159             checkEqual_VkPhysicalDeviceVulkan11Features(
22160                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension),
22161                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension2),
22162                 onFail);
22163             break;
22164         }
22165         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
22166             checkEqual_VkPhysicalDeviceVulkan11Properties(
22167                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension),
22168                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension2),
22169                 onFail);
22170             break;
22171         }
22172         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
22173             checkEqual_VkPhysicalDeviceVulkan12Features(
22174                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension),
22175                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension2),
22176                 onFail);
22177             break;
22178         }
22179         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
22180             checkEqual_VkPhysicalDeviceVulkan12Properties(
22181                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension),
22182                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension2),
22183                 onFail);
22184             break;
22185         }
22186         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
22187             checkEqual_VkImageFormatListCreateInfo(
22188                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension),
22189                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension2), onFail);
22190             break;
22191         }
22192         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
22193             checkEqual_VkPhysicalDevice8BitStorageFeatures(
22194                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension),
22195                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension2),
22196                 onFail);
22197             break;
22198         }
22199         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
22200             checkEqual_VkPhysicalDeviceDriverProperties(
22201                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension),
22202                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension2),
22203                 onFail);
22204             break;
22205         }
22206         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
22207             checkEqual_VkPhysicalDeviceShaderAtomicInt64Features(
22208                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension),
22209                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(
22210                     structExtension2),
22211                 onFail);
22212             break;
22213         }
22214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
22215             checkEqual_VkPhysicalDeviceShaderFloat16Int8Features(
22216                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension),
22217                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(
22218                     structExtension2),
22219                 onFail);
22220             break;
22221         }
22222         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
22223             checkEqual_VkPhysicalDeviceFloatControlsProperties(
22224                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension),
22225                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension2),
22226                 onFail);
22227             break;
22228         }
22229         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
22230             checkEqual_VkDescriptorSetLayoutBindingFlagsCreateInfo(
22231                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
22232                     structExtension),
22233                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
22234                     structExtension2),
22235                 onFail);
22236             break;
22237         }
22238         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
22239             checkEqual_VkPhysicalDeviceDescriptorIndexingFeatures(
22240                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
22241                     structExtension),
22242                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
22243                     structExtension2),
22244                 onFail);
22245             break;
22246         }
22247         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
22248             checkEqual_VkPhysicalDeviceDescriptorIndexingProperties(
22249                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
22250                     structExtension),
22251                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
22252                     structExtension2),
22253                 onFail);
22254             break;
22255         }
22256         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
22257             checkEqual_VkDescriptorSetVariableDescriptorCountAllocateInfo(
22258                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
22259                     structExtension),
22260                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
22261                     structExtension2),
22262                 onFail);
22263             break;
22264         }
22265         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
22266             checkEqual_VkDescriptorSetVariableDescriptorCountLayoutSupport(
22267                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
22268                     structExtension),
22269                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
22270                     structExtension2),
22271                 onFail);
22272             break;
22273         }
22274         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
22275             checkEqual_VkSubpassDescriptionDepthStencilResolve(
22276                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension),
22277                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension2),
22278                 onFail);
22279             break;
22280         }
22281         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
22282             checkEqual_VkPhysicalDeviceDepthStencilResolveProperties(
22283                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
22284                     structExtension),
22285                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
22286                     structExtension2),
22287                 onFail);
22288             break;
22289         }
22290         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
22291             checkEqual_VkPhysicalDeviceScalarBlockLayoutFeatures(
22292                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension),
22293                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(
22294                     structExtension2),
22295                 onFail);
22296             break;
22297         }
22298         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
22299             checkEqual_VkImageStencilUsageCreateInfo(
22300                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension),
22301                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension2), onFail);
22302             break;
22303         }
22304         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
22305             checkEqual_VkSamplerReductionModeCreateInfo(
22306                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension),
22307                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension2),
22308                 onFail);
22309             break;
22310         }
22311         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
22312             checkEqual_VkPhysicalDeviceSamplerFilterMinmaxProperties(
22313                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
22314                     structExtension),
22315                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
22316                     structExtension2),
22317                 onFail);
22318             break;
22319         }
22320         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
22321             checkEqual_VkPhysicalDeviceVulkanMemoryModelFeatures(
22322                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension),
22323                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(
22324                     structExtension2),
22325                 onFail);
22326             break;
22327         }
22328         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
22329             checkEqual_VkPhysicalDeviceImagelessFramebufferFeatures(
22330                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
22331                     structExtension),
22332                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
22333                     structExtension2),
22334                 onFail);
22335             break;
22336         }
22337         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
22338             checkEqual_VkFramebufferAttachmentsCreateInfo(
22339                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension),
22340                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension2),
22341                 onFail);
22342             break;
22343         }
22344         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
22345             checkEqual_VkRenderPassAttachmentBeginInfo(
22346                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension),
22347                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension2), onFail);
22348             break;
22349         }
22350         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
22351             checkEqual_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
22352                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
22353                     structExtension),
22354                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
22355                     structExtension2),
22356                 onFail);
22357             break;
22358         }
22359         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
22360             checkEqual_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
22361                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
22362                     structExtension),
22363                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
22364                     structExtension2),
22365                 onFail);
22366             break;
22367         }
22368         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
22369             checkEqual_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
22370                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
22371                     structExtension),
22372                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
22373                     structExtension2),
22374                 onFail);
22375             break;
22376         }
22377         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
22378             checkEqual_VkAttachmentReferenceStencilLayout(
22379                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension),
22380                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension2),
22381                 onFail);
22382             break;
22383         }
22384         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
22385             checkEqual_VkAttachmentDescriptionStencilLayout(
22386                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension),
22387                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension2),
22388                 onFail);
22389             break;
22390         }
22391         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
22392             checkEqual_VkPhysicalDeviceHostQueryResetFeatures(
22393                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension),
22394                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension2),
22395                 onFail);
22396             break;
22397         }
22398         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
22399             checkEqual_VkPhysicalDeviceTimelineSemaphoreFeatures(
22400                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension),
22401                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(
22402                     structExtension2),
22403                 onFail);
22404             break;
22405         }
22406         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
22407             checkEqual_VkPhysicalDeviceTimelineSemaphoreProperties(
22408                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
22409                     structExtension),
22410                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
22411                     structExtension2),
22412                 onFail);
22413             break;
22414         }
22415         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
22416             checkEqual_VkSemaphoreTypeCreateInfo(
22417                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension),
22418                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension2), onFail);
22419             break;
22420         }
22421         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
22422             checkEqual_VkTimelineSemaphoreSubmitInfo(
22423                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension),
22424                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension2), onFail);
22425             break;
22426         }
22427         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
22428             checkEqual_VkPhysicalDeviceBufferDeviceAddressFeatures(
22429                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
22430                     structExtension),
22431                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
22432                     structExtension2),
22433                 onFail);
22434             break;
22435         }
22436         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
22437             checkEqual_VkBufferOpaqueCaptureAddressCreateInfo(
22438                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension),
22439                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension2),
22440                 onFail);
22441             break;
22442         }
22443         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
22444             checkEqual_VkMemoryOpaqueCaptureAddressAllocateInfo(
22445                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension),
22446                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension2),
22447                 onFail);
22448             break;
22449         }
22450 #endif
22451 #ifdef VK_VERSION_1_3
22452         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
22453             checkEqual_VkPhysicalDeviceVulkan13Features(
22454                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension),
22455                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension2),
22456                 onFail);
22457             break;
22458         }
22459         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
22460             checkEqual_VkPhysicalDeviceVulkan13Properties(
22461                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension),
22462                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension2),
22463                 onFail);
22464             break;
22465         }
22466         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
22467             checkEqual_VkPipelineCreationFeedbackCreateInfo(
22468                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension),
22469                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension2),
22470                 onFail);
22471             break;
22472         }
22473         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
22474             checkEqual_VkPhysicalDeviceShaderTerminateInvocationFeatures(
22475                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
22476                     structExtension),
22477                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
22478                     structExtension2),
22479                 onFail);
22480             break;
22481         }
22482         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
22483             checkEqual_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
22484                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
22485                     structExtension),
22486                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
22487                     structExtension2),
22488                 onFail);
22489             break;
22490         }
22491         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
22492             checkEqual_VkPhysicalDevicePrivateDataFeatures(
22493                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension),
22494                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension2),
22495                 onFail);
22496             break;
22497         }
22498         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
22499             checkEqual_VkDevicePrivateDataCreateInfo(
22500                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension),
22501                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension2), onFail);
22502             break;
22503         }
22504         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
22505             checkEqual_VkPhysicalDevicePipelineCreationCacheControlFeatures(
22506                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
22507                     structExtension),
22508                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
22509                     structExtension2),
22510                 onFail);
22511             break;
22512         }
22513         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
22514             checkEqual_VkMemoryBarrier2(reinterpret_cast<const VkMemoryBarrier2*>(structExtension),
22515                                         reinterpret_cast<const VkMemoryBarrier2*>(structExtension2),
22516                                         onFail);
22517             break;
22518         }
22519         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
22520             checkEqual_VkPhysicalDeviceSynchronization2Features(
22521                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension),
22522                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension2),
22523                 onFail);
22524             break;
22525         }
22526         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
22527             checkEqual_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
22528                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
22529                     structExtension),
22530                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
22531                     structExtension2),
22532                 onFail);
22533             break;
22534         }
22535         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
22536             checkEqual_VkPhysicalDeviceImageRobustnessFeatures(
22537                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension),
22538                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension2),
22539                 onFail);
22540             break;
22541         }
22542         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
22543             checkEqual_VkPhysicalDeviceSubgroupSizeControlFeatures(
22544                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
22545                     structExtension),
22546                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
22547                     structExtension2),
22548                 onFail);
22549             break;
22550         }
22551         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
22552             checkEqual_VkPhysicalDeviceSubgroupSizeControlProperties(
22553                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
22554                     structExtension),
22555                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
22556                     structExtension2),
22557                 onFail);
22558             break;
22559         }
22560         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
22561             checkEqual_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
22562                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
22563                     structExtension),
22564                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
22565                     structExtension2),
22566                 onFail);
22567             break;
22568         }
22569         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
22570             checkEqual_VkPhysicalDeviceInlineUniformBlockFeatures(
22571                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
22572                     structExtension),
22573                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
22574                     structExtension2),
22575                 onFail);
22576             break;
22577         }
22578         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
22579             checkEqual_VkPhysicalDeviceInlineUniformBlockProperties(
22580                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
22581                     structExtension),
22582                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
22583                     structExtension2),
22584                 onFail);
22585             break;
22586         }
22587         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
22588             checkEqual_VkWriteDescriptorSetInlineUniformBlock(
22589                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension),
22590                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension2),
22591                 onFail);
22592             break;
22593         }
22594         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
22595             checkEqual_VkDescriptorPoolInlineUniformBlockCreateInfo(
22596                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
22597                     structExtension),
22598                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
22599                     structExtension2),
22600                 onFail);
22601             break;
22602         }
22603         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
22604             checkEqual_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
22605                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
22606                     structExtension),
22607                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
22608                     structExtension2),
22609                 onFail);
22610             break;
22611         }
22612         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
22613             checkEqual_VkPipelineRenderingCreateInfo(
22614                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension),
22615                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension2), onFail);
22616             break;
22617         }
22618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
22619             checkEqual_VkPhysicalDeviceDynamicRenderingFeatures(
22620                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension),
22621                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension2),
22622                 onFail);
22623             break;
22624         }
22625         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
22626             checkEqual_VkCommandBufferInheritanceRenderingInfo(
22627                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension),
22628                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension2),
22629                 onFail);
22630             break;
22631         }
22632         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
22633             checkEqual_VkPhysicalDeviceShaderIntegerDotProductFeatures(
22634                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
22635                     structExtension),
22636                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
22637                     structExtension2),
22638                 onFail);
22639             break;
22640         }
22641         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
22642             checkEqual_VkPhysicalDeviceShaderIntegerDotProductProperties(
22643                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
22644                     structExtension),
22645                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
22646                     structExtension2),
22647                 onFail);
22648             break;
22649         }
22650         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
22651             checkEqual_VkPhysicalDeviceTexelBufferAlignmentProperties(
22652                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
22653                     structExtension),
22654                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
22655                     structExtension2),
22656                 onFail);
22657             break;
22658         }
22659         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
22660             checkEqual_VkFormatProperties3(
22661                 reinterpret_cast<const VkFormatProperties3*>(structExtension),
22662                 reinterpret_cast<const VkFormatProperties3*>(structExtension2), onFail);
22663             break;
22664         }
22665         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
22666             checkEqual_VkPhysicalDeviceMaintenance4Features(
22667                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension),
22668                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension2),
22669                 onFail);
22670             break;
22671         }
22672         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
22673             checkEqual_VkPhysicalDeviceMaintenance4Properties(
22674                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension),
22675                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension2),
22676                 onFail);
22677             break;
22678         }
22679 #endif
22680 #ifdef VK_KHR_swapchain
22681         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
22682             checkEqual_VkImageSwapchainCreateInfoKHR(
22683                 reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension),
22684                 reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension2), onFail);
22685             break;
22686         }
22687         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
22688             checkEqual_VkBindImageMemorySwapchainInfoKHR(
22689                 reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension),
22690                 reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension2),
22691                 onFail);
22692             break;
22693         }
22694         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
22695             checkEqual_VkDeviceGroupPresentInfoKHR(
22696                 reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension),
22697                 reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension2), onFail);
22698             break;
22699         }
22700         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
22701             checkEqual_VkDeviceGroupSwapchainCreateInfoKHR(
22702                 reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension),
22703                 reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension2),
22704                 onFail);
22705             break;
22706         }
22707 #endif
22708 #ifdef VK_KHR_display_swapchain
22709         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
22710             checkEqual_VkDisplayPresentInfoKHR(
22711                 reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension),
22712                 reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension2), onFail);
22713             break;
22714         }
22715 #endif
22716 #ifdef VK_KHR_video_queue
22717         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
22718             checkEqual_VkQueueFamilyQueryResultStatusPropertiesKHR(
22719                 reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR*>(
22720                     structExtension),
22721                 reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR*>(
22722                     structExtension2),
22723                 onFail);
22724             break;
22725         }
22726         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
22727             checkEqual_VkQueueFamilyVideoPropertiesKHR(
22728                 reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR*>(structExtension),
22729                 reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR*>(structExtension2), onFail);
22730             break;
22731         }
22732         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
22733             checkEqual_VkVideoProfileInfoKHR(
22734                 reinterpret_cast<const VkVideoProfileInfoKHR*>(structExtension),
22735                 reinterpret_cast<const VkVideoProfileInfoKHR*>(structExtension2), onFail);
22736             break;
22737         }
22738         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
22739             checkEqual_VkVideoProfileListInfoKHR(
22740                 reinterpret_cast<const VkVideoProfileListInfoKHR*>(structExtension),
22741                 reinterpret_cast<const VkVideoProfileListInfoKHR*>(structExtension2), onFail);
22742             break;
22743         }
22744 #endif
22745 #ifdef VK_KHR_video_decode_queue
22746         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
22747             checkEqual_VkVideoDecodeCapabilitiesKHR(
22748                 reinterpret_cast<const VkVideoDecodeCapabilitiesKHR*>(structExtension),
22749                 reinterpret_cast<const VkVideoDecodeCapabilitiesKHR*>(structExtension2), onFail);
22750             break;
22751         }
22752         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
22753             checkEqual_VkVideoDecodeUsageInfoKHR(
22754                 reinterpret_cast<const VkVideoDecodeUsageInfoKHR*>(structExtension),
22755                 reinterpret_cast<const VkVideoDecodeUsageInfoKHR*>(structExtension2), onFail);
22756             break;
22757         }
22758 #endif
22759 #ifdef VK_KHR_video_decode_h264
22760         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
22761             checkEqual_VkVideoDecodeH264ProfileInfoKHR(
22762                 reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR*>(structExtension),
22763                 reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR*>(structExtension2), onFail);
22764             break;
22765         }
22766         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
22767             checkEqual_VkVideoDecodeH264CapabilitiesKHR(
22768                 reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR*>(structExtension),
22769                 reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR*>(structExtension2),
22770                 onFail);
22771             break;
22772         }
22773         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
22774             checkEqual_VkVideoDecodeH264SessionParametersAddInfoKHR(
22775                 reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR*>(
22776                     structExtension),
22777                 reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR*>(
22778                     structExtension2),
22779                 onFail);
22780             break;
22781         }
22782         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
22783             checkEqual_VkVideoDecodeH264SessionParametersCreateInfoKHR(
22784                 reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR*>(
22785                     structExtension),
22786                 reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR*>(
22787                     structExtension2),
22788                 onFail);
22789             break;
22790         }
22791         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
22792             checkEqual_VkVideoDecodeH264PictureInfoKHR(
22793                 reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR*>(structExtension),
22794                 reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR*>(structExtension2), onFail);
22795             break;
22796         }
22797         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
22798             checkEqual_VkVideoDecodeH264DpbSlotInfoKHR(
22799                 reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR*>(structExtension),
22800                 reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR*>(structExtension2), onFail);
22801             break;
22802         }
22803 #endif
22804 #ifdef VK_KHR_dynamic_rendering
22805         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
22806             checkEqual_VkRenderingFragmentShadingRateAttachmentInfoKHR(
22807                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
22808                     structExtension),
22809                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
22810                     structExtension2),
22811                 onFail);
22812             break;
22813         }
22814         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
22815             checkEqual_VkRenderingFragmentDensityMapAttachmentInfoEXT(
22816                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
22817                     structExtension),
22818                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
22819                     structExtension2),
22820                 onFail);
22821             break;
22822         }
22823         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
22824             checkEqual_VkAttachmentSampleCountInfoAMD(
22825                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension),
22826                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension2), onFail);
22827             break;
22828         }
22829         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
22830             checkEqual_VkMultiviewPerViewAttributesInfoNVX(
22831                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension),
22832                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension2),
22833                 onFail);
22834             break;
22835         }
22836 #endif
22837 #ifdef VK_KHR_external_memory_win32
22838         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
22839             checkEqual_VkImportMemoryWin32HandleInfoKHR(
22840                 reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension),
22841                 reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension2),
22842                 onFail);
22843             break;
22844         }
22845         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
22846             checkEqual_VkExportMemoryWin32HandleInfoKHR(
22847                 reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension),
22848                 reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension2),
22849                 onFail);
22850             break;
22851         }
22852 #endif
22853 #ifdef VK_KHR_external_memory_fd
22854         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: {
22855             checkEqual_VkImportMemoryFdInfoKHR(
22856                 reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension),
22857                 reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension2), onFail);
22858             break;
22859         }
22860 #endif
22861 #ifdef VK_KHR_win32_keyed_mutex
22862         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
22863             checkEqual_VkWin32KeyedMutexAcquireReleaseInfoKHR(
22864                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension),
22865                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension2),
22866                 onFail);
22867             break;
22868         }
22869 #endif
22870 #ifdef VK_KHR_external_semaphore_win32
22871         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: {
22872             checkEqual_VkExportSemaphoreWin32HandleInfoKHR(
22873                 reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension),
22874                 reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension2),
22875                 onFail);
22876             break;
22877         }
22878         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: {
22879             checkEqual_VkD3D12FenceSubmitInfoKHR(
22880                 reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension),
22881                 reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension2), onFail);
22882             break;
22883         }
22884 #endif
22885 #ifdef VK_KHR_push_descriptor
22886         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
22887             checkEqual_VkPhysicalDevicePushDescriptorPropertiesKHR(
22888                 reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(
22889                     structExtension),
22890                 reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(
22891                     structExtension2),
22892                 onFail);
22893             break;
22894         }
22895 #endif
22896 #ifdef VK_KHR_incremental_present
22897         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
22898             checkEqual_VkPresentRegionsKHR(
22899                 reinterpret_cast<const VkPresentRegionsKHR*>(structExtension),
22900                 reinterpret_cast<const VkPresentRegionsKHR*>(structExtension2), onFail);
22901             break;
22902         }
22903 #endif
22904 #ifdef VK_KHR_shared_presentable_image
22905         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
22906             checkEqual_VkSharedPresentSurfaceCapabilitiesKHR(
22907                 reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension),
22908                 reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension2),
22909                 onFail);
22910             break;
22911         }
22912 #endif
22913 #ifdef VK_KHR_external_fence_win32
22914         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
22915             checkEqual_VkExportFenceWin32HandleInfoKHR(
22916                 reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension),
22917                 reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension2), onFail);
22918             break;
22919         }
22920 #endif
22921 #ifdef VK_KHR_performance_query
22922         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
22923             checkEqual_VkPhysicalDevicePerformanceQueryFeaturesKHR(
22924                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(
22925                     structExtension),
22926                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(
22927                     structExtension2),
22928                 onFail);
22929             break;
22930         }
22931         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
22932             checkEqual_VkPhysicalDevicePerformanceQueryPropertiesKHR(
22933                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(
22934                     structExtension),
22935                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(
22936                     structExtension2),
22937                 onFail);
22938             break;
22939         }
22940         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
22941             checkEqual_VkQueryPoolPerformanceCreateInfoKHR(
22942                 reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension),
22943                 reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension2),
22944                 onFail);
22945             break;
22946         }
22947         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
22948             checkEqual_VkPerformanceQuerySubmitInfoKHR(
22949                 reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension),
22950                 reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension2), onFail);
22951             break;
22952         }
22953 #endif
22954 #ifdef VK_KHR_portability_subset
22955 #ifdef VK_ENABLE_BETA_EXTENSIONS
22956         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
22957             checkEqual_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
22958                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(
22959                     structExtension),
22960                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(
22961                     structExtension2),
22962                 onFail);
22963             break;
22964         }
22965 #endif  // VK_ENABLE_BETA_EXTENSIONS
22966 #ifdef VK_ENABLE_BETA_EXTENSIONS
22967         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
22968             checkEqual_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
22969                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(
22970                     structExtension),
22971                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(
22972                     structExtension2),
22973                 onFail);
22974             break;
22975         }
22976 #endif  // VK_ENABLE_BETA_EXTENSIONS
22977 #endif
22978 #ifdef VK_KHR_shader_clock
22979         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
22980             checkEqual_VkPhysicalDeviceShaderClockFeaturesKHR(
22981                 reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension),
22982                 reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension2),
22983                 onFail);
22984             break;
22985         }
22986 #endif
22987 #ifdef VK_KHR_video_decode_h265
22988         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
22989             checkEqual_VkVideoDecodeH265ProfileInfoKHR(
22990                 reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR*>(structExtension),
22991                 reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR*>(structExtension2), onFail);
22992             break;
22993         }
22994         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
22995             checkEqual_VkVideoDecodeH265CapabilitiesKHR(
22996                 reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR*>(structExtension),
22997                 reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR*>(structExtension2),
22998                 onFail);
22999             break;
23000         }
23001         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
23002             checkEqual_VkVideoDecodeH265SessionParametersAddInfoKHR(
23003                 reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR*>(
23004                     structExtension),
23005                 reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR*>(
23006                     structExtension2),
23007                 onFail);
23008             break;
23009         }
23010         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
23011             checkEqual_VkVideoDecodeH265SessionParametersCreateInfoKHR(
23012                 reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR*>(
23013                     structExtension),
23014                 reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR*>(
23015                     structExtension2),
23016                 onFail);
23017             break;
23018         }
23019         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
23020             checkEqual_VkVideoDecodeH265PictureInfoKHR(
23021                 reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR*>(structExtension),
23022                 reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR*>(structExtension2), onFail);
23023             break;
23024         }
23025         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
23026             checkEqual_VkVideoDecodeH265DpbSlotInfoKHR(
23027                 reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR*>(structExtension),
23028                 reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR*>(structExtension2), onFail);
23029             break;
23030         }
23031 #endif
23032 #ifdef VK_KHR_global_priority
23033         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
23034             checkEqual_VkDeviceQueueGlobalPriorityCreateInfoKHR(
23035                 reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR*>(structExtension),
23036                 reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR*>(structExtension2),
23037                 onFail);
23038             break;
23039         }
23040         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
23041             checkEqual_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
23042                 reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(
23043                     structExtension),
23044                 reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(
23045                     structExtension2),
23046                 onFail);
23047             break;
23048         }
23049         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
23050             checkEqual_VkQueueFamilyGlobalPriorityPropertiesKHR(
23051                 reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR*>(structExtension),
23052                 reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR*>(structExtension2),
23053                 onFail);
23054             break;
23055         }
23056 #endif
23057 #ifdef VK_KHR_fragment_shading_rate
23058         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
23059             checkEqual_VkFragmentShadingRateAttachmentInfoKHR(
23060                 reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension),
23061                 reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension2),
23062                 onFail);
23063             break;
23064         }
23065         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
23066             checkEqual_VkPipelineFragmentShadingRateStateCreateInfoKHR(
23067                 reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(
23068                     structExtension),
23069                 reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(
23070                     structExtension2),
23071                 onFail);
23072             break;
23073         }
23074         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
23075             checkEqual_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
23076                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(
23077                     structExtension),
23078                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(
23079                     structExtension2),
23080                 onFail);
23081             break;
23082         }
23083         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
23084             checkEqual_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
23085                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(
23086                     structExtension),
23087                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(
23088                     structExtension2),
23089                 onFail);
23090             break;
23091         }
23092 #endif
23093 #ifdef VK_KHR_surface_protected_capabilities
23094         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
23095             checkEqual_VkSurfaceProtectedCapabilitiesKHR(
23096                 reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension),
23097                 reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension2),
23098                 onFail);
23099             break;
23100         }
23101 #endif
23102 #ifdef VK_KHR_present_wait
23103         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
23104             checkEqual_VkPhysicalDevicePresentWaitFeaturesKHR(
23105                 reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension),
23106                 reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension2),
23107                 onFail);
23108             break;
23109         }
23110 #endif
23111 #ifdef VK_KHR_pipeline_executable_properties
23112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
23113             checkEqual_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
23114                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
23115                     structExtension),
23116                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
23117                     structExtension2),
23118                 onFail);
23119             break;
23120         }
23121 #endif
23122 #ifdef VK_KHR_pipeline_library
23123         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
23124             checkEqual_VkPipelineLibraryCreateInfoKHR(
23125                 reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>(structExtension),
23126                 reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>(structExtension2), onFail);
23127             break;
23128         }
23129 #endif
23130 #ifdef VK_KHR_present_id
23131         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
23132             checkEqual_VkPresentIdKHR(reinterpret_cast<const VkPresentIdKHR*>(structExtension),
23133                                       reinterpret_cast<const VkPresentIdKHR*>(structExtension2),
23134                                       onFail);
23135             break;
23136         }
23137         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
23138             checkEqual_VkPhysicalDevicePresentIdFeaturesKHR(
23139                 reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension),
23140                 reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension2),
23141                 onFail);
23142             break;
23143         }
23144 #endif
23145 #ifdef VK_KHR_video_encode_queue
23146 #ifdef VK_ENABLE_BETA_EXTENSIONS
23147         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
23148             checkEqual_VkVideoEncodeCapabilitiesKHR(
23149                 reinterpret_cast<const VkVideoEncodeCapabilitiesKHR*>(structExtension),
23150                 reinterpret_cast<const VkVideoEncodeCapabilitiesKHR*>(structExtension2), onFail);
23151             break;
23152         }
23153 #endif  // VK_ENABLE_BETA_EXTENSIONS
23154 #ifdef VK_ENABLE_BETA_EXTENSIONS
23155         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
23156             checkEqual_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
23157                 reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>(
23158                     structExtension),
23159                 reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>(
23160                     structExtension2),
23161                 onFail);
23162             break;
23163         }
23164 #endif  // VK_ENABLE_BETA_EXTENSIONS
23165 #ifdef VK_ENABLE_BETA_EXTENSIONS
23166         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
23167             checkEqual_VkVideoEncodeUsageInfoKHR(
23168                 reinterpret_cast<const VkVideoEncodeUsageInfoKHR*>(structExtension),
23169                 reinterpret_cast<const VkVideoEncodeUsageInfoKHR*>(structExtension2), onFail);
23170             break;
23171         }
23172 #endif  // VK_ENABLE_BETA_EXTENSIONS
23173 #ifdef VK_ENABLE_BETA_EXTENSIONS
23174         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: {
23175             checkEqual_VkVideoEncodeRateControlLayerInfoKHR(
23176                 reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR*>(structExtension),
23177                 reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR*>(structExtension2),
23178                 onFail);
23179             break;
23180         }
23181 #endif  // VK_ENABLE_BETA_EXTENSIONS
23182 #ifdef VK_ENABLE_BETA_EXTENSIONS
23183         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
23184             checkEqual_VkVideoEncodeRateControlInfoKHR(
23185                 reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension),
23186                 reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension2), onFail);
23187             break;
23188         }
23189 #endif  // VK_ENABLE_BETA_EXTENSIONS
23190 #endif
23191 #ifdef VK_KHR_synchronization2
23192         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
23193             checkEqual_VkQueueFamilyCheckpointProperties2NV(
23194                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension),
23195                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension2),
23196                 onFail);
23197             break;
23198         }
23199 #endif
23200 #ifdef VK_KHR_fragment_shader_barycentric
23201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
23202             checkEqual_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
23203                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(
23204                     structExtension),
23205                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(
23206                     structExtension2),
23207                 onFail);
23208             break;
23209         }
23210         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
23211             checkEqual_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
23212                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>(
23213                     structExtension),
23214                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>(
23215                     structExtension2),
23216                 onFail);
23217             break;
23218         }
23219 #endif
23220 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
23221         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
23222             checkEqual_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
23223                 reinterpret_cast<
23224                     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(
23225                     structExtension),
23226                 reinterpret_cast<
23227                     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(
23228                     structExtension2),
23229                 onFail);
23230             break;
23231         }
23232 #endif
23233 #ifdef VK_KHR_workgroup_memory_explicit_layout
23234         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
23235             checkEqual_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
23236                 reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(
23237                     structExtension),
23238                 reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(
23239                     structExtension2),
23240                 onFail);
23241             break;
23242         }
23243 #endif
23244 #ifdef VK_KHR_ray_tracing_maintenance1
23245         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
23246             checkEqual_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
23247                 reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(
23248                     structExtension),
23249                 reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(
23250                     structExtension2),
23251                 onFail);
23252             break;
23253         }
23254 #endif
23255 #ifdef VK_KHR_ray_tracing_position_fetch
23256         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
23257             checkEqual_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
23258                 reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>(
23259                     structExtension),
23260                 reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>(
23261                     structExtension2),
23262                 onFail);
23263             break;
23264         }
23265 #endif
23266 #ifdef VK_ANDROID_native_buffer
23267         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
23268             checkEqual_VkNativeBufferANDROID(
23269                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension),
23270                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension2), onFail);
23271             break;
23272         }
23273 #endif
23274 #ifdef VK_EXT_debug_report
23275         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
23276             checkEqual_VkDebugReportCallbackCreateInfoEXT(
23277                 reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension),
23278                 reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension2),
23279                 onFail);
23280             break;
23281         }
23282 #endif
23283 #ifdef VK_AMD_rasterization_order
23284         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
23285             checkEqual_VkPipelineRasterizationStateRasterizationOrderAMD(
23286                 reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(
23287                     structExtension),
23288                 reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(
23289                     structExtension2),
23290                 onFail);
23291             break;
23292         }
23293 #endif
23294 #ifdef VK_NV_dedicated_allocation
23295         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
23296             checkEqual_VkDedicatedAllocationImageCreateInfoNV(
23297                 reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension),
23298                 reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension2),
23299                 onFail);
23300             break;
23301         }
23302         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
23303             checkEqual_VkDedicatedAllocationBufferCreateInfoNV(
23304                 reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension),
23305                 reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension2),
23306                 onFail);
23307             break;
23308         }
23309         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
23310             checkEqual_VkDedicatedAllocationMemoryAllocateInfoNV(
23311                 reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension),
23312                 reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(
23313                     structExtension2),
23314                 onFail);
23315             break;
23316         }
23317 #endif
23318 #ifdef VK_EXT_transform_feedback
23319         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
23320             checkEqual_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
23321                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
23322                     structExtension),
23323                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
23324                     structExtension2),
23325                 onFail);
23326             break;
23327         }
23328         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
23329             checkEqual_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
23330                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
23331                     structExtension),
23332                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
23333                     structExtension2),
23334                 onFail);
23335             break;
23336         }
23337         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
23338             checkEqual_VkPipelineRasterizationStateStreamCreateInfoEXT(
23339                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
23340                     structExtension),
23341                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
23342                     structExtension2),
23343                 onFail);
23344             break;
23345         }
23346 #endif
23347 #ifdef VK_EXT_video_encode_h264
23348 #ifdef VK_ENABLE_BETA_EXTENSIONS
23349         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
23350             checkEqual_VkVideoEncodeH264CapabilitiesEXT(
23351                 reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension),
23352                 reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension2),
23353                 onFail);
23354             break;
23355         }
23356 #endif  // VK_ENABLE_BETA_EXTENSIONS
23357 #ifdef VK_ENABLE_BETA_EXTENSIONS
23358         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
23359             checkEqual_VkVideoEncodeH264SessionParametersAddInfoEXT(
23360                 reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(
23361                     structExtension),
23362                 reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(
23363                     structExtension2),
23364                 onFail);
23365             break;
23366         }
23367 #endif  // VK_ENABLE_BETA_EXTENSIONS
23368 #ifdef VK_ENABLE_BETA_EXTENSIONS
23369         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
23370             checkEqual_VkVideoEncodeH264SessionParametersCreateInfoEXT(
23371                 reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(
23372                     structExtension),
23373                 reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(
23374                     structExtension2),
23375                 onFail);
23376             break;
23377         }
23378 #endif  // VK_ENABLE_BETA_EXTENSIONS
23379 #ifdef VK_ENABLE_BETA_EXTENSIONS
23380         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: {
23381             checkEqual_VkVideoEncodeH264VclFrameInfoEXT(
23382                 reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension),
23383                 reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension2),
23384                 onFail);
23385             break;
23386         }
23387 #endif  // VK_ENABLE_BETA_EXTENSIONS
23388 #ifdef VK_ENABLE_BETA_EXTENSIONS
23389         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
23390             checkEqual_VkVideoEncodeH264DpbSlotInfoEXT(
23391                 reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT*>(structExtension),
23392                 reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT*>(structExtension2), onFail);
23393             break;
23394         }
23395 #endif  // VK_ENABLE_BETA_EXTENSIONS
23396 #ifdef VK_ENABLE_BETA_EXTENSIONS
23397         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
23398             checkEqual_VkVideoEncodeH264ProfileInfoEXT(
23399                 reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT*>(structExtension),
23400                 reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT*>(structExtension2), onFail);
23401             break;
23402         }
23403 #endif  // VK_ENABLE_BETA_EXTENSIONS
23404 #ifdef VK_ENABLE_BETA_EXTENSIONS
23405         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
23406             checkEqual_VkVideoEncodeH264RateControlInfoEXT(
23407                 reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT*>(structExtension),
23408                 reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT*>(structExtension2),
23409                 onFail);
23410             break;
23411         }
23412 #endif  // VK_ENABLE_BETA_EXTENSIONS
23413 #ifdef VK_ENABLE_BETA_EXTENSIONS
23414         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
23415             checkEqual_VkVideoEncodeH264RateControlLayerInfoEXT(
23416                 reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT*>(structExtension),
23417                 reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT*>(structExtension2),
23418                 onFail);
23419             break;
23420         }
23421 #endif  // VK_ENABLE_BETA_EXTENSIONS
23422 #endif
23423 #ifdef VK_EXT_video_encode_h265
23424 #ifdef VK_ENABLE_BETA_EXTENSIONS
23425         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
23426             checkEqual_VkVideoEncodeH265CapabilitiesEXT(
23427                 reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension),
23428                 reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension2),
23429                 onFail);
23430             break;
23431         }
23432 #endif  // VK_ENABLE_BETA_EXTENSIONS
23433 #ifdef VK_ENABLE_BETA_EXTENSIONS
23434         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
23435             checkEqual_VkVideoEncodeH265SessionParametersAddInfoEXT(
23436                 reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(
23437                     structExtension),
23438                 reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(
23439                     structExtension2),
23440                 onFail);
23441             break;
23442         }
23443 #endif  // VK_ENABLE_BETA_EXTENSIONS
23444 #ifdef VK_ENABLE_BETA_EXTENSIONS
23445         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
23446             checkEqual_VkVideoEncodeH265SessionParametersCreateInfoEXT(
23447                 reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(
23448                     structExtension),
23449                 reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(
23450                     structExtension2),
23451                 onFail);
23452             break;
23453         }
23454 #endif  // VK_ENABLE_BETA_EXTENSIONS
23455 #ifdef VK_ENABLE_BETA_EXTENSIONS
23456         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: {
23457             checkEqual_VkVideoEncodeH265VclFrameInfoEXT(
23458                 reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension),
23459                 reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension2),
23460                 onFail);
23461             break;
23462         }
23463 #endif  // VK_ENABLE_BETA_EXTENSIONS
23464 #ifdef VK_ENABLE_BETA_EXTENSIONS
23465         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
23466             checkEqual_VkVideoEncodeH265DpbSlotInfoEXT(
23467                 reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT*>(structExtension),
23468                 reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT*>(structExtension2), onFail);
23469             break;
23470         }
23471 #endif  // VK_ENABLE_BETA_EXTENSIONS
23472 #ifdef VK_ENABLE_BETA_EXTENSIONS
23473         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
23474             checkEqual_VkVideoEncodeH265ProfileInfoEXT(
23475                 reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT*>(structExtension),
23476                 reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT*>(structExtension2), onFail);
23477             break;
23478         }
23479 #endif  // VK_ENABLE_BETA_EXTENSIONS
23480 #ifdef VK_ENABLE_BETA_EXTENSIONS
23481         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
23482             checkEqual_VkVideoEncodeH265RateControlInfoEXT(
23483                 reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT*>(structExtension),
23484                 reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT*>(structExtension2),
23485                 onFail);
23486             break;
23487         }
23488 #endif  // VK_ENABLE_BETA_EXTENSIONS
23489 #ifdef VK_ENABLE_BETA_EXTENSIONS
23490         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
23491             checkEqual_VkVideoEncodeH265RateControlLayerInfoEXT(
23492                 reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT*>(structExtension),
23493                 reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT*>(structExtension2),
23494                 onFail);
23495             break;
23496         }
23497 #endif  // VK_ENABLE_BETA_EXTENSIONS
23498 #endif
23499 #ifdef VK_AMD_texture_gather_bias_lod
23500         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
23501             checkEqual_VkTextureLODGatherFormatPropertiesAMD(
23502                 reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension),
23503                 reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension2),
23504                 onFail);
23505             break;
23506         }
23507 #endif
23508 #ifdef VK_NV_corner_sampled_image
23509         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
23510             checkEqual_VkPhysicalDeviceCornerSampledImageFeaturesNV(
23511                 reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(
23512                     structExtension),
23513                 reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(
23514                     structExtension2),
23515                 onFail);
23516             break;
23517         }
23518 #endif
23519 #ifdef VK_NV_external_memory
23520         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
23521             checkEqual_VkExternalMemoryImageCreateInfoNV(
23522                 reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension),
23523                 reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension2),
23524                 onFail);
23525             break;
23526         }
23527         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
23528             checkEqual_VkExportMemoryAllocateInfoNV(
23529                 reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension),
23530                 reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension2), onFail);
23531             break;
23532         }
23533 #endif
23534 #ifdef VK_NV_external_memory_win32
23535         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
23536             checkEqual_VkImportMemoryWin32HandleInfoNV(
23537                 reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension),
23538                 reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension2), onFail);
23539             break;
23540         }
23541         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
23542             checkEqual_VkExportMemoryWin32HandleInfoNV(
23543                 reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension),
23544                 reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension2), onFail);
23545             break;
23546         }
23547 #endif
23548 #ifdef VK_NV_win32_keyed_mutex
23549         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
23550             checkEqual_VkWin32KeyedMutexAcquireReleaseInfoNV(
23551                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension),
23552                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension2),
23553                 onFail);
23554             break;
23555         }
23556 #endif
23557 #ifdef VK_EXT_validation_flags
23558         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
23559             checkEqual_VkValidationFlagsEXT(
23560                 reinterpret_cast<const VkValidationFlagsEXT*>(structExtension),
23561                 reinterpret_cast<const VkValidationFlagsEXT*>(structExtension2), onFail);
23562             break;
23563         }
23564 #endif
23565 #ifdef VK_EXT_astc_decode_mode
23566         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
23567             checkEqual_VkImageViewASTCDecodeModeEXT(
23568                 reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension),
23569                 reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension2), onFail);
23570             break;
23571         }
23572         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
23573             checkEqual_VkPhysicalDeviceASTCDecodeFeaturesEXT(
23574                 reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension),
23575                 reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension2),
23576                 onFail);
23577             break;
23578         }
23579 #endif
23580 #ifdef VK_EXT_pipeline_robustness
23581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
23582             checkEqual_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
23583                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(
23584                     structExtension),
23585                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(
23586                     structExtension2),
23587                 onFail);
23588             break;
23589         }
23590         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
23591             checkEqual_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
23592                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT*>(
23593                     structExtension),
23594                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT*>(
23595                     structExtension2),
23596                 onFail);
23597             break;
23598         }
23599         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
23600             checkEqual_VkPipelineRobustnessCreateInfoEXT(
23601                 reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT*>(structExtension),
23602                 reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT*>(structExtension2),
23603                 onFail);
23604             break;
23605         }
23606 #endif
23607 #ifdef VK_EXT_conditional_rendering
23608         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
23609             checkEqual_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
23610                 reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(
23611                     structExtension),
23612                 reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(
23613                     structExtension2),
23614                 onFail);
23615             break;
23616         }
23617         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
23618             checkEqual_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
23619                 reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(
23620                     structExtension),
23621                 reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(
23622                     structExtension2),
23623                 onFail);
23624             break;
23625         }
23626 #endif
23627 #ifdef VK_NV_clip_space_w_scaling
23628         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
23629             checkEqual_VkPipelineViewportWScalingStateCreateInfoNV(
23630                 reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(
23631                     structExtension),
23632                 reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(
23633                     structExtension2),
23634                 onFail);
23635             break;
23636         }
23637 #endif
23638 #ifdef VK_EXT_display_control
23639         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
23640             checkEqual_VkSwapchainCounterCreateInfoEXT(
23641                 reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension),
23642                 reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension2), onFail);
23643             break;
23644         }
23645 #endif
23646 #ifdef VK_GOOGLE_display_timing
23647         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
23648             checkEqual_VkPresentTimesInfoGOOGLE(
23649                 reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension),
23650                 reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension2), onFail);
23651             break;
23652         }
23653 #endif
23654 #ifdef VK_NVX_multiview_per_view_attributes
23655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
23656             checkEqual_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
23657                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(
23658                     structExtension),
23659                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(
23660                     structExtension2),
23661                 onFail);
23662             break;
23663         }
23664 #endif
23665 #ifdef VK_NV_viewport_swizzle
23666         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
23667             checkEqual_VkPipelineViewportSwizzleStateCreateInfoNV(
23668                 reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(
23669                     structExtension),
23670                 reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(
23671                     structExtension2),
23672                 onFail);
23673             break;
23674         }
23675 #endif
23676 #ifdef VK_EXT_discard_rectangles
23677         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
23678             checkEqual_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
23679                 reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(
23680                     structExtension),
23681                 reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(
23682                     structExtension2),
23683                 onFail);
23684             break;
23685         }
23686         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
23687             checkEqual_VkPipelineDiscardRectangleStateCreateInfoEXT(
23688                 reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(
23689                     structExtension),
23690                 reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(
23691                     structExtension2),
23692                 onFail);
23693             break;
23694         }
23695 #endif
23696 #ifdef VK_EXT_conservative_rasterization
23697         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
23698             checkEqual_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
23699                 reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(
23700                     structExtension),
23701                 reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(
23702                     structExtension2),
23703                 onFail);
23704             break;
23705         }
23706         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
23707             checkEqual_VkPipelineRasterizationConservativeStateCreateInfoEXT(
23708                 reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(
23709                     structExtension),
23710                 reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(
23711                     structExtension2),
23712                 onFail);
23713             break;
23714         }
23715 #endif
23716 #ifdef VK_EXT_depth_clip_enable
23717         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
23718             checkEqual_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
23719                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
23720                     structExtension),
23721                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
23722                     structExtension2),
23723                 onFail);
23724             break;
23725         }
23726         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
23727             checkEqual_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
23728                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
23729                     structExtension),
23730                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
23731                     structExtension2),
23732                 onFail);
23733             break;
23734         }
23735 #endif
23736 #ifdef VK_EXT_debug_utils
23737         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
23738             checkEqual_VkDebugUtilsObjectNameInfoEXT(
23739                 reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>(structExtension),
23740                 reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>(structExtension2), onFail);
23741             break;
23742         }
23743         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
23744             checkEqual_VkDebugUtilsMessengerCreateInfoEXT(
23745                 reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension),
23746                 reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension2),
23747                 onFail);
23748             break;
23749         }
23750 #endif
23751 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
23752         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: {
23753             checkEqual_VkAndroidHardwareBufferUsageANDROID(
23754                 reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension),
23755                 reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension2),
23756                 onFail);
23757             break;
23758         }
23759         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: {
23760             checkEqual_VkAndroidHardwareBufferFormatPropertiesANDROID(
23761                 reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(
23762                     structExtension),
23763                 reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(
23764                     structExtension2),
23765                 onFail);
23766             break;
23767         }
23768         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: {
23769             checkEqual_VkImportAndroidHardwareBufferInfoANDROID(
23770                 reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension),
23771                 reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension2),
23772                 onFail);
23773             break;
23774         }
23775         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: {
23776             checkEqual_VkExternalFormatANDROID(
23777                 reinterpret_cast<const VkExternalFormatANDROID*>(structExtension),
23778                 reinterpret_cast<const VkExternalFormatANDROID*>(structExtension2), onFail);
23779             break;
23780         }
23781         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: {
23782             checkEqual_VkAndroidHardwareBufferFormatProperties2ANDROID(
23783                 reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(
23784                     structExtension),
23785                 reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(
23786                     structExtension2),
23787                 onFail);
23788             break;
23789         }
23790 #endif
23791 #ifdef VK_EXT_sample_locations
23792         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
23793             checkEqual_VkSampleLocationsInfoEXT(
23794                 reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension),
23795                 reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension2), onFail);
23796             break;
23797         }
23798         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
23799             checkEqual_VkRenderPassSampleLocationsBeginInfoEXT(
23800                 reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension),
23801                 reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension2),
23802                 onFail);
23803             break;
23804         }
23805         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
23806             checkEqual_VkPipelineSampleLocationsStateCreateInfoEXT(
23807                 reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(
23808                     structExtension),
23809                 reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(
23810                     structExtension2),
23811                 onFail);
23812             break;
23813         }
23814         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
23815             checkEqual_VkPhysicalDeviceSampleLocationsPropertiesEXT(
23816                 reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(
23817                     structExtension),
23818                 reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(
23819                     structExtension2),
23820                 onFail);
23821             break;
23822         }
23823 #endif
23824 #ifdef VK_EXT_blend_operation_advanced
23825         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
23826             checkEqual_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
23827                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(
23828                     structExtension),
23829                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(
23830                     structExtension2),
23831                 onFail);
23832             break;
23833         }
23834         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
23835             checkEqual_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
23836                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(
23837                     structExtension),
23838                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(
23839                     structExtension2),
23840                 onFail);
23841             break;
23842         }
23843         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
23844             checkEqual_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
23845                 reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(
23846                     structExtension),
23847                 reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(
23848                     structExtension2),
23849                 onFail);
23850             break;
23851         }
23852 #endif
23853 #ifdef VK_NV_fragment_coverage_to_color
23854         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
23855             checkEqual_VkPipelineCoverageToColorStateCreateInfoNV(
23856                 reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(
23857                     structExtension),
23858                 reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(
23859                     structExtension2),
23860                 onFail);
23861             break;
23862         }
23863 #endif
23864 #ifdef VK_NV_framebuffer_mixed_samples
23865         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
23866             checkEqual_VkPipelineCoverageModulationStateCreateInfoNV(
23867                 reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(
23868                     structExtension),
23869                 reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(
23870                     structExtension2),
23871                 onFail);
23872             break;
23873         }
23874 #endif
23875 #ifdef VK_NV_shader_sm_builtins
23876         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
23877             checkEqual_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
23878                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(
23879                     structExtension),
23880                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(
23881                     structExtension2),
23882                 onFail);
23883             break;
23884         }
23885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
23886             checkEqual_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
23887                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(
23888                     structExtension),
23889                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(
23890                     structExtension2),
23891                 onFail);
23892             break;
23893         }
23894 #endif
23895 #ifdef VK_EXT_image_drm_format_modifier
23896         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
23897             checkEqual_VkDrmFormatModifierPropertiesListEXT(
23898                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension),
23899                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension2),
23900                 onFail);
23901             break;
23902         }
23903         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
23904             checkEqual_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
23905                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
23906                     structExtension),
23907                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
23908                     structExtension2),
23909                 onFail);
23910             break;
23911         }
23912         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
23913             checkEqual_VkImageDrmFormatModifierListCreateInfoEXT(
23914                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension),
23915                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(
23916                     structExtension2),
23917                 onFail);
23918             break;
23919         }
23920         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
23921             checkEqual_VkImageDrmFormatModifierExplicitCreateInfoEXT(
23922                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
23923                     structExtension),
23924                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
23925                     structExtension2),
23926                 onFail);
23927             break;
23928         }
23929         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
23930             checkEqual_VkDrmFormatModifierPropertiesList2EXT(
23931                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension),
23932                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension2),
23933                 onFail);
23934             break;
23935         }
23936 #endif
23937 #ifdef VK_EXT_validation_cache
23938         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
23939             checkEqual_VkShaderModuleValidationCacheCreateInfoEXT(
23940                 reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(
23941                     structExtension),
23942                 reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(
23943                     structExtension2),
23944                 onFail);
23945             break;
23946         }
23947 #endif
23948 #ifdef VK_NV_shading_rate_image
23949         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
23950             checkEqual_VkPipelineViewportShadingRateImageStateCreateInfoNV(
23951                 reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(
23952                     structExtension),
23953                 reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(
23954                     structExtension2),
23955                 onFail);
23956             break;
23957         }
23958         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
23959             checkEqual_VkPhysicalDeviceShadingRateImageFeaturesNV(
23960                 reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(
23961                     structExtension),
23962                 reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(
23963                     structExtension2),
23964                 onFail);
23965             break;
23966         }
23967         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
23968             checkEqual_VkPhysicalDeviceShadingRateImagePropertiesNV(
23969                 reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(
23970                     structExtension),
23971                 reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(
23972                     structExtension2),
23973                 onFail);
23974             break;
23975         }
23976         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
23977             checkEqual_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
23978                 reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(
23979                     structExtension),
23980                 reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(
23981                     structExtension2),
23982                 onFail);
23983             break;
23984         }
23985 #endif
23986 #ifdef VK_NV_ray_tracing
23987         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
23988             checkEqual_VkWriteDescriptorSetAccelerationStructureNV(
23989                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(
23990                     structExtension),
23991                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(
23992                     structExtension2),
23993                 onFail);
23994             break;
23995         }
23996         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
23997             checkEqual_VkPhysicalDeviceRayTracingPropertiesNV(
23998                 reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension),
23999                 reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension2),
24000                 onFail);
24001             break;
24002         }
24003 #endif
24004 #ifdef VK_NV_representative_fragment_test
24005         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
24006             checkEqual_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
24007                 reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(
24008                     structExtension),
24009                 reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(
24010                     structExtension2),
24011                 onFail);
24012             break;
24013         }
24014         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
24015             checkEqual_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
24016                 reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(
24017                     structExtension),
24018                 reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(
24019                     structExtension2),
24020                 onFail);
24021             break;
24022         }
24023 #endif
24024 #ifdef VK_EXT_filter_cubic
24025         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
24026             checkEqual_VkPhysicalDeviceImageViewImageFormatInfoEXT(
24027                 reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(
24028                     structExtension),
24029                 reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(
24030                     structExtension2),
24031                 onFail);
24032             break;
24033         }
24034         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
24035             checkEqual_VkFilterCubicImageViewImageFormatPropertiesEXT(
24036                 reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(
24037                     structExtension),
24038                 reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(
24039                     structExtension2),
24040                 onFail);
24041             break;
24042         }
24043 #endif
24044 #ifdef VK_EXT_external_memory_host
24045         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
24046             checkEqual_VkImportMemoryHostPointerInfoEXT(
24047                 reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension),
24048                 reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension2),
24049                 onFail);
24050             break;
24051         }
24052         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
24053             checkEqual_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
24054                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(
24055                     structExtension),
24056                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(
24057                     structExtension2),
24058                 onFail);
24059             break;
24060         }
24061 #endif
24062 #ifdef VK_AMD_pipeline_compiler_control
24063         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
24064             checkEqual_VkPipelineCompilerControlCreateInfoAMD(
24065                 reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension),
24066                 reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension2),
24067                 onFail);
24068             break;
24069         }
24070 #endif
24071 #ifdef VK_AMD_shader_core_properties
24072         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
24073             checkEqual_VkPhysicalDeviceShaderCorePropertiesAMD(
24074                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension),
24075                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension2),
24076                 onFail);
24077             break;
24078         }
24079 #endif
24080 #ifdef VK_AMD_memory_overallocation_behavior
24081         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
24082             checkEqual_VkDeviceMemoryOverallocationCreateInfoAMD(
24083                 reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension),
24084                 reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(
24085                     structExtension2),
24086                 onFail);
24087             break;
24088         }
24089 #endif
24090 #ifdef VK_EXT_vertex_attribute_divisor
24091         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
24092             checkEqual_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
24093                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
24094                     structExtension),
24095                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
24096                     structExtension2),
24097                 onFail);
24098             break;
24099         }
24100         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
24101             checkEqual_VkPipelineVertexInputDivisorStateCreateInfoEXT(
24102                 reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(
24103                     structExtension),
24104                 reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(
24105                     structExtension2),
24106                 onFail);
24107             break;
24108         }
24109         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
24110             checkEqual_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
24111                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(
24112                     structExtension),
24113                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(
24114                     structExtension2),
24115                 onFail);
24116             break;
24117         }
24118 #endif
24119 #ifdef VK_GGP_frame_token
24120         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
24121             checkEqual_VkPresentFrameTokenGGP(
24122                 reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension),
24123                 reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension2), onFail);
24124             break;
24125         }
24126 #endif
24127 #ifdef VK_NV_compute_shader_derivatives
24128         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
24129             checkEqual_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
24130                 reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(
24131                     structExtension),
24132                 reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(
24133                     structExtension2),
24134                 onFail);
24135             break;
24136         }
24137 #endif
24138 #ifdef VK_NV_mesh_shader
24139         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
24140             checkEqual_VkPhysicalDeviceMeshShaderFeaturesNV(
24141                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension),
24142                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension2),
24143                 onFail);
24144             break;
24145         }
24146         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
24147             checkEqual_VkPhysicalDeviceMeshShaderPropertiesNV(
24148                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension),
24149                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension2),
24150                 onFail);
24151             break;
24152         }
24153 #endif
24154 #ifdef VK_NV_shader_image_footprint
24155         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
24156             checkEqual_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
24157                 reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(
24158                     structExtension),
24159                 reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(
24160                     structExtension2),
24161                 onFail);
24162             break;
24163         }
24164 #endif
24165 #ifdef VK_NV_scissor_exclusive
24166         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
24167             checkEqual_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
24168                 reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(
24169                     structExtension),
24170                 reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(
24171                     structExtension2),
24172                 onFail);
24173             break;
24174         }
24175         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
24176             checkEqual_VkPhysicalDeviceExclusiveScissorFeaturesNV(
24177                 reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(
24178                     structExtension),
24179                 reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(
24180                     structExtension2),
24181                 onFail);
24182             break;
24183         }
24184 #endif
24185 #ifdef VK_NV_device_diagnostic_checkpoints
24186         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: {
24187             checkEqual_VkQueueFamilyCheckpointPropertiesNV(
24188                 reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension),
24189                 reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension2),
24190                 onFail);
24191             break;
24192         }
24193 #endif
24194 #ifdef VK_INTEL_shader_integer_functions2
24195         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
24196             checkEqual_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
24197                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(
24198                     structExtension),
24199                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(
24200                     structExtension2),
24201                 onFail);
24202             break;
24203         }
24204 #endif
24205 #ifdef VK_INTEL_performance_query
24206         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
24207             checkEqual_VkQueryPoolPerformanceQueryCreateInfoINTEL(
24208                 reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(
24209                     structExtension),
24210                 reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(
24211                     structExtension2),
24212                 onFail);
24213             break;
24214         }
24215 #endif
24216 #ifdef VK_EXT_pci_bus_info
24217         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
24218             checkEqual_VkPhysicalDevicePCIBusInfoPropertiesEXT(
24219                 reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension),
24220                 reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension2),
24221                 onFail);
24222             break;
24223         }
24224 #endif
24225 #ifdef VK_AMD_display_native_hdr
24226         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
24227             checkEqual_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
24228                 reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension),
24229                 reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension2),
24230                 onFail);
24231             break;
24232         }
24233         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
24234             checkEqual_VkSwapchainDisplayNativeHdrCreateInfoAMD(
24235                 reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension),
24236                 reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension2),
24237                 onFail);
24238             break;
24239         }
24240 #endif
24241 #ifdef VK_EXT_fragment_density_map
24242         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
24243             checkEqual_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
24244                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
24245                     structExtension),
24246                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
24247                     structExtension2),
24248                 onFail);
24249             break;
24250         }
24251         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
24252             checkEqual_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
24253                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
24254                     structExtension),
24255                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
24256                     structExtension2),
24257                 onFail);
24258             break;
24259         }
24260         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
24261             checkEqual_VkRenderPassFragmentDensityMapCreateInfoEXT(
24262                 reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
24263                     structExtension),
24264                 reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
24265                     structExtension2),
24266                 onFail);
24267             break;
24268         }
24269 #endif
24270 #ifdef VK_AMD_shader_core_properties2
24271         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
24272             checkEqual_VkPhysicalDeviceShaderCoreProperties2AMD(
24273                 reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension),
24274                 reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension2),
24275                 onFail);
24276             break;
24277         }
24278 #endif
24279 #ifdef VK_AMD_device_coherent_memory
24280         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
24281             checkEqual_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
24282                 reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension),
24283                 reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(
24284                     structExtension2),
24285                 onFail);
24286             break;
24287         }
24288 #endif
24289 #ifdef VK_EXT_shader_image_atomic_int64
24290         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
24291             checkEqual_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
24292                 reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(
24293                     structExtension),
24294                 reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(
24295                     structExtension2),
24296                 onFail);
24297             break;
24298         }
24299 #endif
24300 #ifdef VK_EXT_memory_budget
24301         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
24302             checkEqual_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
24303                 reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension),
24304                 reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(
24305                     structExtension2),
24306                 onFail);
24307             break;
24308         }
24309 #endif
24310 #ifdef VK_EXT_memory_priority
24311         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
24312             checkEqual_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
24313                 reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension),
24314                 reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(
24315                     structExtension2),
24316                 onFail);
24317             break;
24318         }
24319         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
24320             checkEqual_VkMemoryPriorityAllocateInfoEXT(
24321                 reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension),
24322                 reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension2), onFail);
24323             break;
24324         }
24325 #endif
24326 #ifdef VK_NV_dedicated_allocation_image_aliasing
24327         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
24328             checkEqual_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
24329                 reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(
24330                     structExtension),
24331                 reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(
24332                     structExtension2),
24333                 onFail);
24334             break;
24335         }
24336 #endif
24337 #ifdef VK_EXT_buffer_device_address
24338         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
24339             checkEqual_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
24340                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(
24341                     structExtension),
24342                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(
24343                     structExtension2),
24344                 onFail);
24345             break;
24346         }
24347         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
24348             checkEqual_VkBufferDeviceAddressCreateInfoEXT(
24349                 reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension),
24350                 reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension2),
24351                 onFail);
24352             break;
24353         }
24354 #endif
24355 #ifdef VK_EXT_validation_features
24356         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
24357             checkEqual_VkValidationFeaturesEXT(
24358                 reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension),
24359                 reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension2), onFail);
24360             break;
24361         }
24362 #endif
24363 #ifdef VK_NV_cooperative_matrix
24364         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
24365             checkEqual_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
24366                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(
24367                     structExtension),
24368                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(
24369                     structExtension2),
24370                 onFail);
24371             break;
24372         }
24373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
24374             checkEqual_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
24375                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(
24376                     structExtension),
24377                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(
24378                     structExtension2),
24379                 onFail);
24380             break;
24381         }
24382 #endif
24383 #ifdef VK_NV_coverage_reduction_mode
24384         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
24385             checkEqual_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
24386                 reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(
24387                     structExtension),
24388                 reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(
24389                     structExtension2),
24390                 onFail);
24391             break;
24392         }
24393         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
24394             checkEqual_VkPipelineCoverageReductionStateCreateInfoNV(
24395                 reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(
24396                     structExtension),
24397                 reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(
24398                     structExtension2),
24399                 onFail);
24400             break;
24401         }
24402 #endif
24403 #ifdef VK_EXT_fragment_shader_interlock
24404         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
24405             checkEqual_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
24406                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(
24407                     structExtension),
24408                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(
24409                     structExtension2),
24410                 onFail);
24411             break;
24412         }
24413 #endif
24414 #ifdef VK_EXT_ycbcr_image_arrays
24415         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
24416             checkEqual_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
24417                 reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(
24418                     structExtension),
24419                 reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(
24420                     structExtension2),
24421                 onFail);
24422             break;
24423         }
24424 #endif
24425 #ifdef VK_EXT_provoking_vertex
24426         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
24427             checkEqual_VkPhysicalDeviceProvokingVertexFeaturesEXT(
24428                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
24429                     structExtension),
24430                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
24431                     structExtension2),
24432                 onFail);
24433             break;
24434         }
24435         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
24436             checkEqual_VkPhysicalDeviceProvokingVertexPropertiesEXT(
24437                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
24438                     structExtension),
24439                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
24440                     structExtension2),
24441                 onFail);
24442             break;
24443         }
24444         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
24445             checkEqual_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
24446                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
24447                     structExtension),
24448                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
24449                     structExtension2),
24450                 onFail);
24451             break;
24452         }
24453 #endif
24454 #ifdef VK_EXT_full_screen_exclusive
24455         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
24456             checkEqual_VkSurfaceFullScreenExclusiveInfoEXT(
24457                 reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension),
24458                 reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension2),
24459                 onFail);
24460             break;
24461         }
24462         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
24463             checkEqual_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
24464                 reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(
24465                     structExtension),
24466                 reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(
24467                     structExtension2),
24468                 onFail);
24469             break;
24470         }
24471         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
24472             checkEqual_VkSurfaceFullScreenExclusiveWin32InfoEXT(
24473                 reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension),
24474                 reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension2),
24475                 onFail);
24476             break;
24477         }
24478 #endif
24479 #ifdef VK_EXT_line_rasterization
24480         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
24481             checkEqual_VkPhysicalDeviceLineRasterizationFeaturesEXT(
24482                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
24483                     structExtension),
24484                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
24485                     structExtension2),
24486                 onFail);
24487             break;
24488         }
24489         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
24490             checkEqual_VkPhysicalDeviceLineRasterizationPropertiesEXT(
24491                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
24492                     structExtension),
24493                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
24494                     structExtension2),
24495                 onFail);
24496             break;
24497         }
24498         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
24499             checkEqual_VkPipelineRasterizationLineStateCreateInfoEXT(
24500                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(
24501                     structExtension),
24502                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(
24503                     structExtension2),
24504                 onFail);
24505             break;
24506         }
24507 #endif
24508 #ifdef VK_EXT_shader_atomic_float
24509         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
24510             checkEqual_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
24511                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(
24512                     structExtension),
24513                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(
24514                     structExtension2),
24515                 onFail);
24516             break;
24517         }
24518 #endif
24519 #ifdef VK_EXT_index_type_uint8
24520         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
24521             checkEqual_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
24522                 reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension),
24523                 reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(
24524                     structExtension2),
24525                 onFail);
24526             break;
24527         }
24528 #endif
24529 #ifdef VK_EXT_extended_dynamic_state
24530         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
24531             checkEqual_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
24532                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
24533                     structExtension),
24534                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
24535                     structExtension2),
24536                 onFail);
24537             break;
24538         }
24539 #endif
24540 #ifdef VK_EXT_shader_atomic_float2
24541         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
24542             checkEqual_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
24543                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(
24544                     structExtension),
24545                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(
24546                     structExtension2),
24547                 onFail);
24548             break;
24549         }
24550 #endif
24551 #ifdef VK_EXT_surface_maintenance1
24552         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
24553             checkEqual_VkSurfacePresentModeEXT(
24554                 reinterpret_cast<const VkSurfacePresentModeEXT*>(structExtension),
24555                 reinterpret_cast<const VkSurfacePresentModeEXT*>(structExtension2), onFail);
24556             break;
24557         }
24558         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
24559             checkEqual_VkSurfacePresentScalingCapabilitiesEXT(
24560                 reinterpret_cast<const VkSurfacePresentScalingCapabilitiesEXT*>(structExtension),
24561                 reinterpret_cast<const VkSurfacePresentScalingCapabilitiesEXT*>(structExtension2),
24562                 onFail);
24563             break;
24564         }
24565         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
24566             checkEqual_VkSurfacePresentModeCompatibilityEXT(
24567                 reinterpret_cast<const VkSurfacePresentModeCompatibilityEXT*>(structExtension),
24568                 reinterpret_cast<const VkSurfacePresentModeCompatibilityEXT*>(structExtension2),
24569                 onFail);
24570             break;
24571         }
24572 #endif
24573 #ifdef VK_EXT_swapchain_maintenance1
24574         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
24575             checkEqual_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
24576                 reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
24577                     structExtension),
24578                 reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
24579                     structExtension2),
24580                 onFail);
24581             break;
24582         }
24583         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
24584             checkEqual_VkSwapchainPresentFenceInfoEXT(
24585                 reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension),
24586                 reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension2), onFail);
24587             break;
24588         }
24589         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
24590             checkEqual_VkSwapchainPresentModesCreateInfoEXT(
24591                 reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension),
24592                 reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension2),
24593                 onFail);
24594             break;
24595         }
24596         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
24597             checkEqual_VkSwapchainPresentModeInfoEXT(
24598                 reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension),
24599                 reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension2), onFail);
24600             break;
24601         }
24602         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
24603             checkEqual_VkSwapchainPresentScalingCreateInfoEXT(
24604                 reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension),
24605                 reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension2),
24606                 onFail);
24607             break;
24608         }
24609 #endif
24610 #ifdef VK_NV_device_generated_commands
24611         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
24612             checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
24613                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(
24614                     structExtension),
24615                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(
24616                     structExtension2),
24617                 onFail);
24618             break;
24619         }
24620         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
24621             checkEqual_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
24622                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(
24623                     structExtension),
24624                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(
24625                     structExtension2),
24626                 onFail);
24627             break;
24628         }
24629         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
24630             checkEqual_VkGraphicsPipelineShaderGroupsCreateInfoNV(
24631                 reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(
24632                     structExtension),
24633                 reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(
24634                     structExtension2),
24635                 onFail);
24636             break;
24637         }
24638 #endif
24639 #ifdef VK_NV_inherited_viewport_scissor
24640         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
24641             checkEqual_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
24642                 reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(
24643                     structExtension),
24644                 reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(
24645                     structExtension2),
24646                 onFail);
24647             break;
24648         }
24649         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
24650             checkEqual_VkCommandBufferInheritanceViewportScissorInfoNV(
24651                 reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(
24652                     structExtension),
24653                 reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(
24654                     structExtension2),
24655                 onFail);
24656             break;
24657         }
24658 #endif
24659 #ifdef VK_EXT_texel_buffer_alignment
24660         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
24661             checkEqual_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
24662                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
24663                     structExtension),
24664                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
24665                     structExtension2),
24666                 onFail);
24667             break;
24668         }
24669 #endif
24670 #ifdef VK_QCOM_render_pass_transform
24671         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
24672             checkEqual_VkRenderPassTransformBeginInfoQCOM(
24673                 reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension),
24674                 reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension2),
24675                 onFail);
24676             break;
24677         }
24678         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
24679             checkEqual_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
24680                 reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(
24681                     structExtension),
24682                 reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(
24683                     structExtension2),
24684                 onFail);
24685             break;
24686         }
24687 #endif
24688 #ifdef VK_EXT_device_memory_report
24689         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
24690             checkEqual_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
24691                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
24692                     structExtension),
24693                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
24694                     structExtension2),
24695                 onFail);
24696             break;
24697         }
24698         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
24699             checkEqual_VkDeviceDeviceMemoryReportCreateInfoEXT(
24700                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension),
24701                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension2),
24702                 onFail);
24703             break;
24704         }
24705 #endif
24706 #ifdef VK_EXT_robustness2
24707         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
24708             checkEqual_VkPhysicalDeviceRobustness2FeaturesEXT(
24709                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension),
24710                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension2),
24711                 onFail);
24712             break;
24713         }
24714         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
24715             checkEqual_VkPhysicalDeviceRobustness2PropertiesEXT(
24716                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension),
24717                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension2),
24718                 onFail);
24719             break;
24720         }
24721 #endif
24722 #ifdef VK_EXT_custom_border_color
24723         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
24724             checkEqual_VkSamplerCustomBorderColorCreateInfoEXT(
24725                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension),
24726                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension2),
24727                 onFail);
24728             break;
24729         }
24730         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
24731             checkEqual_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
24732                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
24733                     structExtension),
24734                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
24735                     structExtension2),
24736                 onFail);
24737             break;
24738         }
24739         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
24740             checkEqual_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
24741                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
24742                     structExtension),
24743                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
24744                     structExtension2),
24745                 onFail);
24746             break;
24747         }
24748 #endif
24749 #ifdef VK_NV_present_barrier
24750         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
24751             checkEqual_VkPhysicalDevicePresentBarrierFeaturesNV(
24752                 reinterpret_cast<const VkPhysicalDevicePresentBarrierFeaturesNV*>(structExtension),
24753                 reinterpret_cast<const VkPhysicalDevicePresentBarrierFeaturesNV*>(structExtension2),
24754                 onFail);
24755             break;
24756         }
24757         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
24758             checkEqual_VkSurfaceCapabilitiesPresentBarrierNV(
24759                 reinterpret_cast<const VkSurfaceCapabilitiesPresentBarrierNV*>(structExtension),
24760                 reinterpret_cast<const VkSurfaceCapabilitiesPresentBarrierNV*>(structExtension2),
24761                 onFail);
24762             break;
24763         }
24764         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
24765             checkEqual_VkSwapchainPresentBarrierCreateInfoNV(
24766                 reinterpret_cast<const VkSwapchainPresentBarrierCreateInfoNV*>(structExtension),
24767                 reinterpret_cast<const VkSwapchainPresentBarrierCreateInfoNV*>(structExtension2),
24768                 onFail);
24769             break;
24770         }
24771 #endif
24772 #ifdef VK_NV_device_diagnostics_config
24773         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
24774             checkEqual_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
24775                 reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(
24776                     structExtension),
24777                 reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(
24778                     structExtension2),
24779                 onFail);
24780             break;
24781         }
24782         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
24783             checkEqual_VkDeviceDiagnosticsConfigCreateInfoNV(
24784                 reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension),
24785                 reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension2),
24786                 onFail);
24787             break;
24788         }
24789 #endif
24790 #ifdef VK_NV_low_latency
24791         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
24792             checkEqual_VkQueryLowLatencySupportNV(
24793                 reinterpret_cast<const VkQueryLowLatencySupportNV*>(structExtension),
24794                 reinterpret_cast<const VkQueryLowLatencySupportNV*>(structExtension2), onFail);
24795             break;
24796         }
24797 #endif
24798 #ifdef VK_EXT_metal_objects
24799         case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: {
24800             checkEqual_VkExportMetalObjectCreateInfoEXT(
24801                 reinterpret_cast<const VkExportMetalObjectCreateInfoEXT*>(structExtension),
24802                 reinterpret_cast<const VkExportMetalObjectCreateInfoEXT*>(structExtension2),
24803                 onFail);
24804             break;
24805         }
24806         case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: {
24807             checkEqual_VkExportMetalDeviceInfoEXT(
24808                 reinterpret_cast<const VkExportMetalDeviceInfoEXT*>(structExtension),
24809                 reinterpret_cast<const VkExportMetalDeviceInfoEXT*>(structExtension2), onFail);
24810             break;
24811         }
24812         case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: {
24813             checkEqual_VkExportMetalCommandQueueInfoEXT(
24814                 reinterpret_cast<const VkExportMetalCommandQueueInfoEXT*>(structExtension),
24815                 reinterpret_cast<const VkExportMetalCommandQueueInfoEXT*>(structExtension2),
24816                 onFail);
24817             break;
24818         }
24819         case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: {
24820             checkEqual_VkExportMetalBufferInfoEXT(
24821                 reinterpret_cast<const VkExportMetalBufferInfoEXT*>(structExtension),
24822                 reinterpret_cast<const VkExportMetalBufferInfoEXT*>(structExtension2), onFail);
24823             break;
24824         }
24825         case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: {
24826             checkEqual_VkImportMetalBufferInfoEXT(
24827                 reinterpret_cast<const VkImportMetalBufferInfoEXT*>(structExtension),
24828                 reinterpret_cast<const VkImportMetalBufferInfoEXT*>(structExtension2), onFail);
24829             break;
24830         }
24831         case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: {
24832             checkEqual_VkExportMetalTextureInfoEXT(
24833                 reinterpret_cast<const VkExportMetalTextureInfoEXT*>(structExtension),
24834                 reinterpret_cast<const VkExportMetalTextureInfoEXT*>(structExtension2), onFail);
24835             break;
24836         }
24837         case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: {
24838             checkEqual_VkImportMetalTextureInfoEXT(
24839                 reinterpret_cast<const VkImportMetalTextureInfoEXT*>(structExtension),
24840                 reinterpret_cast<const VkImportMetalTextureInfoEXT*>(structExtension2), onFail);
24841             break;
24842         }
24843         case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: {
24844             checkEqual_VkExportMetalIOSurfaceInfoEXT(
24845                 reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT*>(structExtension),
24846                 reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT*>(structExtension2), onFail);
24847             break;
24848         }
24849         case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: {
24850             checkEqual_VkImportMetalIOSurfaceInfoEXT(
24851                 reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT*>(structExtension),
24852                 reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT*>(structExtension2), onFail);
24853             break;
24854         }
24855         case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: {
24856             checkEqual_VkExportMetalSharedEventInfoEXT(
24857                 reinterpret_cast<const VkExportMetalSharedEventInfoEXT*>(structExtension),
24858                 reinterpret_cast<const VkExportMetalSharedEventInfoEXT*>(structExtension2), onFail);
24859             break;
24860         }
24861         case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: {
24862             checkEqual_VkImportMetalSharedEventInfoEXT(
24863                 reinterpret_cast<const VkImportMetalSharedEventInfoEXT*>(structExtension),
24864                 reinterpret_cast<const VkImportMetalSharedEventInfoEXT*>(structExtension2), onFail);
24865             break;
24866         }
24867 #endif
24868 #ifdef VK_EXT_descriptor_buffer
24869         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
24870             checkEqual_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
24871                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferPropertiesEXT*>(
24872                     structExtension),
24873                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferPropertiesEXT*>(
24874                     structExtension2),
24875                 onFail);
24876             break;
24877         }
24878         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
24879             checkEqual_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
24880                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>(
24881                     structExtension),
24882                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>(
24883                     structExtension2),
24884                 onFail);
24885             break;
24886         }
24887         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
24888             checkEqual_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
24889                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferFeaturesEXT*>(
24890                     structExtension),
24891                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferFeaturesEXT*>(
24892                     structExtension2),
24893                 onFail);
24894             break;
24895         }
24896         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
24897             checkEqual_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
24898                 reinterpret_cast<const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>(
24899                     structExtension),
24900                 reinterpret_cast<const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>(
24901                     structExtension2),
24902                 onFail);
24903             break;
24904         }
24905         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
24906             checkEqual_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
24907                 reinterpret_cast<const VkOpaqueCaptureDescriptorDataCreateInfoEXT*>(
24908                     structExtension),
24909                 reinterpret_cast<const VkOpaqueCaptureDescriptorDataCreateInfoEXT*>(
24910                     structExtension2),
24911                 onFail);
24912             break;
24913         }
24914 #endif
24915 #ifdef VK_EXT_graphics_pipeline_library
24916         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
24917             checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
24918                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
24919                     structExtension),
24920                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
24921                     structExtension2),
24922                 onFail);
24923             break;
24924         }
24925         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
24926             checkEqual_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
24927                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
24928                     structExtension),
24929                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
24930                     structExtension2),
24931                 onFail);
24932             break;
24933         }
24934         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
24935             checkEqual_VkGraphicsPipelineLibraryCreateInfoEXT(
24936                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension),
24937                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension2),
24938                 onFail);
24939             break;
24940         }
24941 #endif
24942 #ifdef VK_AMD_shader_early_and_late_fragment_tests
24943         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
24944             checkEqual_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
24945                 reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(
24946                     structExtension),
24947                 reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(
24948                     structExtension2),
24949                 onFail);
24950             break;
24951         }
24952 #endif
24953 #ifdef VK_NV_fragment_shading_rate_enums
24954         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
24955             checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
24956                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(
24957                     structExtension),
24958                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(
24959                     structExtension2),
24960                 onFail);
24961             break;
24962         }
24963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
24964             checkEqual_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
24965                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(
24966                     structExtension),
24967                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(
24968                     structExtension2),
24969                 onFail);
24970             break;
24971         }
24972         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
24973             checkEqual_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
24974                 reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(
24975                     structExtension),
24976                 reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(
24977                     structExtension2),
24978                 onFail);
24979             break;
24980         }
24981 #endif
24982 #ifdef VK_NV_ray_tracing_motion_blur
24983         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
24984             checkEqual_VkAccelerationStructureGeometryMotionTrianglesDataNV(
24985                 reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(
24986                     structExtension),
24987                 reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(
24988                     structExtension2),
24989                 onFail);
24990             break;
24991         }
24992         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
24993             checkEqual_VkAccelerationStructureMotionInfoNV(
24994                 reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension),
24995                 reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension2),
24996                 onFail);
24997             break;
24998         }
24999         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
25000             checkEqual_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
25001                 reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(
25002                     structExtension),
25003                 reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(
25004                     structExtension2),
25005                 onFail);
25006             break;
25007         }
25008 #endif
25009 #ifdef VK_EXT_ycbcr_2plane_444_formats
25010         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
25011             checkEqual_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
25012                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
25013                     structExtension),
25014                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
25015                     structExtension2),
25016                 onFail);
25017             break;
25018         }
25019 #endif
25020 #ifdef VK_EXT_fragment_density_map2
25021         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
25022             checkEqual_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
25023                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(
25024                     structExtension),
25025                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(
25026                     structExtension2),
25027                 onFail);
25028             break;
25029         }
25030         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
25031             checkEqual_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
25032                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(
25033                     structExtension),
25034                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(
25035                     structExtension2),
25036                 onFail);
25037             break;
25038         }
25039 #endif
25040 #ifdef VK_QCOM_rotated_copy_commands
25041         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
25042             checkEqual_VkCopyCommandTransformInfoQCOM(
25043                 reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension),
25044                 reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension2), onFail);
25045             break;
25046         }
25047 #endif
25048 #ifdef VK_EXT_image_compression_control
25049         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
25050             checkEqual_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
25051                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
25052                     structExtension),
25053                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
25054                     structExtension2),
25055                 onFail);
25056             break;
25057         }
25058         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
25059             checkEqual_VkImageCompressionControlEXT(
25060                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension),
25061                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension2), onFail);
25062             break;
25063         }
25064         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
25065             checkEqual_VkImageCompressionPropertiesEXT(
25066                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension),
25067                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension2), onFail);
25068             break;
25069         }
25070 #endif
25071 #ifdef VK_EXT_attachment_feedback_loop_layout
25072         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
25073             checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
25074                 reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>(
25075                     structExtension),
25076                 reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>(
25077                     structExtension2),
25078                 onFail);
25079             break;
25080         }
25081 #endif
25082 #ifdef VK_EXT_4444_formats
25083         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
25084             checkEqual_VkPhysicalDevice4444FormatsFeaturesEXT(
25085                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension),
25086                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension2),
25087                 onFail);
25088             break;
25089         }
25090 #endif
25091 #ifdef VK_EXT_device_fault
25092         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
25093             checkEqual_VkPhysicalDeviceFaultFeaturesEXT(
25094                 reinterpret_cast<const VkPhysicalDeviceFaultFeaturesEXT*>(structExtension),
25095                 reinterpret_cast<const VkPhysicalDeviceFaultFeaturesEXT*>(structExtension2),
25096                 onFail);
25097             break;
25098         }
25099 #endif
25100 #ifdef VK_ARM_rasterization_order_attachment_access
25101         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
25102             checkEqual_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
25103                 reinterpret_cast<
25104                     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>(
25105                     structExtension),
25106                 reinterpret_cast<
25107                     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>(
25108                     structExtension2),
25109                 onFail);
25110             break;
25111         }
25112 #endif
25113 #ifdef VK_EXT_rgba10x6_formats
25114         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
25115             checkEqual_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
25116                 reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(
25117                     structExtension),
25118                 reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(
25119                     structExtension2),
25120                 onFail);
25121             break;
25122         }
25123 #endif
25124 #ifdef VK_VALVE_mutable_descriptor_type
25125         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
25126             checkEqual_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
25127                 reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>(
25128                     structExtension),
25129                 reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>(
25130                     structExtension2),
25131                 onFail);
25132             break;
25133         }
25134         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
25135             checkEqual_VkMutableDescriptorTypeCreateInfoEXT(
25136                 reinterpret_cast<const VkMutableDescriptorTypeCreateInfoEXT*>(structExtension),
25137                 reinterpret_cast<const VkMutableDescriptorTypeCreateInfoEXT*>(structExtension2),
25138                 onFail);
25139             break;
25140         }
25141 #endif
25142 #ifdef VK_EXT_vertex_input_dynamic_state
25143         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
25144             checkEqual_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
25145                 reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(
25146                     structExtension),
25147                 reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(
25148                     structExtension2),
25149                 onFail);
25150             break;
25151         }
25152 #endif
25153 #ifdef VK_EXT_physical_device_drm
25154         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
25155             checkEqual_VkPhysicalDeviceDrmPropertiesEXT(
25156                 reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension),
25157                 reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension2),
25158                 onFail);
25159             break;
25160         }
25161 #endif
25162 #ifdef VK_EXT_device_address_binding_report
25163         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
25164             checkEqual_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
25165                 reinterpret_cast<const VkPhysicalDeviceAddressBindingReportFeaturesEXT*>(
25166                     structExtension),
25167                 reinterpret_cast<const VkPhysicalDeviceAddressBindingReportFeaturesEXT*>(
25168                     structExtension2),
25169                 onFail);
25170             break;
25171         }
25172         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
25173             checkEqual_VkDeviceAddressBindingCallbackDataEXT(
25174                 reinterpret_cast<const VkDeviceAddressBindingCallbackDataEXT*>(structExtension),
25175                 reinterpret_cast<const VkDeviceAddressBindingCallbackDataEXT*>(structExtension2),
25176                 onFail);
25177             break;
25178         }
25179 #endif
25180 #ifdef VK_EXT_depth_clip_control
25181         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
25182             checkEqual_VkPhysicalDeviceDepthClipControlFeaturesEXT(
25183                 reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>(
25184                     structExtension),
25185                 reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>(
25186                     structExtension2),
25187                 onFail);
25188             break;
25189         }
25190         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
25191             checkEqual_VkPipelineViewportDepthClipControlCreateInfoEXT(
25192                 reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT*>(
25193                     structExtension),
25194                 reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT*>(
25195                     structExtension2),
25196                 onFail);
25197             break;
25198         }
25199 #endif
25200 #ifdef VK_EXT_primitive_topology_list_restart
25201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
25202             checkEqual_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
25203                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
25204                     structExtension),
25205                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
25206                     structExtension2),
25207                 onFail);
25208             break;
25209         }
25210 #endif
25211 #ifdef VK_FUCHSIA_external_memory
25212         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
25213             checkEqual_VkImportMemoryZirconHandleInfoFUCHSIA(
25214                 reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension),
25215                 reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension2),
25216                 onFail);
25217             break;
25218         }
25219 #endif
25220 #ifdef VK_FUCHSIA_buffer_collection
25221         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
25222             checkEqual_VkImportMemoryBufferCollectionFUCHSIA(
25223                 reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension),
25224                 reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension2),
25225                 onFail);
25226             break;
25227         }
25228         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
25229             checkEqual_VkBufferCollectionImageCreateInfoFUCHSIA(
25230                 reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension),
25231                 reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension2),
25232                 onFail);
25233             break;
25234         }
25235         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
25236             checkEqual_VkBufferCollectionBufferCreateInfoFUCHSIA(
25237                 reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension),
25238                 reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(
25239                     structExtension2),
25240                 onFail);
25241             break;
25242         }
25243 #endif
25244 #ifdef VK_HUAWEI_subpass_shading
25245         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
25246             checkEqual_VkSubpassShadingPipelineCreateInfoHUAWEI(
25247                 reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension),
25248                 reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension2),
25249                 onFail);
25250             break;
25251         }
25252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
25253             checkEqual_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
25254                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(
25255                     structExtension),
25256                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(
25257                     structExtension2),
25258                 onFail);
25259             break;
25260         }
25261         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
25262             checkEqual_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
25263                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(
25264                     structExtension),
25265                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(
25266                     structExtension2),
25267                 onFail);
25268             break;
25269         }
25270 #endif
25271 #ifdef VK_HUAWEI_invocation_mask
25272         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
25273             checkEqual_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
25274                 reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(
25275                     structExtension),
25276                 reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(
25277                     structExtension2),
25278                 onFail);
25279             break;
25280         }
25281 #endif
25282 #ifdef VK_NV_external_memory_rdma
25283         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
25284             checkEqual_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
25285                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(
25286                     structExtension),
25287                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(
25288                     structExtension2),
25289                 onFail);
25290             break;
25291         }
25292 #endif
25293 #ifdef VK_EXT_pipeline_properties
25294         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
25295             checkEqual_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
25296                 reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(
25297                     structExtension),
25298                 reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(
25299                     structExtension2),
25300                 onFail);
25301             break;
25302         }
25303 #endif
25304 #ifdef VK_EXT_multisampled_render_to_single_sampled
25305         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
25306             checkEqual_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
25307                 reinterpret_cast<
25308                     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(
25309                     structExtension),
25310                 reinterpret_cast<
25311                     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(
25312                     structExtension2),
25313                 onFail);
25314             break;
25315         }
25316         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
25317             checkEqual_VkSubpassResolvePerformanceQueryEXT(
25318                 reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT*>(structExtension),
25319                 reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT*>(structExtension2),
25320                 onFail);
25321             break;
25322         }
25323         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
25324             checkEqual_VkMultisampledRenderToSingleSampledInfoEXT(
25325                 reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT*>(
25326                     structExtension),
25327                 reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT*>(
25328                     structExtension2),
25329                 onFail);
25330             break;
25331         }
25332 #endif
25333 #ifdef VK_EXT_extended_dynamic_state2
25334         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
25335             checkEqual_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
25336                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
25337                     structExtension),
25338                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
25339                     structExtension2),
25340                 onFail);
25341             break;
25342         }
25343 #endif
25344 #ifdef VK_EXT_color_write_enable
25345         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
25346             checkEqual_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
25347                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
25348                     structExtension),
25349                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
25350                     structExtension2),
25351                 onFail);
25352             break;
25353         }
25354         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
25355             checkEqual_VkPipelineColorWriteCreateInfoEXT(
25356                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension),
25357                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension2),
25358                 onFail);
25359             break;
25360         }
25361 #endif
25362 #ifdef VK_EXT_primitives_generated_query
25363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
25364             checkEqual_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
25365                 reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(
25366                     structExtension),
25367                 reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(
25368                     structExtension2),
25369                 onFail);
25370             break;
25371         }
25372 #endif
25373 #ifdef VK_GOOGLE_gfxstream
25374         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
25375             checkEqual_VkImportColorBufferGOOGLE(
25376                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension),
25377                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension2), onFail);
25378             break;
25379         }
25380         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
25381             checkEqual_VkImportBufferGOOGLE(
25382                 reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension),
25383                 reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension2), onFail);
25384             break;
25385         }
25386         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
25387             checkEqual_VkCreateBlobGOOGLE(
25388                 reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension),
25389                 reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension2), onFail);
25390             break;
25391         }
25392 #endif
25393 #ifdef VK_EXT_image_view_min_lod
25394         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
25395             checkEqual_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
25396                 reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(
25397                     structExtension),
25398                 reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(
25399                     structExtension2),
25400                 onFail);
25401             break;
25402         }
25403         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
25404             checkEqual_VkImageViewMinLodCreateInfoEXT(
25405                 reinterpret_cast<const VkImageViewMinLodCreateInfoEXT*>(structExtension),
25406                 reinterpret_cast<const VkImageViewMinLodCreateInfoEXT*>(structExtension2), onFail);
25407             break;
25408         }
25409 #endif
25410 #ifdef VK_EXT_multi_draw
25411         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
25412             checkEqual_VkPhysicalDeviceMultiDrawFeaturesEXT(
25413                 reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension),
25414                 reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension2),
25415                 onFail);
25416             break;
25417         }
25418         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
25419             checkEqual_VkPhysicalDeviceMultiDrawPropertiesEXT(
25420                 reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension),
25421                 reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension2),
25422                 onFail);
25423             break;
25424         }
25425 #endif
25426 #ifdef VK_EXT_image_2d_view_of_3d
25427         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
25428             checkEqual_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
25429                 reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(
25430                     structExtension),
25431                 reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(
25432                     structExtension2),
25433                 onFail);
25434             break;
25435         }
25436 #endif
25437 #ifdef VK_EXT_shader_tile_image
25438         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
25439             checkEqual_VkPhysicalDeviceShaderTileImageFeaturesEXT(
25440                 reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT*>(
25441                     structExtension),
25442                 reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT*>(
25443                     structExtension2),
25444                 onFail);
25445             break;
25446         }
25447         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
25448             checkEqual_VkPhysicalDeviceShaderTileImagePropertiesEXT(
25449                 reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT*>(
25450                     structExtension),
25451                 reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT*>(
25452                     structExtension2),
25453                 onFail);
25454             break;
25455         }
25456 #endif
25457 #ifdef VK_EXT_opacity_micromap
25458         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
25459             checkEqual_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
25460                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapFeaturesEXT*>(
25461                     structExtension),
25462                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapFeaturesEXT*>(
25463                     structExtension2),
25464                 onFail);
25465             break;
25466         }
25467         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
25468             checkEqual_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
25469                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapPropertiesEXT*>(
25470                     structExtension),
25471                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapPropertiesEXT*>(
25472                     structExtension2),
25473                 onFail);
25474             break;
25475         }
25476         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
25477             checkEqual_VkAccelerationStructureTrianglesOpacityMicromapEXT(
25478                 reinterpret_cast<const VkAccelerationStructureTrianglesOpacityMicromapEXT*>(
25479                     structExtension),
25480                 reinterpret_cast<const VkAccelerationStructureTrianglesOpacityMicromapEXT*>(
25481                     structExtension2),
25482                 onFail);
25483             break;
25484         }
25485 #endif
25486 #ifdef VK_NV_displacement_micromap
25487 #ifdef VK_ENABLE_BETA_EXTENSIONS
25488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
25489             checkEqual_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
25490                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV*>(
25491                     structExtension),
25492                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV*>(
25493                     structExtension2),
25494                 onFail);
25495             break;
25496         }
25497 #endif  // VK_ENABLE_BETA_EXTENSIONS
25498 #ifdef VK_ENABLE_BETA_EXTENSIONS
25499         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
25500             checkEqual_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
25501                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV*>(
25502                     structExtension),
25503                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV*>(
25504                     structExtension2),
25505                 onFail);
25506             break;
25507         }
25508 #endif  // VK_ENABLE_BETA_EXTENSIONS
25509 #ifdef VK_ENABLE_BETA_EXTENSIONS
25510         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
25511             checkEqual_VkAccelerationStructureTrianglesDisplacementMicromapNV(
25512                 reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV*>(
25513                     structExtension),
25514                 reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV*>(
25515                     structExtension2),
25516                 onFail);
25517             break;
25518         }
25519 #endif  // VK_ENABLE_BETA_EXTENSIONS
25520 #endif
25521 #ifdef VK_HUAWEI_cluster_culling_shader
25522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
25523             checkEqual_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
25524                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>(
25525                     structExtension),
25526                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>(
25527                     structExtension2),
25528                 onFail);
25529             break;
25530         }
25531         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
25532             checkEqual_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
25533                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>(
25534                     structExtension),
25535                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>(
25536                     structExtension2),
25537                 onFail);
25538             break;
25539         }
25540 #endif
25541 #ifdef VK_EXT_border_color_swizzle
25542         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
25543             checkEqual_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
25544                 reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(
25545                     structExtension),
25546                 reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(
25547                     structExtension2),
25548                 onFail);
25549             break;
25550         }
25551         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
25552             checkEqual_VkSamplerBorderColorComponentMappingCreateInfoEXT(
25553                 reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(
25554                     structExtension),
25555                 reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(
25556                     structExtension2),
25557                 onFail);
25558             break;
25559         }
25560 #endif
25561 #ifdef VK_EXT_pageable_device_local_memory
25562         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
25563             checkEqual_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
25564                 reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(
25565                     structExtension),
25566                 reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(
25567                     structExtension2),
25568                 onFail);
25569             break;
25570         }
25571 #endif
25572 #ifdef VK_ARM_shader_core_properties
25573         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
25574             checkEqual_VkPhysicalDeviceShaderCorePropertiesARM(
25575                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM*>(structExtension),
25576                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM*>(structExtension2),
25577                 onFail);
25578             break;
25579         }
25580 #endif
25581 #ifdef VK_EXT_image_sliced_view_of_3d
25582         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
25583             checkEqual_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
25584                 reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>(
25585                     structExtension),
25586                 reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>(
25587                     structExtension2),
25588                 onFail);
25589             break;
25590         }
25591         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
25592             checkEqual_VkImageViewSlicedCreateInfoEXT(
25593                 reinterpret_cast<const VkImageViewSlicedCreateInfoEXT*>(structExtension),
25594                 reinterpret_cast<const VkImageViewSlicedCreateInfoEXT*>(structExtension2), onFail);
25595             break;
25596         }
25597 #endif
25598 #ifdef VK_VALVE_descriptor_set_host_mapping
25599         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
25600             checkEqual_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
25601                 reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(
25602                     structExtension),
25603                 reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(
25604                     structExtension2),
25605                 onFail);
25606             break;
25607         }
25608 #endif
25609 #ifdef VK_EXT_depth_clamp_zero_one
25610         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
25611             checkEqual_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
25612                 reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>(
25613                     structExtension),
25614                 reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>(
25615                     structExtension2),
25616                 onFail);
25617             break;
25618         }
25619 #endif
25620 #ifdef VK_EXT_non_seamless_cube_map
25621         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
25622             checkEqual_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
25623                 reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(
25624                     structExtension),
25625                 reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(
25626                     structExtension2),
25627                 onFail);
25628             break;
25629         }
25630 #endif
25631 #ifdef VK_QCOM_fragment_density_map_offset
25632         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
25633             checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
25634                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(
25635                     structExtension),
25636                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(
25637                     structExtension2),
25638                 onFail);
25639             break;
25640         }
25641         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
25642             checkEqual_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
25643                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>(
25644                     structExtension),
25645                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>(
25646                     structExtension2),
25647                 onFail);
25648             break;
25649         }
25650         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
25651             checkEqual_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
25652                 reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>(
25653                     structExtension),
25654                 reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>(
25655                     structExtension2),
25656                 onFail);
25657             break;
25658         }
25659 #endif
25660 #ifdef VK_NV_copy_memory_indirect
25661         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
25662             checkEqual_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
25663                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>(
25664                     structExtension),
25665                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>(
25666                     structExtension2),
25667                 onFail);
25668             break;
25669         }
25670         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
25671             checkEqual_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
25672                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>(
25673                     structExtension),
25674                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>(
25675                     structExtension2),
25676                 onFail);
25677             break;
25678         }
25679 #endif
25680 #ifdef VK_NV_memory_decompression
25681         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
25682             checkEqual_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
25683                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionFeaturesNV*>(
25684                     structExtension),
25685                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionFeaturesNV*>(
25686                     structExtension2),
25687                 onFail);
25688             break;
25689         }
25690         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
25691             checkEqual_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
25692                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV*>(
25693                     structExtension),
25694                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV*>(
25695                     structExtension2),
25696                 onFail);
25697             break;
25698         }
25699 #endif
25700 #ifdef VK_NV_linear_color_attachment
25701         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
25702             checkEqual_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
25703                 reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(
25704                     structExtension),
25705                 reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(
25706                     structExtension2),
25707                 onFail);
25708             break;
25709         }
25710 #endif
25711 #ifdef VK_EXT_image_compression_control_swapchain
25712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
25713             checkEqual_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
25714                 reinterpret_cast<
25715                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
25716                     structExtension),
25717                 reinterpret_cast<
25718                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
25719                     structExtension2),
25720                 onFail);
25721             break;
25722         }
25723 #endif
25724 #ifdef VK_QCOM_image_processing
25725         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
25726             checkEqual_VkImageViewSampleWeightCreateInfoQCOM(
25727                 reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM*>(structExtension),
25728                 reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM*>(structExtension2),
25729                 onFail);
25730             break;
25731         }
25732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
25733             checkEqual_VkPhysicalDeviceImageProcessingFeaturesQCOM(
25734                 reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>(
25735                     structExtension),
25736                 reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>(
25737                     structExtension2),
25738                 onFail);
25739             break;
25740         }
25741         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
25742             checkEqual_VkPhysicalDeviceImageProcessingPropertiesQCOM(
25743                 reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM*>(
25744                     structExtension),
25745                 reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM*>(
25746                     structExtension2),
25747                 onFail);
25748             break;
25749         }
25750 #endif
25751 #ifdef VK_EXT_extended_dynamic_state3
25752         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
25753             checkEqual_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
25754                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(
25755                     structExtension),
25756                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(
25757                     structExtension2),
25758                 onFail);
25759             break;
25760         }
25761         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
25762             checkEqual_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
25763                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>(
25764                     structExtension),
25765                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>(
25766                     structExtension2),
25767                 onFail);
25768             break;
25769         }
25770 #endif
25771 #ifdef VK_EXT_subpass_merge_feedback
25772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
25773             checkEqual_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
25774                 reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>(
25775                     structExtension),
25776                 reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>(
25777                     structExtension2),
25778                 onFail);
25779             break;
25780         }
25781         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
25782             checkEqual_VkRenderPassCreationControlEXT(
25783                 reinterpret_cast<const VkRenderPassCreationControlEXT*>(structExtension),
25784                 reinterpret_cast<const VkRenderPassCreationControlEXT*>(structExtension2), onFail);
25785             break;
25786         }
25787         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
25788             checkEqual_VkRenderPassCreationFeedbackCreateInfoEXT(
25789                 reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT*>(structExtension),
25790                 reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT*>(
25791                     structExtension2),
25792                 onFail);
25793             break;
25794         }
25795         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
25796             checkEqual_VkRenderPassSubpassFeedbackCreateInfoEXT(
25797                 reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT*>(structExtension),
25798                 reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT*>(structExtension2),
25799                 onFail);
25800             break;
25801         }
25802 #endif
25803 #ifdef VK_LUNARG_direct_driver_loading
25804         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
25805             checkEqual_VkDirectDriverLoadingListLUNARG(
25806                 reinterpret_cast<const VkDirectDriverLoadingListLUNARG*>(structExtension),
25807                 reinterpret_cast<const VkDirectDriverLoadingListLUNARG*>(structExtension2), onFail);
25808             break;
25809         }
25810 #endif
25811 #ifdef VK_EXT_shader_module_identifier
25812         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
25813             checkEqual_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
25814                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(
25815                     structExtension),
25816                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(
25817                     structExtension2),
25818                 onFail);
25819             break;
25820         }
25821         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
25822             checkEqual_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
25823                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>(
25824                     structExtension),
25825                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>(
25826                     structExtension2),
25827                 onFail);
25828             break;
25829         }
25830         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
25831             checkEqual_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
25832                 reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>(
25833                     structExtension),
25834                 reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>(
25835                     structExtension2),
25836                 onFail);
25837             break;
25838         }
25839 #endif
25840 #ifdef VK_NV_optical_flow
25841         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
25842             checkEqual_VkPhysicalDeviceOpticalFlowFeaturesNV(
25843                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowFeaturesNV*>(structExtension),
25844                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowFeaturesNV*>(structExtension2),
25845                 onFail);
25846             break;
25847         }
25848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
25849             checkEqual_VkPhysicalDeviceOpticalFlowPropertiesNV(
25850                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowPropertiesNV*>(structExtension),
25851                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowPropertiesNV*>(structExtension2),
25852                 onFail);
25853             break;
25854         }
25855         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
25856             checkEqual_VkOpticalFlowImageFormatInfoNV(
25857                 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV*>(structExtension),
25858                 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV*>(structExtension2), onFail);
25859             break;
25860         }
25861         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
25862             checkEqual_VkOpticalFlowSessionCreatePrivateDataInfoNV(
25863                 reinterpret_cast<const VkOpticalFlowSessionCreatePrivateDataInfoNV*>(
25864                     structExtension),
25865                 reinterpret_cast<const VkOpticalFlowSessionCreatePrivateDataInfoNV*>(
25866                     structExtension2),
25867                 onFail);
25868             break;
25869         }
25870 #endif
25871 #ifdef VK_EXT_legacy_dithering
25872         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
25873             checkEqual_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
25874                 reinterpret_cast<const VkPhysicalDeviceLegacyDitheringFeaturesEXT*>(
25875                     structExtension),
25876                 reinterpret_cast<const VkPhysicalDeviceLegacyDitheringFeaturesEXT*>(
25877                     structExtension2),
25878                 onFail);
25879             break;
25880         }
25881 #endif
25882 #ifdef VK_EXT_pipeline_protected_access
25883         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
25884             checkEqual_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
25885                 reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>(
25886                     structExtension),
25887                 reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>(
25888                     structExtension2),
25889                 onFail);
25890             break;
25891         }
25892 #endif
25893 #ifdef VK_EXT_shader_object
25894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
25895             checkEqual_VkPhysicalDeviceShaderObjectFeaturesEXT(
25896                 reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT*>(structExtension),
25897                 reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT*>(structExtension2),
25898                 onFail);
25899             break;
25900         }
25901         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
25902             checkEqual_VkPhysicalDeviceShaderObjectPropertiesEXT(
25903                 reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT*>(structExtension),
25904                 reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT*>(
25905                     structExtension2),
25906                 onFail);
25907             break;
25908         }
25909 #endif
25910 #ifdef VK_QCOM_tile_properties
25911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
25912             checkEqual_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
25913                 reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(
25914                     structExtension),
25915                 reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(
25916                     structExtension2),
25917                 onFail);
25918             break;
25919         }
25920 #endif
25921 #ifdef VK_SEC_amigo_profiling
25922         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
25923             checkEqual_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
25924                 reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC*>(structExtension),
25925                 reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC*>(
25926                     structExtension2),
25927                 onFail);
25928             break;
25929         }
25930         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
25931             checkEqual_VkAmigoProfilingSubmitInfoSEC(
25932                 reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC*>(structExtension),
25933                 reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC*>(structExtension2), onFail);
25934             break;
25935         }
25936 #endif
25937 #ifdef VK_QCOM_multiview_per_view_viewports
25938         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
25939             checkEqual_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
25940                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>(
25941                     structExtension),
25942                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>(
25943                     structExtension2),
25944                 onFail);
25945             break;
25946         }
25947 #endif
25948 #ifdef VK_NV_ray_tracing_invocation_reorder
25949         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
25950             checkEqual_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
25951                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>(
25952                     structExtension),
25953                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>(
25954                     structExtension2),
25955                 onFail);
25956             break;
25957         }
25958         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
25959             checkEqual_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
25960                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>(
25961                     structExtension),
25962                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>(
25963                     structExtension2),
25964                 onFail);
25965             break;
25966         }
25967 #endif
25968 #ifdef VK_ARM_shader_core_builtins
25969         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
25970             checkEqual_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
25971                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>(
25972                     structExtension),
25973                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>(
25974                     structExtension2),
25975                 onFail);
25976             break;
25977         }
25978         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
25979             checkEqual_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
25980                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>(
25981                     structExtension),
25982                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>(
25983                     structExtension2),
25984                 onFail);
25985             break;
25986         }
25987 #endif
25988 #ifdef VK_EXT_pipeline_library_group_handles
25989         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
25990             checkEqual_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
25991                 reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>(
25992                     structExtension),
25993                 reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>(
25994                     structExtension2),
25995                 onFail);
25996             break;
25997         }
25998 #endif
25999 #ifdef VK_QCOM_multiview_per_view_render_areas
26000         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
26001             checkEqual_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
26002                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>(
26003                     structExtension),
26004                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>(
26005                     structExtension2),
26006                 onFail);
26007             break;
26008         }
26009         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
26010             checkEqual_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
26011                 reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>(
26012                     structExtension),
26013                 reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>(
26014                     structExtension2),
26015                 onFail);
26016             break;
26017         }
26018 #endif
26019 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
26020         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
26021             checkEqual_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
26022                 reinterpret_cast<
26023                     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>(
26024                     structExtension),
26025                 reinterpret_cast<
26026                     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>(
26027                     structExtension2),
26028                 onFail);
26029             break;
26030         }
26031 #endif
26032 #ifdef VK_KHR_acceleration_structure
26033         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
26034             checkEqual_VkWriteDescriptorSetAccelerationStructureKHR(
26035                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(
26036                     structExtension),
26037                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(
26038                     structExtension2),
26039                 onFail);
26040             break;
26041         }
26042         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
26043             checkEqual_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
26044                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(
26045                     structExtension),
26046                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(
26047                     structExtension2),
26048                 onFail);
26049             break;
26050         }
26051         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
26052             checkEqual_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
26053                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(
26054                     structExtension),
26055                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(
26056                     structExtension2),
26057                 onFail);
26058             break;
26059         }
26060 #endif
26061 #ifdef VK_KHR_ray_tracing_pipeline
26062         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
26063             checkEqual_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
26064                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(
26065                     structExtension),
26066                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(
26067                     structExtension2),
26068                 onFail);
26069             break;
26070         }
26071         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
26072             checkEqual_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
26073                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(
26074                     structExtension),
26075                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(
26076                     structExtension2),
26077                 onFail);
26078             break;
26079         }
26080 #endif
26081 #ifdef VK_KHR_ray_query
26082         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
26083             checkEqual_VkPhysicalDeviceRayQueryFeaturesKHR(
26084                 reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension),
26085                 reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension2),
26086                 onFail);
26087             break;
26088         }
26089 #endif
26090 #ifdef VK_EXT_mesh_shader
26091         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
26092             checkEqual_VkPhysicalDeviceMeshShaderFeaturesEXT(
26093                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT*>(structExtension),
26094                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT*>(structExtension2),
26095                 onFail);
26096             break;
26097         }
26098         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
26099             checkEqual_VkPhysicalDeviceMeshShaderPropertiesEXT(
26100                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT*>(structExtension),
26101                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT*>(structExtension2),
26102                 onFail);
26103             break;
26104         }
26105 #endif
26106         default: {
26107             return;
26108         }
26109     }
26110 }
26111 
26112 }  // namespace vk
26113 }  // namespace gfxstream
26114