• 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_counting_guest
17 //
18 // (impl) generated by scripts/genvk.py -registry ../../vulkan/registry/vk.xml -registryGfxstream
19 // xml/vk_gfxstream.xml cereal -o /tmp/
20 //
21 // Please do not modify directly;
22 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.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_counting_guest.h"
33 
34 #include <cstring>
35 
36 #include "goldfish_vk_extension_structs_guest.h"
37 #include "goldfish_vk_private_defs.h"
38 
39 namespace gfxstream {
40 namespace vk {
41 
42 void count_extension_struct(uint32_t featureBits, VkStructureType rootType,
43                             const void* structExtension, size_t* count);
44 
45 #ifdef VK_VERSION_1_0
count_VkExtent2D(uint32_t featureBits,VkStructureType rootType,const VkExtent2D * toCount,size_t * count)46 void count_VkExtent2D(uint32_t featureBits, VkStructureType rootType, const VkExtent2D* toCount,
47                       size_t* count) {
48     (void)featureBits;
49     (void)rootType;
50     (void)toCount;
51     (void)count;
52     *count += sizeof(uint32_t);
53     *count += sizeof(uint32_t);
54 }
55 
count_VkExtent3D(uint32_t featureBits,VkStructureType rootType,const VkExtent3D * toCount,size_t * count)56 void count_VkExtent3D(uint32_t featureBits, VkStructureType rootType, const VkExtent3D* toCount,
57                       size_t* count) {
58     (void)featureBits;
59     (void)rootType;
60     (void)toCount;
61     (void)count;
62     *count += sizeof(uint32_t);
63     *count += sizeof(uint32_t);
64     *count += sizeof(uint32_t);
65 }
66 
count_VkOffset2D(uint32_t featureBits,VkStructureType rootType,const VkOffset2D * toCount,size_t * count)67 void count_VkOffset2D(uint32_t featureBits, VkStructureType rootType, const VkOffset2D* toCount,
68                       size_t* count) {
69     (void)featureBits;
70     (void)rootType;
71     (void)toCount;
72     (void)count;
73     *count += sizeof(int32_t);
74     *count += sizeof(int32_t);
75 }
76 
count_VkOffset3D(uint32_t featureBits,VkStructureType rootType,const VkOffset3D * toCount,size_t * count)77 void count_VkOffset3D(uint32_t featureBits, VkStructureType rootType, const VkOffset3D* toCount,
78                       size_t* count) {
79     (void)featureBits;
80     (void)rootType;
81     (void)toCount;
82     (void)count;
83     *count += sizeof(int32_t);
84     *count += sizeof(int32_t);
85     *count += sizeof(int32_t);
86 }
87 
count_VkRect2D(uint32_t featureBits,VkStructureType rootType,const VkRect2D * toCount,size_t * count)88 void count_VkRect2D(uint32_t featureBits, VkStructureType rootType, const VkRect2D* toCount,
89                     size_t* count) {
90     (void)featureBits;
91     (void)rootType;
92     (void)toCount;
93     (void)count;
94     count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->offset), count);
95     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->extent), count);
96 }
97 
count_VkBaseInStructure(uint32_t featureBits,VkStructureType rootType,const VkBaseInStructure * toCount,size_t * count)98 void count_VkBaseInStructure(uint32_t featureBits, VkStructureType rootType,
99                              const VkBaseInStructure* toCount, size_t* count) {
100     (void)featureBits;
101     (void)rootType;
102     (void)toCount;
103     (void)count;
104     *count += sizeof(VkStructureType);
105     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
106         rootType = toCount->sType;
107     }
108     count_extension_struct(featureBits, rootType, toCount->pNext, count);
109 }
110 
count_VkBaseOutStructure(uint32_t featureBits,VkStructureType rootType,const VkBaseOutStructure * toCount,size_t * count)111 void count_VkBaseOutStructure(uint32_t featureBits, VkStructureType rootType,
112                               const VkBaseOutStructure* toCount, size_t* count) {
113     (void)featureBits;
114     (void)rootType;
115     (void)toCount;
116     (void)count;
117     *count += sizeof(VkStructureType);
118     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
119         rootType = toCount->sType;
120     }
121     count_extension_struct(featureBits, rootType, toCount->pNext, count);
122 }
123 
count_VkBufferMemoryBarrier(uint32_t featureBits,VkStructureType rootType,const VkBufferMemoryBarrier * toCount,size_t * count)124 void count_VkBufferMemoryBarrier(uint32_t featureBits, VkStructureType rootType,
125                                  const VkBufferMemoryBarrier* toCount, size_t* count) {
126     (void)featureBits;
127     (void)rootType;
128     (void)toCount;
129     (void)count;
130     *count += sizeof(VkStructureType);
131     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
132         rootType = toCount->sType;
133     }
134     count_extension_struct(featureBits, rootType, toCount->pNext, count);
135     *count += sizeof(VkAccessFlags);
136     *count += sizeof(VkAccessFlags);
137     *count += sizeof(uint32_t);
138     *count += sizeof(uint32_t);
139     uint64_t cgen_var_0;
140     *count += 1 * 8;
141     *count += sizeof(VkDeviceSize);
142     *count += sizeof(VkDeviceSize);
143 }
144 
count_VkDispatchIndirectCommand(uint32_t featureBits,VkStructureType rootType,const VkDispatchIndirectCommand * toCount,size_t * count)145 void count_VkDispatchIndirectCommand(uint32_t featureBits, VkStructureType rootType,
146                                      const VkDispatchIndirectCommand* toCount, size_t* count) {
147     (void)featureBits;
148     (void)rootType;
149     (void)toCount;
150     (void)count;
151     *count += sizeof(uint32_t);
152     *count += sizeof(uint32_t);
153     *count += sizeof(uint32_t);
154 }
155 
count_VkDrawIndexedIndirectCommand(uint32_t featureBits,VkStructureType rootType,const VkDrawIndexedIndirectCommand * toCount,size_t * count)156 void count_VkDrawIndexedIndirectCommand(uint32_t featureBits, VkStructureType rootType,
157                                         const VkDrawIndexedIndirectCommand* toCount,
158                                         size_t* count) {
159     (void)featureBits;
160     (void)rootType;
161     (void)toCount;
162     (void)count;
163     *count += sizeof(uint32_t);
164     *count += sizeof(uint32_t);
165     *count += sizeof(uint32_t);
166     *count += sizeof(int32_t);
167     *count += sizeof(uint32_t);
168 }
169 
count_VkDrawIndirectCommand(uint32_t featureBits,VkStructureType rootType,const VkDrawIndirectCommand * toCount,size_t * count)170 void count_VkDrawIndirectCommand(uint32_t featureBits, VkStructureType rootType,
171                                  const VkDrawIndirectCommand* toCount, size_t* count) {
172     (void)featureBits;
173     (void)rootType;
174     (void)toCount;
175     (void)count;
176     *count += sizeof(uint32_t);
177     *count += sizeof(uint32_t);
178     *count += sizeof(uint32_t);
179     *count += sizeof(uint32_t);
180 }
181 
count_VkImageSubresourceRange(uint32_t featureBits,VkStructureType rootType,const VkImageSubresourceRange * toCount,size_t * count)182 void count_VkImageSubresourceRange(uint32_t featureBits, VkStructureType rootType,
183                                    const VkImageSubresourceRange* toCount, size_t* count) {
184     (void)featureBits;
185     (void)rootType;
186     (void)toCount;
187     (void)count;
188     *count += sizeof(VkImageAspectFlags);
189     *count += sizeof(uint32_t);
190     *count += sizeof(uint32_t);
191     *count += sizeof(uint32_t);
192     *count += sizeof(uint32_t);
193 }
194 
count_VkImageMemoryBarrier(uint32_t featureBits,VkStructureType rootType,const VkImageMemoryBarrier * toCount,size_t * count)195 void count_VkImageMemoryBarrier(uint32_t featureBits, VkStructureType rootType,
196                                 const VkImageMemoryBarrier* toCount, size_t* count) {
197     (void)featureBits;
198     (void)rootType;
199     (void)toCount;
200     (void)count;
201     *count += sizeof(VkStructureType);
202     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
203         rootType = toCount->sType;
204     }
205     count_extension_struct(featureBits, rootType, toCount->pNext, count);
206     *count += sizeof(VkAccessFlags);
207     *count += sizeof(VkAccessFlags);
208     *count += sizeof(VkImageLayout);
209     *count += sizeof(VkImageLayout);
210     *count += sizeof(uint32_t);
211     *count += sizeof(uint32_t);
212     uint64_t cgen_var_0;
213     *count += 1 * 8;
214     count_VkImageSubresourceRange(featureBits, rootType,
215                                   (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
216 }
217 
count_VkMemoryBarrier(uint32_t featureBits,VkStructureType rootType,const VkMemoryBarrier * toCount,size_t * count)218 void count_VkMemoryBarrier(uint32_t featureBits, VkStructureType rootType,
219                            const VkMemoryBarrier* toCount, size_t* count) {
220     (void)featureBits;
221     (void)rootType;
222     (void)toCount;
223     (void)count;
224     *count += sizeof(VkStructureType);
225     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
226         rootType = toCount->sType;
227     }
228     count_extension_struct(featureBits, rootType, toCount->pNext, count);
229     *count += sizeof(VkAccessFlags);
230     *count += sizeof(VkAccessFlags);
231 }
232 
count_VkPipelineCacheHeaderVersionOne(uint32_t featureBits,VkStructureType rootType,const VkPipelineCacheHeaderVersionOne * toCount,size_t * count)233 void count_VkPipelineCacheHeaderVersionOne(uint32_t featureBits, VkStructureType rootType,
234                                            const VkPipelineCacheHeaderVersionOne* toCount,
235                                            size_t* count) {
236     (void)featureBits;
237     (void)rootType;
238     (void)toCount;
239     (void)count;
240     *count += sizeof(uint32_t);
241     *count += sizeof(VkPipelineCacheHeaderVersion);
242     *count += sizeof(uint32_t);
243     *count += sizeof(uint32_t);
244     *count += VK_UUID_SIZE * sizeof(uint8_t);
245 }
246 
count_VkAllocationCallbacks(uint32_t featureBits,VkStructureType rootType,const VkAllocationCallbacks * toCount,size_t * count)247 void count_VkAllocationCallbacks(uint32_t featureBits, VkStructureType rootType,
248                                  const VkAllocationCallbacks* toCount, size_t* count) {
249     (void)featureBits;
250     (void)rootType;
251     (void)toCount;
252     (void)count;
253     // WARNING PTR CHECK
254     *count += 8;
255     if (toCount->pUserData) {
256         *count += sizeof(uint8_t);
257     }
258     *count += 8;
259     *count += 8;
260     *count += 8;
261     *count += 8;
262     *count += 8;
263 }
264 
count_VkApplicationInfo(uint32_t featureBits,VkStructureType rootType,const VkApplicationInfo * toCount,size_t * count)265 void count_VkApplicationInfo(uint32_t featureBits, VkStructureType rootType,
266                              const VkApplicationInfo* toCount, size_t* count) {
267     (void)featureBits;
268     (void)rootType;
269     (void)toCount;
270     (void)count;
271     *count += sizeof(VkStructureType);
272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
273         rootType = toCount->sType;
274     }
275     count_extension_struct(featureBits, rootType, toCount->pNext, count);
276     if (featureBits & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
277         // WARNING PTR CHECK
278         *count += 8;
279         if (toCount->pApplicationName) {
280             *count += sizeof(uint32_t) +
281                       (toCount->pApplicationName ? strlen(toCount->pApplicationName) : 0);
282         }
283     } else {
284         *count +=
285             sizeof(uint32_t) + (toCount->pApplicationName ? strlen(toCount->pApplicationName) : 0);
286     }
287     *count += sizeof(uint32_t);
288     if (featureBits & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
289         // WARNING PTR CHECK
290         *count += 8;
291         if (toCount->pEngineName) {
292             *count += sizeof(uint32_t) + (toCount->pEngineName ? strlen(toCount->pEngineName) : 0);
293         }
294     } else {
295         *count += sizeof(uint32_t) + (toCount->pEngineName ? strlen(toCount->pEngineName) : 0);
296     }
297     *count += sizeof(uint32_t);
298     *count += sizeof(uint32_t);
299 }
300 
count_VkFormatProperties(uint32_t featureBits,VkStructureType rootType,const VkFormatProperties * toCount,size_t * count)301 void count_VkFormatProperties(uint32_t featureBits, VkStructureType rootType,
302                               const VkFormatProperties* toCount, size_t* count) {
303     (void)featureBits;
304     (void)rootType;
305     (void)toCount;
306     (void)count;
307     *count += sizeof(VkFormatFeatureFlags);
308     *count += sizeof(VkFormatFeatureFlags);
309     *count += sizeof(VkFormatFeatureFlags);
310 }
311 
count_VkImageFormatProperties(uint32_t featureBits,VkStructureType rootType,const VkImageFormatProperties * toCount,size_t * count)312 void count_VkImageFormatProperties(uint32_t featureBits, VkStructureType rootType,
313                                    const VkImageFormatProperties* toCount, size_t* count) {
314     (void)featureBits;
315     (void)rootType;
316     (void)toCount;
317     (void)count;
318     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->maxExtent), count);
319     *count += sizeof(uint32_t);
320     *count += sizeof(uint32_t);
321     *count += sizeof(VkSampleCountFlags);
322     *count += sizeof(VkDeviceSize);
323 }
324 
count_VkInstanceCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkInstanceCreateInfo * toCount,size_t * count)325 void count_VkInstanceCreateInfo(uint32_t featureBits, VkStructureType rootType,
326                                 const VkInstanceCreateInfo* toCount, size_t* count) {
327     (void)featureBits;
328     (void)rootType;
329     (void)toCount;
330     (void)count;
331     *count += sizeof(VkStructureType);
332     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
333         rootType = toCount->sType;
334     }
335     count_extension_struct(featureBits, rootType, toCount->pNext, count);
336     *count += sizeof(VkInstanceCreateFlags);
337     // WARNING PTR CHECK
338     *count += 8;
339     if (toCount->pApplicationInfo) {
340         count_VkApplicationInfo(featureBits, rootType,
341                                 (const VkApplicationInfo*)(toCount->pApplicationInfo), count);
342     }
343     *count += sizeof(uint32_t);
344     *count += sizeof(uint32_t);
345     if (toCount) {
346         for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i) {
347             size_t l =
348                 toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
349             *count +=
350                 sizeof(uint32_t) +
351                 (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
352         }
353     }
354     *count += sizeof(uint32_t);
355     *count += sizeof(uint32_t);
356     if (toCount) {
357         for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i) {
358             size_t l = toCount->ppEnabledExtensionNames[i]
359                            ? strlen(toCount->ppEnabledExtensionNames[i])
360                            : 0;
361             *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i]
362                                               ? strlen(toCount->ppEnabledExtensionNames[i])
363                                               : 0);
364         }
365     }
366 }
367 
count_VkMemoryHeap(uint32_t featureBits,VkStructureType rootType,const VkMemoryHeap * toCount,size_t * count)368 void count_VkMemoryHeap(uint32_t featureBits, VkStructureType rootType, const VkMemoryHeap* toCount,
369                         size_t* count) {
370     (void)featureBits;
371     (void)rootType;
372     (void)toCount;
373     (void)count;
374     *count += sizeof(VkDeviceSize);
375     *count += sizeof(VkMemoryHeapFlags);
376 }
377 
count_VkMemoryType(uint32_t featureBits,VkStructureType rootType,const VkMemoryType * toCount,size_t * count)378 void count_VkMemoryType(uint32_t featureBits, VkStructureType rootType, const VkMemoryType* toCount,
379                         size_t* count) {
380     (void)featureBits;
381     (void)rootType;
382     (void)toCount;
383     (void)count;
384     *count += sizeof(VkMemoryPropertyFlags);
385     *count += sizeof(uint32_t);
386 }
387 
count_VkPhysicalDeviceFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFeatures * toCount,size_t * count)388 void count_VkPhysicalDeviceFeatures(uint32_t featureBits, VkStructureType rootType,
389                                     const VkPhysicalDeviceFeatures* toCount, size_t* count) {
390     (void)featureBits;
391     (void)rootType;
392     (void)toCount;
393     (void)count;
394     *count += sizeof(VkBool32);
395     *count += sizeof(VkBool32);
396     *count += sizeof(VkBool32);
397     *count += sizeof(VkBool32);
398     *count += sizeof(VkBool32);
399     *count += sizeof(VkBool32);
400     *count += sizeof(VkBool32);
401     *count += sizeof(VkBool32);
402     *count += sizeof(VkBool32);
403     *count += sizeof(VkBool32);
404     *count += sizeof(VkBool32);
405     *count += sizeof(VkBool32);
406     *count += sizeof(VkBool32);
407     *count += sizeof(VkBool32);
408     *count += sizeof(VkBool32);
409     *count += sizeof(VkBool32);
410     *count += sizeof(VkBool32);
411     *count += sizeof(VkBool32);
412     *count += sizeof(VkBool32);
413     *count += sizeof(VkBool32);
414     *count += sizeof(VkBool32);
415     *count += sizeof(VkBool32);
416     *count += sizeof(VkBool32);
417     *count += sizeof(VkBool32);
418     *count += sizeof(VkBool32);
419     *count += sizeof(VkBool32);
420     *count += sizeof(VkBool32);
421     *count += sizeof(VkBool32);
422     *count += sizeof(VkBool32);
423     *count += sizeof(VkBool32);
424     *count += sizeof(VkBool32);
425     *count += sizeof(VkBool32);
426     *count += sizeof(VkBool32);
427     *count += sizeof(VkBool32);
428     *count += sizeof(VkBool32);
429     *count += sizeof(VkBool32);
430     *count += sizeof(VkBool32);
431     *count += sizeof(VkBool32);
432     *count += sizeof(VkBool32);
433     *count += sizeof(VkBool32);
434     *count += sizeof(VkBool32);
435     *count += sizeof(VkBool32);
436     *count += sizeof(VkBool32);
437     *count += sizeof(VkBool32);
438     *count += sizeof(VkBool32);
439     *count += sizeof(VkBool32);
440     *count += sizeof(VkBool32);
441     *count += sizeof(VkBool32);
442     *count += sizeof(VkBool32);
443     *count += sizeof(VkBool32);
444     *count += sizeof(VkBool32);
445     *count += sizeof(VkBool32);
446     *count += sizeof(VkBool32);
447     *count += sizeof(VkBool32);
448     *count += sizeof(VkBool32);
449 }
450 
count_VkPhysicalDeviceLimits(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceLimits * toCount,size_t * count)451 void count_VkPhysicalDeviceLimits(uint32_t featureBits, VkStructureType rootType,
452                                   const VkPhysicalDeviceLimits* toCount, size_t* count) {
453     (void)featureBits;
454     (void)rootType;
455     (void)toCount;
456     (void)count;
457     *count += sizeof(uint32_t);
458     *count += sizeof(uint32_t);
459     *count += sizeof(uint32_t);
460     *count += sizeof(uint32_t);
461     *count += sizeof(uint32_t);
462     *count += sizeof(uint32_t);
463     *count += sizeof(uint32_t);
464     *count += sizeof(uint32_t);
465     *count += sizeof(uint32_t);
466     *count += sizeof(uint32_t);
467     *count += sizeof(uint32_t);
468     *count += sizeof(VkDeviceSize);
469     *count += sizeof(VkDeviceSize);
470     *count += sizeof(uint32_t);
471     *count += sizeof(uint32_t);
472     *count += sizeof(uint32_t);
473     *count += sizeof(uint32_t);
474     *count += sizeof(uint32_t);
475     *count += sizeof(uint32_t);
476     *count += sizeof(uint32_t);
477     *count += sizeof(uint32_t);
478     *count += sizeof(uint32_t);
479     *count += sizeof(uint32_t);
480     *count += sizeof(uint32_t);
481     *count += sizeof(uint32_t);
482     *count += sizeof(uint32_t);
483     *count += sizeof(uint32_t);
484     *count += sizeof(uint32_t);
485     *count += sizeof(uint32_t);
486     *count += sizeof(uint32_t);
487     *count += sizeof(uint32_t);
488     *count += sizeof(uint32_t);
489     *count += sizeof(uint32_t);
490     *count += sizeof(uint32_t);
491     *count += sizeof(uint32_t);
492     *count += sizeof(uint32_t);
493     *count += sizeof(uint32_t);
494     *count += sizeof(uint32_t);
495     *count += sizeof(uint32_t);
496     *count += sizeof(uint32_t);
497     *count += sizeof(uint32_t);
498     *count += sizeof(uint32_t);
499     *count += sizeof(uint32_t);
500     *count += sizeof(uint32_t);
501     *count += sizeof(uint32_t);
502     *count += sizeof(uint32_t);
503     *count += sizeof(uint32_t);
504     *count += sizeof(uint32_t);
505     *count += sizeof(uint32_t);
506     *count += sizeof(uint32_t);
507     *count += sizeof(uint32_t);
508     *count += sizeof(uint32_t);
509     *count += 3 * sizeof(uint32_t);
510     *count += sizeof(uint32_t);
511     *count += 3 * sizeof(uint32_t);
512     *count += sizeof(uint32_t);
513     *count += sizeof(uint32_t);
514     *count += sizeof(uint32_t);
515     *count += sizeof(uint32_t);
516     *count += sizeof(uint32_t);
517     *count += sizeof(float);
518     *count += sizeof(float);
519     *count += sizeof(uint32_t);
520     *count += 2 * sizeof(uint32_t);
521     *count += 2 * sizeof(float);
522     *count += sizeof(uint32_t);
523     *count += 8;
524     *count += sizeof(VkDeviceSize);
525     *count += sizeof(VkDeviceSize);
526     *count += sizeof(VkDeviceSize);
527     *count += sizeof(int32_t);
528     *count += sizeof(uint32_t);
529     *count += sizeof(int32_t);
530     *count += sizeof(uint32_t);
531     *count += sizeof(float);
532     *count += sizeof(float);
533     *count += sizeof(uint32_t);
534     *count += sizeof(uint32_t);
535     *count += sizeof(uint32_t);
536     *count += sizeof(uint32_t);
537     *count += sizeof(VkSampleCountFlags);
538     *count += sizeof(VkSampleCountFlags);
539     *count += sizeof(VkSampleCountFlags);
540     *count += sizeof(VkSampleCountFlags);
541     *count += sizeof(uint32_t);
542     *count += sizeof(VkSampleCountFlags);
543     *count += sizeof(VkSampleCountFlags);
544     *count += sizeof(VkSampleCountFlags);
545     *count += sizeof(VkSampleCountFlags);
546     *count += sizeof(VkSampleCountFlags);
547     *count += sizeof(uint32_t);
548     *count += sizeof(VkBool32);
549     *count += sizeof(float);
550     *count += sizeof(uint32_t);
551     *count += sizeof(uint32_t);
552     *count += sizeof(uint32_t);
553     *count += sizeof(uint32_t);
554     *count += 2 * sizeof(float);
555     *count += 2 * sizeof(float);
556     *count += sizeof(float);
557     *count += sizeof(float);
558     *count += sizeof(VkBool32);
559     *count += sizeof(VkBool32);
560     *count += sizeof(VkDeviceSize);
561     *count += sizeof(VkDeviceSize);
562     *count += sizeof(VkDeviceSize);
563 }
564 
count_VkPhysicalDeviceMemoryProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties * toCount,size_t * count)565 void count_VkPhysicalDeviceMemoryProperties(uint32_t featureBits, VkStructureType rootType,
566                                             const VkPhysicalDeviceMemoryProperties* toCount,
567                                             size_t* count) {
568     (void)featureBits;
569     (void)rootType;
570     (void)toCount;
571     (void)count;
572     *count += sizeof(uint32_t);
573     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
574         count_VkMemoryType(featureBits, rootType, (VkMemoryType*)(toCount->memoryTypes + i), count);
575     }
576     *count += sizeof(uint32_t);
577     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
578         count_VkMemoryHeap(featureBits, rootType, (VkMemoryHeap*)(toCount->memoryHeaps + i), count);
579     }
580 }
581 
count_VkPhysicalDeviceSparseProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSparseProperties * toCount,size_t * count)582 void count_VkPhysicalDeviceSparseProperties(uint32_t featureBits, VkStructureType rootType,
583                                             const VkPhysicalDeviceSparseProperties* toCount,
584                                             size_t* count) {
585     (void)featureBits;
586     (void)rootType;
587     (void)toCount;
588     (void)count;
589     *count += sizeof(VkBool32);
590     *count += sizeof(VkBool32);
591     *count += sizeof(VkBool32);
592     *count += sizeof(VkBool32);
593     *count += sizeof(VkBool32);
594 }
595 
count_VkPhysicalDeviceProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProperties * toCount,size_t * count)596 void count_VkPhysicalDeviceProperties(uint32_t featureBits, VkStructureType rootType,
597                                       const VkPhysicalDeviceProperties* toCount, size_t* count) {
598     (void)featureBits;
599     (void)rootType;
600     (void)toCount;
601     (void)count;
602     *count += sizeof(uint32_t);
603     *count += sizeof(uint32_t);
604     *count += sizeof(uint32_t);
605     *count += sizeof(uint32_t);
606     *count += sizeof(VkPhysicalDeviceType);
607     *count += VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char);
608     *count += VK_UUID_SIZE * sizeof(uint8_t);
609     count_VkPhysicalDeviceLimits(featureBits, rootType, (VkPhysicalDeviceLimits*)(&toCount->limits),
610                                  count);
611     count_VkPhysicalDeviceSparseProperties(
612         featureBits, rootType, (VkPhysicalDeviceSparseProperties*)(&toCount->sparseProperties),
613         count);
614 }
615 
count_VkQueueFamilyProperties(uint32_t featureBits,VkStructureType rootType,const VkQueueFamilyProperties * toCount,size_t * count)616 void count_VkQueueFamilyProperties(uint32_t featureBits, VkStructureType rootType,
617                                    const VkQueueFamilyProperties* toCount, size_t* count) {
618     (void)featureBits;
619     (void)rootType;
620     (void)toCount;
621     (void)count;
622     *count += sizeof(VkQueueFlags);
623     *count += sizeof(uint32_t);
624     *count += sizeof(uint32_t);
625     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->minImageTransferGranularity),
626                      count);
627 }
628 
count_VkDeviceQueueCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceQueueCreateInfo * toCount,size_t * count)629 void count_VkDeviceQueueCreateInfo(uint32_t featureBits, VkStructureType rootType,
630                                    const VkDeviceQueueCreateInfo* toCount, size_t* count) {
631     (void)featureBits;
632     (void)rootType;
633     (void)toCount;
634     (void)count;
635     *count += sizeof(VkStructureType);
636     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
637         rootType = toCount->sType;
638     }
639     count_extension_struct(featureBits, rootType, toCount->pNext, count);
640     *count += sizeof(VkDeviceQueueCreateFlags);
641     *count += sizeof(uint32_t);
642     *count += sizeof(uint32_t);
643     if (toCount) {
644         *count += toCount->queueCount * sizeof(const float);
645     }
646 }
647 
count_VkDeviceCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceCreateInfo * toCount,size_t * count)648 void count_VkDeviceCreateInfo(uint32_t featureBits, VkStructureType rootType,
649                               const VkDeviceCreateInfo* toCount, size_t* count) {
650     (void)featureBits;
651     (void)rootType;
652     (void)toCount;
653     (void)count;
654     *count += sizeof(VkStructureType);
655     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
656         rootType = toCount->sType;
657     }
658     count_extension_struct(featureBits, rootType, toCount->pNext, count);
659     *count += sizeof(VkDeviceCreateFlags);
660     *count += sizeof(uint32_t);
661     if (toCount) {
662         for (uint32_t i = 0; i < (uint32_t)toCount->queueCreateInfoCount; ++i) {
663             count_VkDeviceQueueCreateInfo(
664                 featureBits, rootType,
665                 (const VkDeviceQueueCreateInfo*)(toCount->pQueueCreateInfos + i), count);
666         }
667     }
668     *count += sizeof(uint32_t);
669     *count += sizeof(uint32_t);
670     if (toCount) {
671         for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i) {
672             size_t l =
673                 toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
674             *count +=
675                 sizeof(uint32_t) +
676                 (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
677         }
678     }
679     *count += sizeof(uint32_t);
680     *count += sizeof(uint32_t);
681     if (toCount) {
682         for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i) {
683             size_t l = toCount->ppEnabledExtensionNames[i]
684                            ? strlen(toCount->ppEnabledExtensionNames[i])
685                            : 0;
686             *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i]
687                                               ? strlen(toCount->ppEnabledExtensionNames[i])
688                                               : 0);
689         }
690     }
691     // WARNING PTR CHECK
692     *count += 8;
693     if (toCount->pEnabledFeatures) {
694         count_VkPhysicalDeviceFeatures(featureBits, rootType,
695                                        (const VkPhysicalDeviceFeatures*)(toCount->pEnabledFeatures),
696                                        count);
697     }
698 }
699 
count_VkExtensionProperties(uint32_t featureBits,VkStructureType rootType,const VkExtensionProperties * toCount,size_t * count)700 void count_VkExtensionProperties(uint32_t featureBits, VkStructureType rootType,
701                                  const VkExtensionProperties* toCount, size_t* count) {
702     (void)featureBits;
703     (void)rootType;
704     (void)toCount;
705     (void)count;
706     *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
707     *count += sizeof(uint32_t);
708 }
709 
count_VkLayerProperties(uint32_t featureBits,VkStructureType rootType,const VkLayerProperties * toCount,size_t * count)710 void count_VkLayerProperties(uint32_t featureBits, VkStructureType rootType,
711                              const VkLayerProperties* toCount, size_t* count) {
712     (void)featureBits;
713     (void)rootType;
714     (void)toCount;
715     (void)count;
716     *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
717     *count += sizeof(uint32_t);
718     *count += sizeof(uint32_t);
719     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
720 }
721 
count_VkSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkSubmitInfo * toCount,size_t * count)722 void count_VkSubmitInfo(uint32_t featureBits, VkStructureType rootType, const VkSubmitInfo* toCount,
723                         size_t* count) {
724     (void)featureBits;
725     (void)rootType;
726     (void)toCount;
727     (void)count;
728     *count += sizeof(VkStructureType);
729     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
730         rootType = toCount->sType;
731     }
732     count_extension_struct(featureBits, rootType, toCount->pNext, count);
733     *count += sizeof(uint32_t);
734     if (toCount->waitSemaphoreCount) {
735         *count += toCount->waitSemaphoreCount * 8;
736     }
737     if (toCount) {
738         *count += toCount->waitSemaphoreCount * sizeof(const VkPipelineStageFlags);
739     }
740     *count += sizeof(uint32_t);
741     if (toCount->commandBufferCount) {
742         *count += toCount->commandBufferCount * 8;
743     }
744     *count += sizeof(uint32_t);
745     if (toCount->signalSemaphoreCount) {
746         *count += toCount->signalSemaphoreCount * 8;
747     }
748 }
749 
count_VkMappedMemoryRange(uint32_t featureBits,VkStructureType rootType,const VkMappedMemoryRange * toCount,size_t * count)750 void count_VkMappedMemoryRange(uint32_t featureBits, VkStructureType rootType,
751                                const VkMappedMemoryRange* toCount, size_t* count) {
752     (void)featureBits;
753     (void)rootType;
754     (void)toCount;
755     (void)count;
756     *count += sizeof(VkStructureType);
757     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
758         rootType = toCount->sType;
759     }
760     count_extension_struct(featureBits, rootType, toCount->pNext, count);
761     uint64_t cgen_var_0;
762     *count += 1 * 8;
763     *count += sizeof(VkDeviceSize);
764     *count += sizeof(VkDeviceSize);
765 }
766 
count_VkMemoryAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryAllocateInfo * toCount,size_t * count)767 void count_VkMemoryAllocateInfo(uint32_t featureBits, VkStructureType rootType,
768                                 const VkMemoryAllocateInfo* toCount, size_t* count) {
769     (void)featureBits;
770     (void)rootType;
771     (void)toCount;
772     (void)count;
773     *count += sizeof(VkStructureType);
774     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
775         rootType = toCount->sType;
776     }
777     count_extension_struct(featureBits, rootType, toCount->pNext, count);
778     *count += sizeof(VkDeviceSize);
779     *count += sizeof(uint32_t);
780 }
781 
count_VkMemoryRequirements(uint32_t featureBits,VkStructureType rootType,const VkMemoryRequirements * toCount,size_t * count)782 void count_VkMemoryRequirements(uint32_t featureBits, VkStructureType rootType,
783                                 const VkMemoryRequirements* toCount, size_t* count) {
784     (void)featureBits;
785     (void)rootType;
786     (void)toCount;
787     (void)count;
788     *count += sizeof(VkDeviceSize);
789     *count += sizeof(VkDeviceSize);
790     *count += sizeof(uint32_t);
791 }
792 
count_VkSparseMemoryBind(uint32_t featureBits,VkStructureType rootType,const VkSparseMemoryBind * toCount,size_t * count)793 void count_VkSparseMemoryBind(uint32_t featureBits, VkStructureType rootType,
794                               const VkSparseMemoryBind* toCount, size_t* count) {
795     (void)featureBits;
796     (void)rootType;
797     (void)toCount;
798     (void)count;
799     *count += sizeof(VkDeviceSize);
800     *count += sizeof(VkDeviceSize);
801     uint64_t cgen_var_0;
802     *count += 1 * 8;
803     *count += sizeof(VkDeviceSize);
804     *count += sizeof(VkSparseMemoryBindFlags);
805 }
806 
count_VkSparseBufferMemoryBindInfo(uint32_t featureBits,VkStructureType rootType,const VkSparseBufferMemoryBindInfo * toCount,size_t * count)807 void count_VkSparseBufferMemoryBindInfo(uint32_t featureBits, VkStructureType rootType,
808                                         const VkSparseBufferMemoryBindInfo* toCount,
809                                         size_t* count) {
810     (void)featureBits;
811     (void)rootType;
812     (void)toCount;
813     (void)count;
814     uint64_t cgen_var_0;
815     *count += 1 * 8;
816     *count += sizeof(uint32_t);
817     if (toCount) {
818         for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i) {
819             count_VkSparseMemoryBind(featureBits, rootType,
820                                      (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
821         }
822     }
823 }
824 
count_VkSparseImageOpaqueMemoryBindInfo(uint32_t featureBits,VkStructureType rootType,const VkSparseImageOpaqueMemoryBindInfo * toCount,size_t * count)825 void count_VkSparseImageOpaqueMemoryBindInfo(uint32_t featureBits, VkStructureType rootType,
826                                              const VkSparseImageOpaqueMemoryBindInfo* toCount,
827                                              size_t* count) {
828     (void)featureBits;
829     (void)rootType;
830     (void)toCount;
831     (void)count;
832     uint64_t cgen_var_0;
833     *count += 1 * 8;
834     *count += sizeof(uint32_t);
835     if (toCount) {
836         for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i) {
837             count_VkSparseMemoryBind(featureBits, rootType,
838                                      (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
839         }
840     }
841 }
842 
count_VkImageSubresource(uint32_t featureBits,VkStructureType rootType,const VkImageSubresource * toCount,size_t * count)843 void count_VkImageSubresource(uint32_t featureBits, VkStructureType rootType,
844                               const VkImageSubresource* toCount, size_t* count) {
845     (void)featureBits;
846     (void)rootType;
847     (void)toCount;
848     (void)count;
849     *count += sizeof(VkImageAspectFlags);
850     *count += sizeof(uint32_t);
851     *count += sizeof(uint32_t);
852 }
853 
count_VkSparseImageMemoryBind(uint32_t featureBits,VkStructureType rootType,const VkSparseImageMemoryBind * toCount,size_t * count)854 void count_VkSparseImageMemoryBind(uint32_t featureBits, VkStructureType rootType,
855                                    const VkSparseImageMemoryBind* toCount, size_t* count) {
856     (void)featureBits;
857     (void)rootType;
858     (void)toCount;
859     (void)count;
860     count_VkImageSubresource(featureBits, rootType, (VkImageSubresource*)(&toCount->subresource),
861                              count);
862     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->offset), count);
863     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
864     uint64_t cgen_var_0;
865     *count += 1 * 8;
866     *count += sizeof(VkDeviceSize);
867     *count += sizeof(VkSparseMemoryBindFlags);
868 }
869 
count_VkSparseImageMemoryBindInfo(uint32_t featureBits,VkStructureType rootType,const VkSparseImageMemoryBindInfo * toCount,size_t * count)870 void count_VkSparseImageMemoryBindInfo(uint32_t featureBits, VkStructureType rootType,
871                                        const VkSparseImageMemoryBindInfo* toCount, size_t* count) {
872     (void)featureBits;
873     (void)rootType;
874     (void)toCount;
875     (void)count;
876     uint64_t cgen_var_0;
877     *count += 1 * 8;
878     *count += sizeof(uint32_t);
879     if (toCount) {
880         for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i) {
881             count_VkSparseImageMemoryBind(featureBits, rootType,
882                                           (const VkSparseImageMemoryBind*)(toCount->pBinds + i),
883                                           count);
884         }
885     }
886 }
887 
count_VkBindSparseInfo(uint32_t featureBits,VkStructureType rootType,const VkBindSparseInfo * toCount,size_t * count)888 void count_VkBindSparseInfo(uint32_t featureBits, VkStructureType rootType,
889                             const VkBindSparseInfo* toCount, size_t* count) {
890     (void)featureBits;
891     (void)rootType;
892     (void)toCount;
893     (void)count;
894     *count += sizeof(VkStructureType);
895     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
896         rootType = toCount->sType;
897     }
898     count_extension_struct(featureBits, rootType, toCount->pNext, count);
899     *count += sizeof(uint32_t);
900     if (toCount->waitSemaphoreCount) {
901         *count += toCount->waitSemaphoreCount * 8;
902     }
903     *count += sizeof(uint32_t);
904     if (toCount) {
905         for (uint32_t i = 0; i < (uint32_t)toCount->bufferBindCount; ++i) {
906             count_VkSparseBufferMemoryBindInfo(
907                 featureBits, rootType,
908                 (const VkSparseBufferMemoryBindInfo*)(toCount->pBufferBinds + i), count);
909         }
910     }
911     *count += sizeof(uint32_t);
912     if (toCount) {
913         for (uint32_t i = 0; i < (uint32_t)toCount->imageOpaqueBindCount; ++i) {
914             count_VkSparseImageOpaqueMemoryBindInfo(
915                 featureBits, rootType,
916                 (const VkSparseImageOpaqueMemoryBindInfo*)(toCount->pImageOpaqueBinds + i), count);
917         }
918     }
919     *count += sizeof(uint32_t);
920     if (toCount) {
921         for (uint32_t i = 0; i < (uint32_t)toCount->imageBindCount; ++i) {
922             count_VkSparseImageMemoryBindInfo(
923                 featureBits, rootType,
924                 (const VkSparseImageMemoryBindInfo*)(toCount->pImageBinds + i), count);
925         }
926     }
927     *count += sizeof(uint32_t);
928     if (toCount->signalSemaphoreCount) {
929         *count += toCount->signalSemaphoreCount * 8;
930     }
931 }
932 
count_VkSparseImageFormatProperties(uint32_t featureBits,VkStructureType rootType,const VkSparseImageFormatProperties * toCount,size_t * count)933 void count_VkSparseImageFormatProperties(uint32_t featureBits, VkStructureType rootType,
934                                          const VkSparseImageFormatProperties* toCount,
935                                          size_t* count) {
936     (void)featureBits;
937     (void)rootType;
938     (void)toCount;
939     (void)count;
940     *count += sizeof(VkImageAspectFlags);
941     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageGranularity), count);
942     *count += sizeof(VkSparseImageFormatFlags);
943 }
944 
count_VkSparseImageMemoryRequirements(uint32_t featureBits,VkStructureType rootType,const VkSparseImageMemoryRequirements * toCount,size_t * count)945 void count_VkSparseImageMemoryRequirements(uint32_t featureBits, VkStructureType rootType,
946                                            const VkSparseImageMemoryRequirements* toCount,
947                                            size_t* count) {
948     (void)featureBits;
949     (void)rootType;
950     (void)toCount;
951     (void)count;
952     count_VkSparseImageFormatProperties(
953         featureBits, rootType, (VkSparseImageFormatProperties*)(&toCount->formatProperties), count);
954     *count += sizeof(uint32_t);
955     *count += sizeof(VkDeviceSize);
956     *count += sizeof(VkDeviceSize);
957     *count += sizeof(VkDeviceSize);
958 }
959 
count_VkFenceCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkFenceCreateInfo * toCount,size_t * count)960 void count_VkFenceCreateInfo(uint32_t featureBits, VkStructureType rootType,
961                              const VkFenceCreateInfo* toCount, size_t* count) {
962     (void)featureBits;
963     (void)rootType;
964     (void)toCount;
965     (void)count;
966     *count += sizeof(VkStructureType);
967     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
968         rootType = toCount->sType;
969     }
970     count_extension_struct(featureBits, rootType, toCount->pNext, count);
971     *count += sizeof(VkFenceCreateFlags);
972 }
973 
count_VkSemaphoreCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreCreateInfo * toCount,size_t * count)974 void count_VkSemaphoreCreateInfo(uint32_t featureBits, VkStructureType rootType,
975                                  const VkSemaphoreCreateInfo* toCount, size_t* count) {
976     (void)featureBits;
977     (void)rootType;
978     (void)toCount;
979     (void)count;
980     *count += sizeof(VkStructureType);
981     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
982         rootType = toCount->sType;
983     }
984     count_extension_struct(featureBits, rootType, toCount->pNext, count);
985     *count += sizeof(VkSemaphoreCreateFlags);
986 }
987 
count_VkEventCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkEventCreateInfo * toCount,size_t * count)988 void count_VkEventCreateInfo(uint32_t featureBits, VkStructureType rootType,
989                              const VkEventCreateInfo* toCount, size_t* count) {
990     (void)featureBits;
991     (void)rootType;
992     (void)toCount;
993     (void)count;
994     *count += sizeof(VkStructureType);
995     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
996         rootType = toCount->sType;
997     }
998     count_extension_struct(featureBits, rootType, toCount->pNext, count);
999     *count += sizeof(VkEventCreateFlags);
1000 }
1001 
count_VkQueryPoolCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkQueryPoolCreateInfo * toCount,size_t * count)1002 void count_VkQueryPoolCreateInfo(uint32_t featureBits, VkStructureType rootType,
1003                                  const VkQueryPoolCreateInfo* toCount, size_t* count) {
1004     (void)featureBits;
1005     (void)rootType;
1006     (void)toCount;
1007     (void)count;
1008     *count += sizeof(VkStructureType);
1009     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1010         rootType = toCount->sType;
1011     }
1012     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1013     *count += sizeof(VkQueryPoolCreateFlags);
1014     *count += sizeof(VkQueryType);
1015     *count += sizeof(uint32_t);
1016     *count += sizeof(VkQueryPipelineStatisticFlags);
1017 }
1018 
count_VkBufferCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkBufferCreateInfo * toCount,size_t * count)1019 void count_VkBufferCreateInfo(uint32_t featureBits, VkStructureType rootType,
1020                               const VkBufferCreateInfo* toCount, size_t* count) {
1021     (void)featureBits;
1022     (void)rootType;
1023     (void)toCount;
1024     (void)count;
1025     *count += sizeof(VkStructureType);
1026     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1027         rootType = toCount->sType;
1028     }
1029     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1030     *count += sizeof(VkBufferCreateFlags);
1031     *count += sizeof(VkDeviceSize);
1032     *count += sizeof(VkBufferUsageFlags);
1033     *count += sizeof(VkSharingMode);
1034     *count += sizeof(uint32_t);
1035     // WARNING PTR CHECK
1036     *count += 8;
1037     if (toCount->pQueueFamilyIndices) {
1038         if (toCount) {
1039             *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
1040         }
1041     }
1042 }
1043 
count_VkBufferViewCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkBufferViewCreateInfo * toCount,size_t * count)1044 void count_VkBufferViewCreateInfo(uint32_t featureBits, VkStructureType rootType,
1045                                   const VkBufferViewCreateInfo* toCount, size_t* count) {
1046     (void)featureBits;
1047     (void)rootType;
1048     (void)toCount;
1049     (void)count;
1050     *count += sizeof(VkStructureType);
1051     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1052         rootType = toCount->sType;
1053     }
1054     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1055     *count += sizeof(VkBufferViewCreateFlags);
1056     uint64_t cgen_var_0;
1057     *count += 1 * 8;
1058     *count += sizeof(VkFormat);
1059     *count += sizeof(VkDeviceSize);
1060     *count += sizeof(VkDeviceSize);
1061 }
1062 
count_VkImageCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkImageCreateInfo * toCount,size_t * count)1063 void count_VkImageCreateInfo(uint32_t featureBits, VkStructureType rootType,
1064                              const VkImageCreateInfo* toCount, size_t* count) {
1065     (void)featureBits;
1066     (void)rootType;
1067     (void)toCount;
1068     (void)count;
1069     *count += sizeof(VkStructureType);
1070     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1071         rootType = toCount->sType;
1072     }
1073     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1074     *count += sizeof(VkImageCreateFlags);
1075     *count += sizeof(VkImageType);
1076     *count += sizeof(VkFormat);
1077     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
1078     *count += sizeof(uint32_t);
1079     *count += sizeof(uint32_t);
1080     *count += sizeof(VkSampleCountFlagBits);
1081     *count += sizeof(VkImageTiling);
1082     *count += sizeof(VkImageUsageFlags);
1083     *count += sizeof(VkSharingMode);
1084     *count += sizeof(uint32_t);
1085     // WARNING PTR CHECK
1086     *count += 8;
1087     if (toCount->pQueueFamilyIndices) {
1088         if (toCount) {
1089             *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
1090         }
1091     }
1092     *count += sizeof(VkImageLayout);
1093 }
1094 
count_VkSubresourceLayout(uint32_t featureBits,VkStructureType rootType,const VkSubresourceLayout * toCount,size_t * count)1095 void count_VkSubresourceLayout(uint32_t featureBits, VkStructureType rootType,
1096                                const VkSubresourceLayout* toCount, size_t* count) {
1097     (void)featureBits;
1098     (void)rootType;
1099     (void)toCount;
1100     (void)count;
1101     *count += sizeof(VkDeviceSize);
1102     *count += sizeof(VkDeviceSize);
1103     *count += sizeof(VkDeviceSize);
1104     *count += sizeof(VkDeviceSize);
1105     *count += sizeof(VkDeviceSize);
1106 }
1107 
count_VkComponentMapping(uint32_t featureBits,VkStructureType rootType,const VkComponentMapping * toCount,size_t * count)1108 void count_VkComponentMapping(uint32_t featureBits, VkStructureType rootType,
1109                               const VkComponentMapping* toCount, size_t* count) {
1110     (void)featureBits;
1111     (void)rootType;
1112     (void)toCount;
1113     (void)count;
1114     *count += sizeof(VkComponentSwizzle);
1115     *count += sizeof(VkComponentSwizzle);
1116     *count += sizeof(VkComponentSwizzle);
1117     *count += sizeof(VkComponentSwizzle);
1118 }
1119 
count_VkImageViewCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkImageViewCreateInfo * toCount,size_t * count)1120 void count_VkImageViewCreateInfo(uint32_t featureBits, VkStructureType rootType,
1121                                  const VkImageViewCreateInfo* toCount, size_t* count) {
1122     (void)featureBits;
1123     (void)rootType;
1124     (void)toCount;
1125     (void)count;
1126     *count += sizeof(VkStructureType);
1127     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1128         rootType = toCount->sType;
1129     }
1130     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1131     *count += sizeof(VkImageViewCreateFlags);
1132     uint64_t cgen_var_0;
1133     *count += 1 * 8;
1134     *count += sizeof(VkImageViewType);
1135     *count += sizeof(VkFormat);
1136     count_VkComponentMapping(featureBits, rootType, (VkComponentMapping*)(&toCount->components),
1137                              count);
1138     count_VkImageSubresourceRange(featureBits, rootType,
1139                                   (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
1140 }
1141 
count_VkShaderModuleCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkShaderModuleCreateInfo * toCount,size_t * count)1142 void count_VkShaderModuleCreateInfo(uint32_t featureBits, VkStructureType rootType,
1143                                     const VkShaderModuleCreateInfo* toCount, size_t* count) {
1144     (void)featureBits;
1145     (void)rootType;
1146     (void)toCount;
1147     (void)count;
1148     *count += sizeof(VkStructureType);
1149     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1150         rootType = toCount->sType;
1151     }
1152     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1153     *count += sizeof(VkShaderModuleCreateFlags);
1154     *count += 8;
1155     if (toCount) {
1156         *count += (toCount->codeSize / 4) * sizeof(const uint32_t);
1157     }
1158 }
1159 
count_VkPipelineCacheCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineCacheCreateInfo * toCount,size_t * count)1160 void count_VkPipelineCacheCreateInfo(uint32_t featureBits, VkStructureType rootType,
1161                                      const VkPipelineCacheCreateInfo* toCount, size_t* count) {
1162     (void)featureBits;
1163     (void)rootType;
1164     (void)toCount;
1165     (void)count;
1166     *count += sizeof(VkStructureType);
1167     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1168         rootType = toCount->sType;
1169     }
1170     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1171     *count += sizeof(VkPipelineCacheCreateFlags);
1172     *count += 8;
1173     if (toCount) {
1174         *count += toCount->initialDataSize * sizeof(const uint8_t);
1175     }
1176 }
1177 
count_VkSpecializationMapEntry(uint32_t featureBits,VkStructureType rootType,const VkSpecializationMapEntry * toCount,size_t * count)1178 void count_VkSpecializationMapEntry(uint32_t featureBits, VkStructureType rootType,
1179                                     const VkSpecializationMapEntry* toCount, size_t* count) {
1180     (void)featureBits;
1181     (void)rootType;
1182     (void)toCount;
1183     (void)count;
1184     *count += sizeof(uint32_t);
1185     *count += sizeof(uint32_t);
1186     *count += 8;
1187 }
1188 
count_VkSpecializationInfo(uint32_t featureBits,VkStructureType rootType,const VkSpecializationInfo * toCount,size_t * count)1189 void count_VkSpecializationInfo(uint32_t featureBits, VkStructureType rootType,
1190                                 const VkSpecializationInfo* toCount, size_t* count) {
1191     (void)featureBits;
1192     (void)rootType;
1193     (void)toCount;
1194     (void)count;
1195     *count += sizeof(uint32_t);
1196     if (toCount) {
1197         for (uint32_t i = 0; i < (uint32_t)toCount->mapEntryCount; ++i) {
1198             count_VkSpecializationMapEntry(
1199                 featureBits, rootType, (const VkSpecializationMapEntry*)(toCount->pMapEntries + i),
1200                 count);
1201         }
1202     }
1203     *count += 8;
1204     if (toCount) {
1205         *count += toCount->dataSize * sizeof(const uint8_t);
1206     }
1207 }
1208 
count_VkPipelineShaderStageCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineShaderStageCreateInfo * toCount,size_t * count)1209 void count_VkPipelineShaderStageCreateInfo(uint32_t featureBits, VkStructureType rootType,
1210                                            const VkPipelineShaderStageCreateInfo* toCount,
1211                                            size_t* count) {
1212     (void)featureBits;
1213     (void)rootType;
1214     (void)toCount;
1215     (void)count;
1216     *count += sizeof(VkStructureType);
1217     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1218         rootType = toCount->sType;
1219     }
1220     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1221     *count += sizeof(VkPipelineShaderStageCreateFlags);
1222     *count += sizeof(VkShaderStageFlagBits);
1223     uint64_t cgen_var_0;
1224     *count += 1 * 8;
1225     *count += sizeof(uint32_t) + (toCount->pName ? strlen(toCount->pName) : 0);
1226     // WARNING PTR CHECK
1227     *count += 8;
1228     if (toCount->pSpecializationInfo) {
1229         count_VkSpecializationInfo(featureBits, rootType,
1230                                    (const VkSpecializationInfo*)(toCount->pSpecializationInfo),
1231                                    count);
1232     }
1233 }
1234 
count_VkComputePipelineCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkComputePipelineCreateInfo * toCount,size_t * count)1235 void count_VkComputePipelineCreateInfo(uint32_t featureBits, VkStructureType rootType,
1236                                        const VkComputePipelineCreateInfo* toCount, size_t* count) {
1237     (void)featureBits;
1238     (void)rootType;
1239     (void)toCount;
1240     (void)count;
1241     *count += sizeof(VkStructureType);
1242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1243         rootType = toCount->sType;
1244     }
1245     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1246     *count += sizeof(VkPipelineCreateFlags);
1247     count_VkPipelineShaderStageCreateInfo(
1248         featureBits, rootType, (VkPipelineShaderStageCreateInfo*)(&toCount->stage), count);
1249     uint64_t cgen_var_0;
1250     *count += 1 * 8;
1251     uint64_t cgen_var_1;
1252     *count += 1 * 8;
1253     *count += sizeof(int32_t);
1254 }
1255 
count_VkVertexInputBindingDescription(uint32_t featureBits,VkStructureType rootType,const VkVertexInputBindingDescription * toCount,size_t * count)1256 void count_VkVertexInputBindingDescription(uint32_t featureBits, VkStructureType rootType,
1257                                            const VkVertexInputBindingDescription* toCount,
1258                                            size_t* count) {
1259     (void)featureBits;
1260     (void)rootType;
1261     (void)toCount;
1262     (void)count;
1263     *count += sizeof(uint32_t);
1264     *count += sizeof(uint32_t);
1265     *count += sizeof(VkVertexInputRate);
1266 }
1267 
count_VkVertexInputAttributeDescription(uint32_t featureBits,VkStructureType rootType,const VkVertexInputAttributeDescription * toCount,size_t * count)1268 void count_VkVertexInputAttributeDescription(uint32_t featureBits, VkStructureType rootType,
1269                                              const VkVertexInputAttributeDescription* toCount,
1270                                              size_t* count) {
1271     (void)featureBits;
1272     (void)rootType;
1273     (void)toCount;
1274     (void)count;
1275     *count += sizeof(uint32_t);
1276     *count += sizeof(uint32_t);
1277     *count += sizeof(VkFormat);
1278     *count += sizeof(uint32_t);
1279 }
1280 
count_VkPipelineVertexInputStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineVertexInputStateCreateInfo * toCount,size_t * count)1281 void count_VkPipelineVertexInputStateCreateInfo(uint32_t featureBits, VkStructureType rootType,
1282                                                 const VkPipelineVertexInputStateCreateInfo* toCount,
1283                                                 size_t* count) {
1284     (void)featureBits;
1285     (void)rootType;
1286     (void)toCount;
1287     (void)count;
1288     *count += sizeof(VkStructureType);
1289     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1290         rootType = toCount->sType;
1291     }
1292     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1293     *count += sizeof(VkPipelineVertexInputStateCreateFlags);
1294     *count += sizeof(uint32_t);
1295     if (toCount) {
1296         for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDescriptionCount; ++i) {
1297             count_VkVertexInputBindingDescription(
1298                 featureBits, rootType,
1299                 (const VkVertexInputBindingDescription*)(toCount->pVertexBindingDescriptions + i),
1300                 count);
1301         }
1302     }
1303     *count += sizeof(uint32_t);
1304     if (toCount) {
1305         for (uint32_t i = 0; i < (uint32_t)toCount->vertexAttributeDescriptionCount; ++i) {
1306             count_VkVertexInputAttributeDescription(
1307                 featureBits, rootType,
1308                 (const VkVertexInputAttributeDescription*)(toCount->pVertexAttributeDescriptions +
1309                                                            i),
1310                 count);
1311         }
1312     }
1313 }
1314 
count_VkPipelineInputAssemblyStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineInputAssemblyStateCreateInfo * toCount,size_t * count)1315 void count_VkPipelineInputAssemblyStateCreateInfo(
1316     uint32_t featureBits, VkStructureType rootType,
1317     const VkPipelineInputAssemblyStateCreateInfo* toCount, size_t* count) {
1318     (void)featureBits;
1319     (void)rootType;
1320     (void)toCount;
1321     (void)count;
1322     *count += sizeof(VkStructureType);
1323     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1324         rootType = toCount->sType;
1325     }
1326     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1327     *count += sizeof(VkPipelineInputAssemblyStateCreateFlags);
1328     *count += sizeof(VkPrimitiveTopology);
1329     *count += sizeof(VkBool32);
1330 }
1331 
count_VkPipelineTessellationStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineTessellationStateCreateInfo * toCount,size_t * count)1332 void count_VkPipelineTessellationStateCreateInfo(
1333     uint32_t featureBits, VkStructureType rootType,
1334     const VkPipelineTessellationStateCreateInfo* toCount, size_t* count) {
1335     (void)featureBits;
1336     (void)rootType;
1337     (void)toCount;
1338     (void)count;
1339     *count += sizeof(VkStructureType);
1340     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1341         rootType = toCount->sType;
1342     }
1343     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1344     *count += sizeof(VkPipelineTessellationStateCreateFlags);
1345     *count += sizeof(uint32_t);
1346 }
1347 
count_VkViewport(uint32_t featureBits,VkStructureType rootType,const VkViewport * toCount,size_t * count)1348 void count_VkViewport(uint32_t featureBits, VkStructureType rootType, const VkViewport* toCount,
1349                       size_t* count) {
1350     (void)featureBits;
1351     (void)rootType;
1352     (void)toCount;
1353     (void)count;
1354     *count += sizeof(float);
1355     *count += sizeof(float);
1356     *count += sizeof(float);
1357     *count += sizeof(float);
1358     *count += sizeof(float);
1359     *count += sizeof(float);
1360 }
1361 
count_VkPipelineViewportStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineViewportStateCreateInfo * toCount,size_t * count)1362 void count_VkPipelineViewportStateCreateInfo(uint32_t featureBits, VkStructureType rootType,
1363                                              const VkPipelineViewportStateCreateInfo* toCount,
1364                                              size_t* count) {
1365     (void)featureBits;
1366     (void)rootType;
1367     (void)toCount;
1368     (void)count;
1369     *count += sizeof(VkStructureType);
1370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1371         rootType = toCount->sType;
1372     }
1373     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1374     *count += sizeof(VkPipelineViewportStateCreateFlags);
1375     *count += sizeof(uint32_t);
1376     // WARNING PTR CHECK
1377     *count += 8;
1378     if (toCount->pViewports) {
1379         if (toCount) {
1380             for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i) {
1381                 count_VkViewport(featureBits, rootType,
1382                                  (const VkViewport*)(toCount->pViewports + i), count);
1383             }
1384         }
1385     }
1386     *count += sizeof(uint32_t);
1387     // WARNING PTR CHECK
1388     *count += 8;
1389     if (toCount->pScissors) {
1390         if (toCount) {
1391             for (uint32_t i = 0; i < (uint32_t)toCount->scissorCount; ++i) {
1392                 count_VkRect2D(featureBits, rootType, (const VkRect2D*)(toCount->pScissors + i),
1393                                count);
1394             }
1395         }
1396     }
1397 }
1398 
count_VkPipelineRasterizationStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationStateCreateInfo * toCount,size_t * count)1399 void count_VkPipelineRasterizationStateCreateInfo(
1400     uint32_t featureBits, VkStructureType rootType,
1401     const VkPipelineRasterizationStateCreateInfo* toCount, size_t* count) {
1402     (void)featureBits;
1403     (void)rootType;
1404     (void)toCount;
1405     (void)count;
1406     *count += sizeof(VkStructureType);
1407     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1408         rootType = toCount->sType;
1409     }
1410     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1411     *count += sizeof(VkPipelineRasterizationStateCreateFlags);
1412     *count += sizeof(VkBool32);
1413     *count += sizeof(VkBool32);
1414     *count += sizeof(VkPolygonMode);
1415     *count += sizeof(VkCullModeFlags);
1416     *count += sizeof(VkFrontFace);
1417     *count += sizeof(VkBool32);
1418     *count += sizeof(float);
1419     *count += sizeof(float);
1420     *count += sizeof(float);
1421     *count += sizeof(float);
1422 }
1423 
count_VkPipelineMultisampleStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineMultisampleStateCreateInfo * toCount,size_t * count)1424 void count_VkPipelineMultisampleStateCreateInfo(uint32_t featureBits, VkStructureType rootType,
1425                                                 const VkPipelineMultisampleStateCreateInfo* toCount,
1426                                                 size_t* count) {
1427     (void)featureBits;
1428     (void)rootType;
1429     (void)toCount;
1430     (void)count;
1431     *count += sizeof(VkStructureType);
1432     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1433         rootType = toCount->sType;
1434     }
1435     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1436     *count += sizeof(VkPipelineMultisampleStateCreateFlags);
1437     *count += sizeof(VkSampleCountFlagBits);
1438     *count += sizeof(VkBool32);
1439     *count += sizeof(float);
1440     // WARNING PTR CHECK
1441     *count += 8;
1442     if (toCount->pSampleMask) {
1443         if (toCount) {
1444             *count += (((toCount->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask);
1445         }
1446     }
1447     *count += sizeof(VkBool32);
1448     *count += sizeof(VkBool32);
1449 }
1450 
count_VkStencilOpState(uint32_t featureBits,VkStructureType rootType,const VkStencilOpState * toCount,size_t * count)1451 void count_VkStencilOpState(uint32_t featureBits, VkStructureType rootType,
1452                             const VkStencilOpState* toCount, size_t* count) {
1453     (void)featureBits;
1454     (void)rootType;
1455     (void)toCount;
1456     (void)count;
1457     *count += sizeof(VkStencilOp);
1458     *count += sizeof(VkStencilOp);
1459     *count += sizeof(VkStencilOp);
1460     *count += sizeof(VkCompareOp);
1461     *count += sizeof(uint32_t);
1462     *count += sizeof(uint32_t);
1463     *count += sizeof(uint32_t);
1464 }
1465 
count_VkPipelineDepthStencilStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineDepthStencilStateCreateInfo * toCount,size_t * count)1466 void count_VkPipelineDepthStencilStateCreateInfo(
1467     uint32_t featureBits, VkStructureType rootType,
1468     const VkPipelineDepthStencilStateCreateInfo* toCount, size_t* count) {
1469     (void)featureBits;
1470     (void)rootType;
1471     (void)toCount;
1472     (void)count;
1473     *count += sizeof(VkStructureType);
1474     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1475         rootType = toCount->sType;
1476     }
1477     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1478     *count += sizeof(VkPipelineDepthStencilStateCreateFlags);
1479     *count += sizeof(VkBool32);
1480     *count += sizeof(VkBool32);
1481     *count += sizeof(VkCompareOp);
1482     *count += sizeof(VkBool32);
1483     *count += sizeof(VkBool32);
1484     count_VkStencilOpState(featureBits, rootType, (VkStencilOpState*)(&toCount->front), count);
1485     count_VkStencilOpState(featureBits, rootType, (VkStencilOpState*)(&toCount->back), count);
1486     *count += sizeof(float);
1487     *count += sizeof(float);
1488 }
1489 
count_VkPipelineColorBlendAttachmentState(uint32_t featureBits,VkStructureType rootType,const VkPipelineColorBlendAttachmentState * toCount,size_t * count)1490 void count_VkPipelineColorBlendAttachmentState(uint32_t featureBits, VkStructureType rootType,
1491                                                const VkPipelineColorBlendAttachmentState* toCount,
1492                                                size_t* count) {
1493     (void)featureBits;
1494     (void)rootType;
1495     (void)toCount;
1496     (void)count;
1497     *count += sizeof(VkBool32);
1498     *count += sizeof(VkBlendFactor);
1499     *count += sizeof(VkBlendFactor);
1500     *count += sizeof(VkBlendOp);
1501     *count += sizeof(VkBlendFactor);
1502     *count += sizeof(VkBlendFactor);
1503     *count += sizeof(VkBlendOp);
1504     *count += sizeof(VkColorComponentFlags);
1505 }
1506 
count_VkPipelineColorBlendStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineColorBlendStateCreateInfo * toCount,size_t * count)1507 void count_VkPipelineColorBlendStateCreateInfo(uint32_t featureBits, VkStructureType rootType,
1508                                                const VkPipelineColorBlendStateCreateInfo* toCount,
1509                                                size_t* count) {
1510     (void)featureBits;
1511     (void)rootType;
1512     (void)toCount;
1513     (void)count;
1514     *count += sizeof(VkStructureType);
1515     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1516         rootType = toCount->sType;
1517     }
1518     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1519     *count += sizeof(VkPipelineColorBlendStateCreateFlags);
1520     *count += sizeof(VkBool32);
1521     *count += sizeof(VkLogicOp);
1522     *count += sizeof(uint32_t);
1523     if (toCount) {
1524         for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i) {
1525             count_VkPipelineColorBlendAttachmentState(
1526                 featureBits, rootType,
1527                 (const VkPipelineColorBlendAttachmentState*)(toCount->pAttachments + i), count);
1528         }
1529     }
1530     *count += 4 * sizeof(float);
1531 }
1532 
count_VkPipelineDynamicStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineDynamicStateCreateInfo * toCount,size_t * count)1533 void count_VkPipelineDynamicStateCreateInfo(uint32_t featureBits, VkStructureType rootType,
1534                                             const VkPipelineDynamicStateCreateInfo* toCount,
1535                                             size_t* count) {
1536     (void)featureBits;
1537     (void)rootType;
1538     (void)toCount;
1539     (void)count;
1540     *count += sizeof(VkStructureType);
1541     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1542         rootType = toCount->sType;
1543     }
1544     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1545     *count += sizeof(VkPipelineDynamicStateCreateFlags);
1546     *count += sizeof(uint32_t);
1547     if (toCount) {
1548         *count += toCount->dynamicStateCount * sizeof(const VkDynamicState);
1549     }
1550 }
1551 
count_VkGraphicsPipelineCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkGraphicsPipelineCreateInfo * toCount,size_t * count)1552 void count_VkGraphicsPipelineCreateInfo(uint32_t featureBits, VkStructureType rootType,
1553                                         const VkGraphicsPipelineCreateInfo* toCount,
1554                                         size_t* count) {
1555     (void)featureBits;
1556     (void)rootType;
1557     (void)toCount;
1558     (void)count;
1559     uint32_t hasRasterization = 1;
1560     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
1561         hasRasterization =
1562             ((((0 == toCount->pRasterizationState))
1563                   ? (0)
1564                   : (!((*(toCount->pRasterizationState)).rasterizerDiscardEnable))) ||
1565              (((0 == toCount->pDynamicState))
1566                   ? (0)
1567                   : (arrayany((*(toCount->pDynamicState)).pDynamicStates, 0,
1568                               (*(toCount->pDynamicState)).dynamicStateCount, [](VkDynamicState s) {
1569                                   return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
1570                               }))));
1571         *count += 4;
1572     }
1573     uint32_t hasTessellation = 1;
1574     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
1575         hasTessellation = arrayany(
1576             toCount->pStages, 0, toCount->stageCount, [](VkPipelineShaderStageCreateInfo s) {
1577                 return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ||
1578                         (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT));
1579             });
1580         *count += 4;
1581     }
1582     *count += sizeof(VkStructureType);
1583     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1584         rootType = toCount->sType;
1585     }
1586     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1587     *count += sizeof(VkPipelineCreateFlags);
1588     *count += sizeof(uint32_t);
1589     if (toCount) {
1590         for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i) {
1591             count_VkPipelineShaderStageCreateInfo(
1592                 featureBits, rootType,
1593                 (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
1594         }
1595     }
1596     // WARNING PTR CHECK
1597     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
1598         *count += 8;
1599     }
1600     if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1601          toCount->pVertexInputState)) {
1602         count_VkPipelineVertexInputStateCreateInfo(
1603             featureBits, rootType,
1604             (const VkPipelineVertexInputStateCreateInfo*)(toCount->pVertexInputState), count);
1605     }
1606     // WARNING PTR CHECK
1607     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
1608         *count += 8;
1609     }
1610     if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1611          toCount->pInputAssemblyState)) {
1612         count_VkPipelineInputAssemblyStateCreateInfo(
1613             featureBits, rootType,
1614             (const VkPipelineInputAssemblyStateCreateInfo*)(toCount->pInputAssemblyState), count);
1615     }
1616     // WARNING PTR CHECK
1617     *count += 8;
1618     if (toCount->pTessellationState) {
1619         if (hasTessellation) {
1620             count_VkPipelineTessellationStateCreateInfo(
1621                 featureBits, rootType,
1622                 (const VkPipelineTessellationStateCreateInfo*)(toCount->pTessellationState), count);
1623         }
1624     }
1625     // WARNING PTR CHECK
1626     *count += 8;
1627     if (toCount->pViewportState) {
1628         if (hasRasterization) {
1629             count_VkPipelineViewportStateCreateInfo(
1630                 featureBits, rootType,
1631                 (const VkPipelineViewportStateCreateInfo*)(toCount->pViewportState), count);
1632         }
1633     }
1634     // WARNING PTR CHECK
1635     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
1636         *count += 8;
1637     }
1638     if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1639          toCount->pRasterizationState)) {
1640         count_VkPipelineRasterizationStateCreateInfo(
1641             featureBits, rootType,
1642             (const VkPipelineRasterizationStateCreateInfo*)(toCount->pRasterizationState), count);
1643     }
1644     // WARNING PTR CHECK
1645     *count += 8;
1646     if (toCount->pMultisampleState) {
1647         if (hasRasterization) {
1648             count_VkPipelineMultisampleStateCreateInfo(
1649                 featureBits, rootType,
1650                 (const VkPipelineMultisampleStateCreateInfo*)(toCount->pMultisampleState), count);
1651         }
1652     }
1653     // WARNING PTR CHECK
1654     *count += 8;
1655     if (toCount->pDepthStencilState) {
1656         if (hasRasterization) {
1657             count_VkPipelineDepthStencilStateCreateInfo(
1658                 featureBits, rootType,
1659                 (const VkPipelineDepthStencilStateCreateInfo*)(toCount->pDepthStencilState), count);
1660         }
1661     }
1662     // WARNING PTR CHECK
1663     *count += 8;
1664     if (toCount->pColorBlendState) {
1665         if (hasRasterization) {
1666             count_VkPipelineColorBlendStateCreateInfo(
1667                 featureBits, rootType,
1668                 (const VkPipelineColorBlendStateCreateInfo*)(toCount->pColorBlendState), count);
1669         }
1670     }
1671     // WARNING PTR CHECK
1672     *count += 8;
1673     if (toCount->pDynamicState) {
1674         count_VkPipelineDynamicStateCreateInfo(
1675             featureBits, rootType,
1676             (const VkPipelineDynamicStateCreateInfo*)(toCount->pDynamicState), count);
1677     }
1678     uint64_t cgen_var_0;
1679     *count += 1 * 8;
1680     uint64_t cgen_var_1;
1681     *count += 1 * 8;
1682     *count += sizeof(uint32_t);
1683     uint64_t cgen_var_2;
1684     *count += 1 * 8;
1685     *count += sizeof(int32_t);
1686 }
1687 
count_VkPushConstantRange(uint32_t featureBits,VkStructureType rootType,const VkPushConstantRange * toCount,size_t * count)1688 void count_VkPushConstantRange(uint32_t featureBits, VkStructureType rootType,
1689                                const VkPushConstantRange* toCount, size_t* count) {
1690     (void)featureBits;
1691     (void)rootType;
1692     (void)toCount;
1693     (void)count;
1694     *count += sizeof(VkShaderStageFlags);
1695     *count += sizeof(uint32_t);
1696     *count += sizeof(uint32_t);
1697 }
1698 
count_VkPipelineLayoutCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineLayoutCreateInfo * toCount,size_t * count)1699 void count_VkPipelineLayoutCreateInfo(uint32_t featureBits, VkStructureType rootType,
1700                                       const VkPipelineLayoutCreateInfo* toCount, size_t* count) {
1701     (void)featureBits;
1702     (void)rootType;
1703     (void)toCount;
1704     (void)count;
1705     *count += sizeof(VkStructureType);
1706     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1707         rootType = toCount->sType;
1708     }
1709     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1710     *count += sizeof(VkPipelineLayoutCreateFlags);
1711     *count += sizeof(uint32_t);
1712     if (toCount->setLayoutCount) {
1713         *count += toCount->setLayoutCount * 8;
1714     }
1715     *count += sizeof(uint32_t);
1716     if (toCount) {
1717         for (uint32_t i = 0; i < (uint32_t)toCount->pushConstantRangeCount; ++i) {
1718             count_VkPushConstantRange(
1719                 featureBits, rootType,
1720                 (const VkPushConstantRange*)(toCount->pPushConstantRanges + i), count);
1721         }
1722     }
1723 }
1724 
count_VkSamplerCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkSamplerCreateInfo * toCount,size_t * count)1725 void count_VkSamplerCreateInfo(uint32_t featureBits, VkStructureType rootType,
1726                                const VkSamplerCreateInfo* toCount, size_t* count) {
1727     (void)featureBits;
1728     (void)rootType;
1729     (void)toCount;
1730     (void)count;
1731     *count += sizeof(VkStructureType);
1732     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1733         rootType = toCount->sType;
1734     }
1735     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1736     *count += sizeof(VkSamplerCreateFlags);
1737     *count += sizeof(VkFilter);
1738     *count += sizeof(VkFilter);
1739     *count += sizeof(VkSamplerMipmapMode);
1740     *count += sizeof(VkSamplerAddressMode);
1741     *count += sizeof(VkSamplerAddressMode);
1742     *count += sizeof(VkSamplerAddressMode);
1743     *count += sizeof(float);
1744     *count += sizeof(VkBool32);
1745     *count += sizeof(float);
1746     *count += sizeof(VkBool32);
1747     *count += sizeof(VkCompareOp);
1748     *count += sizeof(float);
1749     *count += sizeof(float);
1750     *count += sizeof(VkBorderColor);
1751     *count += sizeof(VkBool32);
1752 }
1753 
count_VkCopyDescriptorSet(uint32_t featureBits,VkStructureType rootType,const VkCopyDescriptorSet * toCount,size_t * count)1754 void count_VkCopyDescriptorSet(uint32_t featureBits, VkStructureType rootType,
1755                                const VkCopyDescriptorSet* toCount, size_t* count) {
1756     (void)featureBits;
1757     (void)rootType;
1758     (void)toCount;
1759     (void)count;
1760     *count += sizeof(VkStructureType);
1761     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1762         rootType = toCount->sType;
1763     }
1764     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1765     uint64_t cgen_var_0;
1766     *count += 1 * 8;
1767     *count += sizeof(uint32_t);
1768     *count += sizeof(uint32_t);
1769     uint64_t cgen_var_1;
1770     *count += 1 * 8;
1771     *count += sizeof(uint32_t);
1772     *count += sizeof(uint32_t);
1773     *count += sizeof(uint32_t);
1774 }
1775 
count_VkDescriptorBufferInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorBufferInfo * toCount,size_t * count)1776 void count_VkDescriptorBufferInfo(uint32_t featureBits, VkStructureType rootType,
1777                                   const VkDescriptorBufferInfo* toCount, size_t* count) {
1778     (void)featureBits;
1779     (void)rootType;
1780     (void)toCount;
1781     (void)count;
1782     uint64_t cgen_var_0;
1783     *count += 1 * 8;
1784     *count += sizeof(VkDeviceSize);
1785     *count += sizeof(VkDeviceSize);
1786 }
1787 
count_VkDescriptorImageInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorImageInfo * toCount,size_t * count)1788 void count_VkDescriptorImageInfo(uint32_t featureBits, VkStructureType rootType,
1789                                  const VkDescriptorImageInfo* toCount, size_t* count) {
1790     (void)featureBits;
1791     (void)rootType;
1792     (void)toCount;
1793     (void)count;
1794     uint64_t cgen_var_0;
1795     *count += 1 * 8;
1796     uint64_t cgen_var_1;
1797     *count += 1 * 8;
1798     *count += sizeof(VkImageLayout);
1799 }
1800 
count_VkDescriptorPoolSize(uint32_t featureBits,VkStructureType rootType,const VkDescriptorPoolSize * toCount,size_t * count)1801 void count_VkDescriptorPoolSize(uint32_t featureBits, VkStructureType rootType,
1802                                 const VkDescriptorPoolSize* toCount, size_t* count) {
1803     (void)featureBits;
1804     (void)rootType;
1805     (void)toCount;
1806     (void)count;
1807     *count += sizeof(VkDescriptorType);
1808     *count += sizeof(uint32_t);
1809 }
1810 
count_VkDescriptorPoolCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorPoolCreateInfo * toCount,size_t * count)1811 void count_VkDescriptorPoolCreateInfo(uint32_t featureBits, VkStructureType rootType,
1812                                       const VkDescriptorPoolCreateInfo* toCount, size_t* count) {
1813     (void)featureBits;
1814     (void)rootType;
1815     (void)toCount;
1816     (void)count;
1817     *count += sizeof(VkStructureType);
1818     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1819         rootType = toCount->sType;
1820     }
1821     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1822     *count += sizeof(VkDescriptorPoolCreateFlags);
1823     *count += sizeof(uint32_t);
1824     *count += sizeof(uint32_t);
1825     if (toCount) {
1826         for (uint32_t i = 0; i < (uint32_t)toCount->poolSizeCount; ++i) {
1827             count_VkDescriptorPoolSize(featureBits, rootType,
1828                                        (const VkDescriptorPoolSize*)(toCount->pPoolSizes + i),
1829                                        count);
1830         }
1831     }
1832 }
1833 
count_VkDescriptorSetAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetAllocateInfo * toCount,size_t * count)1834 void count_VkDescriptorSetAllocateInfo(uint32_t featureBits, VkStructureType rootType,
1835                                        const VkDescriptorSetAllocateInfo* toCount, size_t* count) {
1836     (void)featureBits;
1837     (void)rootType;
1838     (void)toCount;
1839     (void)count;
1840     *count += sizeof(VkStructureType);
1841     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1842         rootType = toCount->sType;
1843     }
1844     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1845     uint64_t cgen_var_0;
1846     *count += 1 * 8;
1847     *count += sizeof(uint32_t);
1848     if (toCount->descriptorSetCount) {
1849         *count += toCount->descriptorSetCount * 8;
1850     }
1851 }
1852 
count_VkDescriptorSetLayoutBinding(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetLayoutBinding * toCount,size_t * count)1853 void count_VkDescriptorSetLayoutBinding(uint32_t featureBits, VkStructureType rootType,
1854                                         const VkDescriptorSetLayoutBinding* toCount,
1855                                         size_t* count) {
1856     (void)featureBits;
1857     (void)rootType;
1858     (void)toCount;
1859     (void)count;
1860     *count += sizeof(uint32_t);
1861     *count += sizeof(VkDescriptorType);
1862     *count += sizeof(uint32_t);
1863     *count += sizeof(VkShaderStageFlags);
1864     // WARNING PTR CHECK
1865     *count += 8;
1866     if (toCount->pImmutableSamplers) {
1867         if (toCount->descriptorCount) {
1868             *count += toCount->descriptorCount * 8;
1869         }
1870     }
1871 }
1872 
count_VkDescriptorSetLayoutCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetLayoutCreateInfo * toCount,size_t * count)1873 void count_VkDescriptorSetLayoutCreateInfo(uint32_t featureBits, VkStructureType rootType,
1874                                            const VkDescriptorSetLayoutCreateInfo* toCount,
1875                                            size_t* count) {
1876     (void)featureBits;
1877     (void)rootType;
1878     (void)toCount;
1879     (void)count;
1880     *count += sizeof(VkStructureType);
1881     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1882         rootType = toCount->sType;
1883     }
1884     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1885     *count += sizeof(VkDescriptorSetLayoutCreateFlags);
1886     *count += sizeof(uint32_t);
1887     if (toCount) {
1888         for (uint32_t i = 0; i < (uint32_t)toCount->bindingCount; ++i) {
1889             count_VkDescriptorSetLayoutBinding(
1890                 featureBits, rootType,
1891                 (const VkDescriptorSetLayoutBinding*)(toCount->pBindings + i), count);
1892         }
1893     }
1894 }
1895 
count_VkWriteDescriptorSet(uint32_t featureBits,VkStructureType rootType,const VkWriteDescriptorSet * toCount,size_t * count)1896 void count_VkWriteDescriptorSet(uint32_t featureBits, VkStructureType rootType,
1897                                 const VkWriteDescriptorSet* toCount, size_t* count) {
1898     (void)featureBits;
1899     (void)rootType;
1900     (void)toCount;
1901     (void)count;
1902     *count += sizeof(VkStructureType);
1903     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1904         rootType = toCount->sType;
1905     }
1906     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1907     uint64_t cgen_var_0;
1908     *count += 1 * 8;
1909     *count += sizeof(uint32_t);
1910     *count += sizeof(uint32_t);
1911     *count += sizeof(uint32_t);
1912     *count += sizeof(VkDescriptorType);
1913     // WARNING PTR CHECK
1914     *count += 8;
1915     if (toCount->pImageInfo) {
1916         if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1917              ((VK_DESCRIPTOR_TYPE_SAMPLER == toCount->descriptorType) ||
1918               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == toCount->descriptorType) ||
1919               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == toCount->descriptorType) ||
1920               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == toCount->descriptorType) ||
1921               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == toCount->descriptorType)))) {
1922             if (toCount) {
1923                 for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i) {
1924                     count_VkDescriptorImageInfo(
1925                         featureBits, rootType,
1926                         (const VkDescriptorImageInfo*)(toCount->pImageInfo + i), count);
1927                 }
1928             }
1929         }
1930     }
1931     // WARNING PTR CHECK
1932     *count += 8;
1933     if (toCount->pBufferInfo) {
1934         if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1935              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == toCount->descriptorType) ||
1936               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == toCount->descriptorType) ||
1937               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == toCount->descriptorType) ||
1938               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == toCount->descriptorType)))) {
1939             if (toCount) {
1940                 for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i) {
1941                     count_VkDescriptorBufferInfo(
1942                         featureBits, rootType,
1943                         (const VkDescriptorBufferInfo*)(toCount->pBufferInfo + i), count);
1944                 }
1945             }
1946         }
1947     }
1948     // WARNING PTR CHECK
1949     *count += 8;
1950     if (toCount->pTexelBufferView) {
1951         if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
1952              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == toCount->descriptorType) ||
1953               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == toCount->descriptorType)))) {
1954             if (toCount->descriptorCount) {
1955                 *count += toCount->descriptorCount * 8;
1956             }
1957         }
1958     }
1959 }
1960 
count_VkAttachmentDescription(uint32_t featureBits,VkStructureType rootType,const VkAttachmentDescription * toCount,size_t * count)1961 void count_VkAttachmentDescription(uint32_t featureBits, VkStructureType rootType,
1962                                    const VkAttachmentDescription* toCount, size_t* count) {
1963     (void)featureBits;
1964     (void)rootType;
1965     (void)toCount;
1966     (void)count;
1967     *count += sizeof(VkAttachmentDescriptionFlags);
1968     *count += sizeof(VkFormat);
1969     *count += sizeof(VkSampleCountFlagBits);
1970     *count += sizeof(VkAttachmentLoadOp);
1971     *count += sizeof(VkAttachmentStoreOp);
1972     *count += sizeof(VkAttachmentLoadOp);
1973     *count += sizeof(VkAttachmentStoreOp);
1974     *count += sizeof(VkImageLayout);
1975     *count += sizeof(VkImageLayout);
1976 }
1977 
count_VkAttachmentReference(uint32_t featureBits,VkStructureType rootType,const VkAttachmentReference * toCount,size_t * count)1978 void count_VkAttachmentReference(uint32_t featureBits, VkStructureType rootType,
1979                                  const VkAttachmentReference* toCount, size_t* count) {
1980     (void)featureBits;
1981     (void)rootType;
1982     (void)toCount;
1983     (void)count;
1984     *count += sizeof(uint32_t);
1985     *count += sizeof(VkImageLayout);
1986 }
1987 
count_VkFramebufferCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkFramebufferCreateInfo * toCount,size_t * count)1988 void count_VkFramebufferCreateInfo(uint32_t featureBits, VkStructureType rootType,
1989                                    const VkFramebufferCreateInfo* toCount, size_t* count) {
1990     (void)featureBits;
1991     (void)rootType;
1992     (void)toCount;
1993     (void)count;
1994     *count += sizeof(VkStructureType);
1995     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1996         rootType = toCount->sType;
1997     }
1998     count_extension_struct(featureBits, rootType, toCount->pNext, count);
1999     *count += sizeof(VkFramebufferCreateFlags);
2000     uint64_t cgen_var_0;
2001     *count += 1 * 8;
2002     *count += sizeof(uint32_t);
2003     if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2004          (((toCount->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
2005         if (toCount->attachmentCount) {
2006             *count += toCount->attachmentCount * 8;
2007         }
2008     }
2009     *count += sizeof(uint32_t);
2010     *count += sizeof(uint32_t);
2011     *count += sizeof(uint32_t);
2012 }
2013 
count_VkSubpassDescription(uint32_t featureBits,VkStructureType rootType,const VkSubpassDescription * toCount,size_t * count)2014 void count_VkSubpassDescription(uint32_t featureBits, VkStructureType rootType,
2015                                 const VkSubpassDescription* toCount, size_t* count) {
2016     (void)featureBits;
2017     (void)rootType;
2018     (void)toCount;
2019     (void)count;
2020     *count += sizeof(VkSubpassDescriptionFlags);
2021     *count += sizeof(VkPipelineBindPoint);
2022     *count += sizeof(uint32_t);
2023     if (toCount) {
2024         for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i) {
2025             count_VkAttachmentReference(
2026                 featureBits, rootType,
2027                 (const VkAttachmentReference*)(toCount->pInputAttachments + i), count);
2028         }
2029     }
2030     *count += sizeof(uint32_t);
2031     if (toCount) {
2032         for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i) {
2033             count_VkAttachmentReference(
2034                 featureBits, rootType,
2035                 (const VkAttachmentReference*)(toCount->pColorAttachments + i), count);
2036         }
2037     }
2038     // WARNING PTR CHECK
2039     *count += 8;
2040     if (toCount->pResolveAttachments) {
2041         if (toCount) {
2042             for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i) {
2043                 count_VkAttachmentReference(
2044                     featureBits, rootType,
2045                     (const VkAttachmentReference*)(toCount->pResolveAttachments + i), count);
2046             }
2047         }
2048     }
2049     // WARNING PTR CHECK
2050     *count += 8;
2051     if (toCount->pDepthStencilAttachment) {
2052         count_VkAttachmentReference(
2053             featureBits, rootType, (const VkAttachmentReference*)(toCount->pDepthStencilAttachment),
2054             count);
2055     }
2056     *count += sizeof(uint32_t);
2057     if (toCount) {
2058         *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
2059     }
2060 }
2061 
count_VkSubpassDependency(uint32_t featureBits,VkStructureType rootType,const VkSubpassDependency * toCount,size_t * count)2062 void count_VkSubpassDependency(uint32_t featureBits, VkStructureType rootType,
2063                                const VkSubpassDependency* toCount, size_t* count) {
2064     (void)featureBits;
2065     (void)rootType;
2066     (void)toCount;
2067     (void)count;
2068     *count += sizeof(uint32_t);
2069     *count += sizeof(uint32_t);
2070     *count += sizeof(VkPipelineStageFlags);
2071     *count += sizeof(VkPipelineStageFlags);
2072     *count += sizeof(VkAccessFlags);
2073     *count += sizeof(VkAccessFlags);
2074     *count += sizeof(VkDependencyFlags);
2075 }
2076 
count_VkRenderPassCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderPassCreateInfo * toCount,size_t * count)2077 void count_VkRenderPassCreateInfo(uint32_t featureBits, VkStructureType rootType,
2078                                   const VkRenderPassCreateInfo* toCount, size_t* count) {
2079     (void)featureBits;
2080     (void)rootType;
2081     (void)toCount;
2082     (void)count;
2083     *count += sizeof(VkStructureType);
2084     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2085         rootType = toCount->sType;
2086     }
2087     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2088     *count += sizeof(VkRenderPassCreateFlags);
2089     *count += sizeof(uint32_t);
2090     if (toCount) {
2091         for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i) {
2092             count_VkAttachmentDescription(
2093                 featureBits, rootType, (const VkAttachmentDescription*)(toCount->pAttachments + i),
2094                 count);
2095         }
2096     }
2097     *count += sizeof(uint32_t);
2098     if (toCount) {
2099         for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i) {
2100             count_VkSubpassDescription(featureBits, rootType,
2101                                        (const VkSubpassDescription*)(toCount->pSubpasses + i),
2102                                        count);
2103         }
2104     }
2105     *count += sizeof(uint32_t);
2106     if (toCount) {
2107         for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i) {
2108             count_VkSubpassDependency(featureBits, rootType,
2109                                       (const VkSubpassDependency*)(toCount->pDependencies + i),
2110                                       count);
2111         }
2112     }
2113 }
2114 
count_VkCommandPoolCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandPoolCreateInfo * toCount,size_t * count)2115 void count_VkCommandPoolCreateInfo(uint32_t featureBits, VkStructureType rootType,
2116                                    const VkCommandPoolCreateInfo* toCount, size_t* count) {
2117     (void)featureBits;
2118     (void)rootType;
2119     (void)toCount;
2120     (void)count;
2121     *count += sizeof(VkStructureType);
2122     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2123         rootType = toCount->sType;
2124     }
2125     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2126     *count += sizeof(VkCommandPoolCreateFlags);
2127     *count += sizeof(uint32_t);
2128 }
2129 
count_VkCommandBufferAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandBufferAllocateInfo * toCount,size_t * count)2130 void count_VkCommandBufferAllocateInfo(uint32_t featureBits, VkStructureType rootType,
2131                                        const VkCommandBufferAllocateInfo* toCount, size_t* count) {
2132     (void)featureBits;
2133     (void)rootType;
2134     (void)toCount;
2135     (void)count;
2136     *count += sizeof(VkStructureType);
2137     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2138         rootType = toCount->sType;
2139     }
2140     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2141     uint64_t cgen_var_0;
2142     *count += 1 * 8;
2143     *count += sizeof(VkCommandBufferLevel);
2144     *count += sizeof(uint32_t);
2145 }
2146 
count_VkCommandBufferInheritanceInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandBufferInheritanceInfo * toCount,size_t * count)2147 void count_VkCommandBufferInheritanceInfo(uint32_t featureBits, VkStructureType rootType,
2148                                           const VkCommandBufferInheritanceInfo* toCount,
2149                                           size_t* count) {
2150     (void)featureBits;
2151     (void)rootType;
2152     (void)toCount;
2153     (void)count;
2154     *count += sizeof(VkStructureType);
2155     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2156         rootType = toCount->sType;
2157     }
2158     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2159     uint64_t cgen_var_0;
2160     *count += 1 * 8;
2161     *count += sizeof(uint32_t);
2162     uint64_t cgen_var_1;
2163     *count += 1 * 8;
2164     *count += sizeof(VkBool32);
2165     *count += sizeof(VkQueryControlFlags);
2166     *count += sizeof(VkQueryPipelineStatisticFlags);
2167 }
2168 
count_VkCommandBufferBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandBufferBeginInfo * toCount,size_t * count)2169 void count_VkCommandBufferBeginInfo(uint32_t featureBits, VkStructureType rootType,
2170                                     const VkCommandBufferBeginInfo* toCount, size_t* count) {
2171     (void)featureBits;
2172     (void)rootType;
2173     (void)toCount;
2174     (void)count;
2175     *count += sizeof(VkStructureType);
2176     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2177         rootType = toCount->sType;
2178     }
2179     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2180     *count += sizeof(VkCommandBufferUsageFlags);
2181     // WARNING PTR CHECK
2182     *count += 8;
2183     if (toCount->pInheritanceInfo) {
2184         count_VkCommandBufferInheritanceInfo(
2185             featureBits, rootType,
2186             (const VkCommandBufferInheritanceInfo*)(toCount->pInheritanceInfo), count);
2187     }
2188 }
2189 
count_VkBufferCopy(uint32_t featureBits,VkStructureType rootType,const VkBufferCopy * toCount,size_t * count)2190 void count_VkBufferCopy(uint32_t featureBits, VkStructureType rootType, const VkBufferCopy* toCount,
2191                         size_t* count) {
2192     (void)featureBits;
2193     (void)rootType;
2194     (void)toCount;
2195     (void)count;
2196     *count += sizeof(VkDeviceSize);
2197     *count += sizeof(VkDeviceSize);
2198     *count += sizeof(VkDeviceSize);
2199 }
2200 
count_VkImageSubresourceLayers(uint32_t featureBits,VkStructureType rootType,const VkImageSubresourceLayers * toCount,size_t * count)2201 void count_VkImageSubresourceLayers(uint32_t featureBits, VkStructureType rootType,
2202                                     const VkImageSubresourceLayers* toCount, size_t* count) {
2203     (void)featureBits;
2204     (void)rootType;
2205     (void)toCount;
2206     (void)count;
2207     *count += sizeof(VkImageAspectFlags);
2208     *count += sizeof(uint32_t);
2209     *count += sizeof(uint32_t);
2210     *count += sizeof(uint32_t);
2211 }
2212 
count_VkBufferImageCopy(uint32_t featureBits,VkStructureType rootType,const VkBufferImageCopy * toCount,size_t * count)2213 void count_VkBufferImageCopy(uint32_t featureBits, VkStructureType rootType,
2214                              const VkBufferImageCopy* toCount, size_t* count) {
2215     (void)featureBits;
2216     (void)rootType;
2217     (void)toCount;
2218     (void)count;
2219     *count += sizeof(VkDeviceSize);
2220     *count += sizeof(uint32_t);
2221     *count += sizeof(uint32_t);
2222     count_VkImageSubresourceLayers(featureBits, rootType,
2223                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
2224     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
2225     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
2226 }
2227 
count_VkClearColorValue(uint32_t featureBits,VkStructureType rootType,const VkClearColorValue * toCount,size_t * count)2228 void count_VkClearColorValue(uint32_t featureBits, VkStructureType rootType,
2229                              const VkClearColorValue* toCount, size_t* count) {
2230     (void)featureBits;
2231     (void)rootType;
2232     (void)toCount;
2233     (void)count;
2234     *count += 4 * sizeof(float);
2235 }
2236 
count_VkClearDepthStencilValue(uint32_t featureBits,VkStructureType rootType,const VkClearDepthStencilValue * toCount,size_t * count)2237 void count_VkClearDepthStencilValue(uint32_t featureBits, VkStructureType rootType,
2238                                     const VkClearDepthStencilValue* toCount, size_t* count) {
2239     (void)featureBits;
2240     (void)rootType;
2241     (void)toCount;
2242     (void)count;
2243     *count += sizeof(float);
2244     *count += sizeof(uint32_t);
2245 }
2246 
count_VkClearValue(uint32_t featureBits,VkStructureType rootType,const VkClearValue * toCount,size_t * count)2247 void count_VkClearValue(uint32_t featureBits, VkStructureType rootType, const VkClearValue* toCount,
2248                         size_t* count) {
2249     (void)featureBits;
2250     (void)rootType;
2251     (void)toCount;
2252     (void)count;
2253     count_VkClearColorValue(featureBits, rootType, (VkClearColorValue*)(&toCount->color), count);
2254 }
2255 
count_VkClearAttachment(uint32_t featureBits,VkStructureType rootType,const VkClearAttachment * toCount,size_t * count)2256 void count_VkClearAttachment(uint32_t featureBits, VkStructureType rootType,
2257                              const VkClearAttachment* toCount, size_t* count) {
2258     (void)featureBits;
2259     (void)rootType;
2260     (void)toCount;
2261     (void)count;
2262     *count += sizeof(VkImageAspectFlags);
2263     *count += sizeof(uint32_t);
2264     count_VkClearValue(featureBits, rootType, (VkClearValue*)(&toCount->clearValue), count);
2265 }
2266 
count_VkClearRect(uint32_t featureBits,VkStructureType rootType,const VkClearRect * toCount,size_t * count)2267 void count_VkClearRect(uint32_t featureBits, VkStructureType rootType, const VkClearRect* toCount,
2268                        size_t* count) {
2269     (void)featureBits;
2270     (void)rootType;
2271     (void)toCount;
2272     (void)count;
2273     count_VkRect2D(featureBits, rootType, (VkRect2D*)(&toCount->rect), count);
2274     *count += sizeof(uint32_t);
2275     *count += sizeof(uint32_t);
2276 }
2277 
count_VkImageBlit(uint32_t featureBits,VkStructureType rootType,const VkImageBlit * toCount,size_t * count)2278 void count_VkImageBlit(uint32_t featureBits, VkStructureType rootType, const VkImageBlit* toCount,
2279                        size_t* count) {
2280     (void)featureBits;
2281     (void)rootType;
2282     (void)toCount;
2283     (void)count;
2284     count_VkImageSubresourceLayers(featureBits, rootType,
2285                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
2286     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
2287         count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(toCount->srcOffsets + i), count);
2288     }
2289     count_VkImageSubresourceLayers(featureBits, rootType,
2290                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
2291     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
2292         count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(toCount->dstOffsets + i), count);
2293     }
2294 }
2295 
count_VkImageCopy(uint32_t featureBits,VkStructureType rootType,const VkImageCopy * toCount,size_t * count)2296 void count_VkImageCopy(uint32_t featureBits, VkStructureType rootType, const VkImageCopy* toCount,
2297                        size_t* count) {
2298     (void)featureBits;
2299     (void)rootType;
2300     (void)toCount;
2301     (void)count;
2302     count_VkImageSubresourceLayers(featureBits, rootType,
2303                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
2304     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->srcOffset), count);
2305     count_VkImageSubresourceLayers(featureBits, rootType,
2306                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
2307     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->dstOffset), count);
2308     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
2309 }
2310 
count_VkImageResolve(uint32_t featureBits,VkStructureType rootType,const VkImageResolve * toCount,size_t * count)2311 void count_VkImageResolve(uint32_t featureBits, VkStructureType rootType,
2312                           const VkImageResolve* toCount, size_t* count) {
2313     (void)featureBits;
2314     (void)rootType;
2315     (void)toCount;
2316     (void)count;
2317     count_VkImageSubresourceLayers(featureBits, rootType,
2318                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
2319     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->srcOffset), count);
2320     count_VkImageSubresourceLayers(featureBits, rootType,
2321                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
2322     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->dstOffset), count);
2323     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
2324 }
2325 
count_VkRenderPassBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderPassBeginInfo * toCount,size_t * count)2326 void count_VkRenderPassBeginInfo(uint32_t featureBits, VkStructureType rootType,
2327                                  const VkRenderPassBeginInfo* toCount, size_t* count) {
2328     (void)featureBits;
2329     (void)rootType;
2330     (void)toCount;
2331     (void)count;
2332     *count += sizeof(VkStructureType);
2333     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2334         rootType = toCount->sType;
2335     }
2336     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2337     uint64_t cgen_var_0;
2338     *count += 1 * 8;
2339     uint64_t cgen_var_1;
2340     *count += 1 * 8;
2341     count_VkRect2D(featureBits, rootType, (VkRect2D*)(&toCount->renderArea), count);
2342     *count += sizeof(uint32_t);
2343     // WARNING PTR CHECK
2344     *count += 8;
2345     if (toCount->pClearValues) {
2346         if (toCount) {
2347             for (uint32_t i = 0; i < (uint32_t)toCount->clearValueCount; ++i) {
2348                 count_VkClearValue(featureBits, rootType,
2349                                    (const VkClearValue*)(toCount->pClearValues + i), count);
2350             }
2351         }
2352     }
2353 }
2354 
2355 #endif
2356 #ifdef VK_VERSION_1_1
count_VkPhysicalDeviceSubgroupProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSubgroupProperties * toCount,size_t * count)2357 void count_VkPhysicalDeviceSubgroupProperties(uint32_t featureBits, VkStructureType rootType,
2358                                               const VkPhysicalDeviceSubgroupProperties* toCount,
2359                                               size_t* count) {
2360     (void)featureBits;
2361     (void)rootType;
2362     (void)toCount;
2363     (void)count;
2364     *count += sizeof(VkStructureType);
2365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2366         rootType = toCount->sType;
2367     }
2368     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2369     *count += sizeof(uint32_t);
2370     *count += sizeof(VkShaderStageFlags);
2371     *count += sizeof(VkSubgroupFeatureFlags);
2372     *count += sizeof(VkBool32);
2373 }
2374 
count_VkBindBufferMemoryInfo(uint32_t featureBits,VkStructureType rootType,const VkBindBufferMemoryInfo * toCount,size_t * count)2375 void count_VkBindBufferMemoryInfo(uint32_t featureBits, VkStructureType rootType,
2376                                   const VkBindBufferMemoryInfo* toCount, size_t* count) {
2377     (void)featureBits;
2378     (void)rootType;
2379     (void)toCount;
2380     (void)count;
2381     *count += sizeof(VkStructureType);
2382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2383         rootType = toCount->sType;
2384     }
2385     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2386     uint64_t cgen_var_0;
2387     *count += 1 * 8;
2388     uint64_t cgen_var_1;
2389     *count += 1 * 8;
2390     *count += sizeof(VkDeviceSize);
2391 }
2392 
count_VkBindImageMemoryInfo(uint32_t featureBits,VkStructureType rootType,const VkBindImageMemoryInfo * toCount,size_t * count)2393 void count_VkBindImageMemoryInfo(uint32_t featureBits, VkStructureType rootType,
2394                                  const VkBindImageMemoryInfo* toCount, size_t* count) {
2395     (void)featureBits;
2396     (void)rootType;
2397     (void)toCount;
2398     (void)count;
2399     *count += sizeof(VkStructureType);
2400     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2401         rootType = toCount->sType;
2402     }
2403     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2404     uint64_t cgen_var_0;
2405     *count += 1 * 8;
2406     uint64_t cgen_var_1;
2407     *count += 1 * 8;
2408     *count += sizeof(VkDeviceSize);
2409 }
2410 
count_VkPhysicalDevice16BitStorageFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevice16BitStorageFeatures * toCount,size_t * count)2411 void count_VkPhysicalDevice16BitStorageFeatures(uint32_t featureBits, VkStructureType rootType,
2412                                                 const VkPhysicalDevice16BitStorageFeatures* toCount,
2413                                                 size_t* count) {
2414     (void)featureBits;
2415     (void)rootType;
2416     (void)toCount;
2417     (void)count;
2418     *count += sizeof(VkStructureType);
2419     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2420         rootType = toCount->sType;
2421     }
2422     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2423     *count += sizeof(VkBool32);
2424     *count += sizeof(VkBool32);
2425     *count += sizeof(VkBool32);
2426     *count += sizeof(VkBool32);
2427 }
2428 
count_VkMemoryDedicatedRequirements(uint32_t featureBits,VkStructureType rootType,const VkMemoryDedicatedRequirements * toCount,size_t * count)2429 void count_VkMemoryDedicatedRequirements(uint32_t featureBits, VkStructureType rootType,
2430                                          const VkMemoryDedicatedRequirements* toCount,
2431                                          size_t* count) {
2432     (void)featureBits;
2433     (void)rootType;
2434     (void)toCount;
2435     (void)count;
2436     *count += sizeof(VkStructureType);
2437     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2438         rootType = toCount->sType;
2439     }
2440     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2441     *count += sizeof(VkBool32);
2442     *count += sizeof(VkBool32);
2443 }
2444 
count_VkMemoryDedicatedAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryDedicatedAllocateInfo * toCount,size_t * count)2445 void count_VkMemoryDedicatedAllocateInfo(uint32_t featureBits, VkStructureType rootType,
2446                                          const VkMemoryDedicatedAllocateInfo* toCount,
2447                                          size_t* count) {
2448     (void)featureBits;
2449     (void)rootType;
2450     (void)toCount;
2451     (void)count;
2452     *count += sizeof(VkStructureType);
2453     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2454         rootType = toCount->sType;
2455     }
2456     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2457     uint64_t cgen_var_0;
2458     *count += 1 * 8;
2459     uint64_t cgen_var_1;
2460     *count += 1 * 8;
2461 }
2462 
count_VkMemoryAllocateFlagsInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryAllocateFlagsInfo * toCount,size_t * count)2463 void count_VkMemoryAllocateFlagsInfo(uint32_t featureBits, VkStructureType rootType,
2464                                      const VkMemoryAllocateFlagsInfo* toCount, size_t* count) {
2465     (void)featureBits;
2466     (void)rootType;
2467     (void)toCount;
2468     (void)count;
2469     *count += sizeof(VkStructureType);
2470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2471         rootType = toCount->sType;
2472     }
2473     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2474     *count += sizeof(VkMemoryAllocateFlags);
2475     *count += sizeof(uint32_t);
2476 }
2477 
count_VkDeviceGroupRenderPassBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceGroupRenderPassBeginInfo * toCount,size_t * count)2478 void count_VkDeviceGroupRenderPassBeginInfo(uint32_t featureBits, VkStructureType rootType,
2479                                             const VkDeviceGroupRenderPassBeginInfo* toCount,
2480                                             size_t* count) {
2481     (void)featureBits;
2482     (void)rootType;
2483     (void)toCount;
2484     (void)count;
2485     *count += sizeof(VkStructureType);
2486     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2487         rootType = toCount->sType;
2488     }
2489     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2490     *count += sizeof(uint32_t);
2491     *count += sizeof(uint32_t);
2492     if (toCount) {
2493         for (uint32_t i = 0; i < (uint32_t)toCount->deviceRenderAreaCount; ++i) {
2494             count_VkRect2D(featureBits, rootType,
2495                            (const VkRect2D*)(toCount->pDeviceRenderAreas + i), count);
2496         }
2497     }
2498 }
2499 
count_VkDeviceGroupCommandBufferBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceGroupCommandBufferBeginInfo * toCount,size_t * count)2500 void count_VkDeviceGroupCommandBufferBeginInfo(uint32_t featureBits, VkStructureType rootType,
2501                                                const VkDeviceGroupCommandBufferBeginInfo* toCount,
2502                                                size_t* count) {
2503     (void)featureBits;
2504     (void)rootType;
2505     (void)toCount;
2506     (void)count;
2507     *count += sizeof(VkStructureType);
2508     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2509         rootType = toCount->sType;
2510     }
2511     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2512     *count += sizeof(uint32_t);
2513 }
2514 
count_VkDeviceGroupSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceGroupSubmitInfo * toCount,size_t * count)2515 void count_VkDeviceGroupSubmitInfo(uint32_t featureBits, VkStructureType rootType,
2516                                    const VkDeviceGroupSubmitInfo* toCount, size_t* count) {
2517     (void)featureBits;
2518     (void)rootType;
2519     (void)toCount;
2520     (void)count;
2521     *count += sizeof(VkStructureType);
2522     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2523         rootType = toCount->sType;
2524     }
2525     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2526     *count += sizeof(uint32_t);
2527     if (toCount) {
2528         *count += toCount->waitSemaphoreCount * sizeof(const uint32_t);
2529     }
2530     *count += sizeof(uint32_t);
2531     if (toCount) {
2532         *count += toCount->commandBufferCount * sizeof(const uint32_t);
2533     }
2534     *count += sizeof(uint32_t);
2535     if (toCount) {
2536         *count += toCount->signalSemaphoreCount * sizeof(const uint32_t);
2537     }
2538 }
2539 
count_VkDeviceGroupBindSparseInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceGroupBindSparseInfo * toCount,size_t * count)2540 void count_VkDeviceGroupBindSparseInfo(uint32_t featureBits, VkStructureType rootType,
2541                                        const VkDeviceGroupBindSparseInfo* toCount, size_t* count) {
2542     (void)featureBits;
2543     (void)rootType;
2544     (void)toCount;
2545     (void)count;
2546     *count += sizeof(VkStructureType);
2547     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2548         rootType = toCount->sType;
2549     }
2550     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2551     *count += sizeof(uint32_t);
2552     *count += sizeof(uint32_t);
2553 }
2554 
count_VkBindBufferMemoryDeviceGroupInfo(uint32_t featureBits,VkStructureType rootType,const VkBindBufferMemoryDeviceGroupInfo * toCount,size_t * count)2555 void count_VkBindBufferMemoryDeviceGroupInfo(uint32_t featureBits, VkStructureType rootType,
2556                                              const VkBindBufferMemoryDeviceGroupInfo* toCount,
2557                                              size_t* count) {
2558     (void)featureBits;
2559     (void)rootType;
2560     (void)toCount;
2561     (void)count;
2562     *count += sizeof(VkStructureType);
2563     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2564         rootType = toCount->sType;
2565     }
2566     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2567     *count += sizeof(uint32_t);
2568     if (toCount) {
2569         *count += toCount->deviceIndexCount * sizeof(const uint32_t);
2570     }
2571 }
2572 
count_VkBindImageMemoryDeviceGroupInfo(uint32_t featureBits,VkStructureType rootType,const VkBindImageMemoryDeviceGroupInfo * toCount,size_t * count)2573 void count_VkBindImageMemoryDeviceGroupInfo(uint32_t featureBits, VkStructureType rootType,
2574                                             const VkBindImageMemoryDeviceGroupInfo* toCount,
2575                                             size_t* count) {
2576     (void)featureBits;
2577     (void)rootType;
2578     (void)toCount;
2579     (void)count;
2580     *count += sizeof(VkStructureType);
2581     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2582         rootType = toCount->sType;
2583     }
2584     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2585     *count += sizeof(uint32_t);
2586     if (toCount) {
2587         *count += toCount->deviceIndexCount * sizeof(const uint32_t);
2588     }
2589     *count += sizeof(uint32_t);
2590     if (toCount) {
2591         for (uint32_t i = 0; i < (uint32_t)toCount->splitInstanceBindRegionCount; ++i) {
2592             count_VkRect2D(featureBits, rootType,
2593                            (const VkRect2D*)(toCount->pSplitInstanceBindRegions + i), count);
2594         }
2595     }
2596 }
2597 
count_VkPhysicalDeviceGroupProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGroupProperties * toCount,size_t * count)2598 void count_VkPhysicalDeviceGroupProperties(uint32_t featureBits, VkStructureType rootType,
2599                                            const VkPhysicalDeviceGroupProperties* toCount,
2600                                            size_t* count) {
2601     (void)featureBits;
2602     (void)rootType;
2603     (void)toCount;
2604     (void)count;
2605     *count += sizeof(VkStructureType);
2606     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2607         rootType = toCount->sType;
2608     }
2609     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2610     *count += sizeof(uint32_t);
2611     *count += VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice);
2612     *count += sizeof(VkBool32);
2613 }
2614 
count_VkDeviceGroupDeviceCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceGroupDeviceCreateInfo * toCount,size_t * count)2615 void count_VkDeviceGroupDeviceCreateInfo(uint32_t featureBits, VkStructureType rootType,
2616                                          const VkDeviceGroupDeviceCreateInfo* toCount,
2617                                          size_t* count) {
2618     (void)featureBits;
2619     (void)rootType;
2620     (void)toCount;
2621     (void)count;
2622     *count += sizeof(VkStructureType);
2623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2624         rootType = toCount->sType;
2625     }
2626     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2627     *count += sizeof(uint32_t);
2628     if (toCount->physicalDeviceCount) {
2629         *count += toCount->physicalDeviceCount * 8;
2630     }
2631 }
2632 
count_VkBufferMemoryRequirementsInfo2(uint32_t featureBits,VkStructureType rootType,const VkBufferMemoryRequirementsInfo2 * toCount,size_t * count)2633 void count_VkBufferMemoryRequirementsInfo2(uint32_t featureBits, VkStructureType rootType,
2634                                            const VkBufferMemoryRequirementsInfo2* toCount,
2635                                            size_t* count) {
2636     (void)featureBits;
2637     (void)rootType;
2638     (void)toCount;
2639     (void)count;
2640     *count += sizeof(VkStructureType);
2641     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2642         rootType = toCount->sType;
2643     }
2644     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2645     uint64_t cgen_var_0;
2646     *count += 1 * 8;
2647 }
2648 
count_VkImageMemoryRequirementsInfo2(uint32_t featureBits,VkStructureType rootType,const VkImageMemoryRequirementsInfo2 * toCount,size_t * count)2649 void count_VkImageMemoryRequirementsInfo2(uint32_t featureBits, VkStructureType rootType,
2650                                           const VkImageMemoryRequirementsInfo2* toCount,
2651                                           size_t* count) {
2652     (void)featureBits;
2653     (void)rootType;
2654     (void)toCount;
2655     (void)count;
2656     *count += sizeof(VkStructureType);
2657     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2658         rootType = toCount->sType;
2659     }
2660     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2661     uint64_t cgen_var_0;
2662     *count += 1 * 8;
2663 }
2664 
count_VkImageSparseMemoryRequirementsInfo2(uint32_t featureBits,VkStructureType rootType,const VkImageSparseMemoryRequirementsInfo2 * toCount,size_t * count)2665 void count_VkImageSparseMemoryRequirementsInfo2(uint32_t featureBits, VkStructureType rootType,
2666                                                 const VkImageSparseMemoryRequirementsInfo2* toCount,
2667                                                 size_t* count) {
2668     (void)featureBits;
2669     (void)rootType;
2670     (void)toCount;
2671     (void)count;
2672     *count += sizeof(VkStructureType);
2673     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2674         rootType = toCount->sType;
2675     }
2676     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2677     uint64_t cgen_var_0;
2678     *count += 1 * 8;
2679 }
2680 
count_VkMemoryRequirements2(uint32_t featureBits,VkStructureType rootType,const VkMemoryRequirements2 * toCount,size_t * count)2681 void count_VkMemoryRequirements2(uint32_t featureBits, VkStructureType rootType,
2682                                  const VkMemoryRequirements2* toCount, size_t* count) {
2683     (void)featureBits;
2684     (void)rootType;
2685     (void)toCount;
2686     (void)count;
2687     *count += sizeof(VkStructureType);
2688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2689         rootType = toCount->sType;
2690     }
2691     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2692     count_VkMemoryRequirements(featureBits, rootType,
2693                                (VkMemoryRequirements*)(&toCount->memoryRequirements), count);
2694 }
2695 
count_VkSparseImageMemoryRequirements2(uint32_t featureBits,VkStructureType rootType,const VkSparseImageMemoryRequirements2 * toCount,size_t * count)2696 void count_VkSparseImageMemoryRequirements2(uint32_t featureBits, VkStructureType rootType,
2697                                             const VkSparseImageMemoryRequirements2* toCount,
2698                                             size_t* count) {
2699     (void)featureBits;
2700     (void)rootType;
2701     (void)toCount;
2702     (void)count;
2703     *count += sizeof(VkStructureType);
2704     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2705         rootType = toCount->sType;
2706     }
2707     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2708     count_VkSparseImageMemoryRequirements(
2709         featureBits, rootType, (VkSparseImageMemoryRequirements*)(&toCount->memoryRequirements),
2710         count);
2711 }
2712 
count_VkPhysicalDeviceFeatures2(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFeatures2 * toCount,size_t * count)2713 void count_VkPhysicalDeviceFeatures2(uint32_t featureBits, VkStructureType rootType,
2714                                      const VkPhysicalDeviceFeatures2* toCount, size_t* count) {
2715     (void)featureBits;
2716     (void)rootType;
2717     (void)toCount;
2718     (void)count;
2719     *count += sizeof(VkStructureType);
2720     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2721         rootType = toCount->sType;
2722     }
2723     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2724     count_VkPhysicalDeviceFeatures(featureBits, rootType,
2725                                    (VkPhysicalDeviceFeatures*)(&toCount->features), count);
2726 }
2727 
count_VkPhysicalDeviceProperties2(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProperties2 * toCount,size_t * count)2728 void count_VkPhysicalDeviceProperties2(uint32_t featureBits, VkStructureType rootType,
2729                                        const VkPhysicalDeviceProperties2* toCount, size_t* count) {
2730     (void)featureBits;
2731     (void)rootType;
2732     (void)toCount;
2733     (void)count;
2734     *count += sizeof(VkStructureType);
2735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2736         rootType = toCount->sType;
2737     }
2738     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2739     count_VkPhysicalDeviceProperties(featureBits, rootType,
2740                                      (VkPhysicalDeviceProperties*)(&toCount->properties), count);
2741 }
2742 
count_VkFormatProperties2(uint32_t featureBits,VkStructureType rootType,const VkFormatProperties2 * toCount,size_t * count)2743 void count_VkFormatProperties2(uint32_t featureBits, VkStructureType rootType,
2744                                const VkFormatProperties2* toCount, size_t* count) {
2745     (void)featureBits;
2746     (void)rootType;
2747     (void)toCount;
2748     (void)count;
2749     *count += sizeof(VkStructureType);
2750     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2751         rootType = toCount->sType;
2752     }
2753     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2754     count_VkFormatProperties(featureBits, rootType,
2755                              (VkFormatProperties*)(&toCount->formatProperties), count);
2756 }
2757 
count_VkImageFormatProperties2(uint32_t featureBits,VkStructureType rootType,const VkImageFormatProperties2 * toCount,size_t * count)2758 void count_VkImageFormatProperties2(uint32_t featureBits, VkStructureType rootType,
2759                                     const VkImageFormatProperties2* toCount, size_t* count) {
2760     (void)featureBits;
2761     (void)rootType;
2762     (void)toCount;
2763     (void)count;
2764     *count += sizeof(VkStructureType);
2765     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2766         rootType = toCount->sType;
2767     }
2768     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2769     count_VkImageFormatProperties(
2770         featureBits, rootType, (VkImageFormatProperties*)(&toCount->imageFormatProperties), count);
2771 }
2772 
count_VkPhysicalDeviceImageFormatInfo2(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageFormatInfo2 * toCount,size_t * count)2773 void count_VkPhysicalDeviceImageFormatInfo2(uint32_t featureBits, VkStructureType rootType,
2774                                             const VkPhysicalDeviceImageFormatInfo2* toCount,
2775                                             size_t* count) {
2776     (void)featureBits;
2777     (void)rootType;
2778     (void)toCount;
2779     (void)count;
2780     *count += sizeof(VkStructureType);
2781     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2782         rootType = toCount->sType;
2783     }
2784     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2785     *count += sizeof(VkFormat);
2786     *count += sizeof(VkImageType);
2787     *count += sizeof(VkImageTiling);
2788     *count += sizeof(VkImageUsageFlags);
2789     *count += sizeof(VkImageCreateFlags);
2790 }
2791 
count_VkQueueFamilyProperties2(uint32_t featureBits,VkStructureType rootType,const VkQueueFamilyProperties2 * toCount,size_t * count)2792 void count_VkQueueFamilyProperties2(uint32_t featureBits, VkStructureType rootType,
2793                                     const VkQueueFamilyProperties2* toCount, size_t* count) {
2794     (void)featureBits;
2795     (void)rootType;
2796     (void)toCount;
2797     (void)count;
2798     *count += sizeof(VkStructureType);
2799     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2800         rootType = toCount->sType;
2801     }
2802     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2803     count_VkQueueFamilyProperties(
2804         featureBits, rootType, (VkQueueFamilyProperties*)(&toCount->queueFamilyProperties), count);
2805 }
2806 
count_VkPhysicalDeviceMemoryProperties2(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties2 * toCount,size_t * count)2807 void count_VkPhysicalDeviceMemoryProperties2(uint32_t featureBits, VkStructureType rootType,
2808                                              const VkPhysicalDeviceMemoryProperties2* toCount,
2809                                              size_t* count) {
2810     (void)featureBits;
2811     (void)rootType;
2812     (void)toCount;
2813     (void)count;
2814     *count += sizeof(VkStructureType);
2815     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2816         rootType = toCount->sType;
2817     }
2818     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2819     count_VkPhysicalDeviceMemoryProperties(
2820         featureBits, rootType, (VkPhysicalDeviceMemoryProperties*)(&toCount->memoryProperties),
2821         count);
2822 }
2823 
count_VkSparseImageFormatProperties2(uint32_t featureBits,VkStructureType rootType,const VkSparseImageFormatProperties2 * toCount,size_t * count)2824 void count_VkSparseImageFormatProperties2(uint32_t featureBits, VkStructureType rootType,
2825                                           const VkSparseImageFormatProperties2* toCount,
2826                                           size_t* count) {
2827     (void)featureBits;
2828     (void)rootType;
2829     (void)toCount;
2830     (void)count;
2831     *count += sizeof(VkStructureType);
2832     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2833         rootType = toCount->sType;
2834     }
2835     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2836     count_VkSparseImageFormatProperties(
2837         featureBits, rootType, (VkSparseImageFormatProperties*)(&toCount->properties), count);
2838 }
2839 
count_VkPhysicalDeviceSparseImageFormatInfo2(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSparseImageFormatInfo2 * toCount,size_t * count)2840 void count_VkPhysicalDeviceSparseImageFormatInfo2(
2841     uint32_t featureBits, VkStructureType rootType,
2842     const VkPhysicalDeviceSparseImageFormatInfo2* toCount, size_t* count) {
2843     (void)featureBits;
2844     (void)rootType;
2845     (void)toCount;
2846     (void)count;
2847     *count += sizeof(VkStructureType);
2848     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2849         rootType = toCount->sType;
2850     }
2851     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2852     *count += sizeof(VkFormat);
2853     *count += sizeof(VkImageType);
2854     *count += sizeof(VkSampleCountFlagBits);
2855     *count += sizeof(VkImageUsageFlags);
2856     *count += sizeof(VkImageTiling);
2857 }
2858 
count_VkPhysicalDevicePointClippingProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePointClippingProperties * toCount,size_t * count)2859 void count_VkPhysicalDevicePointClippingProperties(
2860     uint32_t featureBits, VkStructureType rootType,
2861     const VkPhysicalDevicePointClippingProperties* toCount, size_t* count) {
2862     (void)featureBits;
2863     (void)rootType;
2864     (void)toCount;
2865     (void)count;
2866     *count += sizeof(VkStructureType);
2867     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2868         rootType = toCount->sType;
2869     }
2870     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2871     *count += sizeof(VkPointClippingBehavior);
2872 }
2873 
count_VkInputAttachmentAspectReference(uint32_t featureBits,VkStructureType rootType,const VkInputAttachmentAspectReference * toCount,size_t * count)2874 void count_VkInputAttachmentAspectReference(uint32_t featureBits, VkStructureType rootType,
2875                                             const VkInputAttachmentAspectReference* toCount,
2876                                             size_t* count) {
2877     (void)featureBits;
2878     (void)rootType;
2879     (void)toCount;
2880     (void)count;
2881     *count += sizeof(uint32_t);
2882     *count += sizeof(uint32_t);
2883     *count += sizeof(VkImageAspectFlags);
2884 }
2885 
count_VkRenderPassInputAttachmentAspectCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderPassInputAttachmentAspectCreateInfo * toCount,size_t * count)2886 void count_VkRenderPassInputAttachmentAspectCreateInfo(
2887     uint32_t featureBits, VkStructureType rootType,
2888     const VkRenderPassInputAttachmentAspectCreateInfo* toCount, size_t* count) {
2889     (void)featureBits;
2890     (void)rootType;
2891     (void)toCount;
2892     (void)count;
2893     *count += sizeof(VkStructureType);
2894     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2895         rootType = toCount->sType;
2896     }
2897     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2898     *count += sizeof(uint32_t);
2899     if (toCount) {
2900         for (uint32_t i = 0; i < (uint32_t)toCount->aspectReferenceCount; ++i) {
2901             count_VkInputAttachmentAspectReference(
2902                 featureBits, rootType,
2903                 (const VkInputAttachmentAspectReference*)(toCount->pAspectReferences + i), count);
2904         }
2905     }
2906 }
2907 
count_VkImageViewUsageCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkImageViewUsageCreateInfo * toCount,size_t * count)2908 void count_VkImageViewUsageCreateInfo(uint32_t featureBits, VkStructureType rootType,
2909                                       const VkImageViewUsageCreateInfo* toCount, size_t* count) {
2910     (void)featureBits;
2911     (void)rootType;
2912     (void)toCount;
2913     (void)count;
2914     *count += sizeof(VkStructureType);
2915     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2916         rootType = toCount->sType;
2917     }
2918     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2919     *count += sizeof(VkImageUsageFlags);
2920 }
2921 
count_VkPipelineTessellationDomainOriginStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineTessellationDomainOriginStateCreateInfo * toCount,size_t * count)2922 void count_VkPipelineTessellationDomainOriginStateCreateInfo(
2923     uint32_t featureBits, VkStructureType rootType,
2924     const VkPipelineTessellationDomainOriginStateCreateInfo* toCount, size_t* count) {
2925     (void)featureBits;
2926     (void)rootType;
2927     (void)toCount;
2928     (void)count;
2929     *count += sizeof(VkStructureType);
2930     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2931         rootType = toCount->sType;
2932     }
2933     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2934     *count += sizeof(VkTessellationDomainOrigin);
2935 }
2936 
count_VkRenderPassMultiviewCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderPassMultiviewCreateInfo * toCount,size_t * count)2937 void count_VkRenderPassMultiviewCreateInfo(uint32_t featureBits, VkStructureType rootType,
2938                                            const VkRenderPassMultiviewCreateInfo* toCount,
2939                                            size_t* count) {
2940     (void)featureBits;
2941     (void)rootType;
2942     (void)toCount;
2943     (void)count;
2944     *count += sizeof(VkStructureType);
2945     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2946         rootType = toCount->sType;
2947     }
2948     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2949     *count += sizeof(uint32_t);
2950     if (toCount) {
2951         *count += toCount->subpassCount * sizeof(const uint32_t);
2952     }
2953     *count += sizeof(uint32_t);
2954     if (toCount) {
2955         *count += toCount->dependencyCount * sizeof(const int32_t);
2956     }
2957     *count += sizeof(uint32_t);
2958     if (toCount) {
2959         *count += toCount->correlationMaskCount * sizeof(const uint32_t);
2960     }
2961 }
2962 
count_VkPhysicalDeviceMultiviewFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMultiviewFeatures * toCount,size_t * count)2963 void count_VkPhysicalDeviceMultiviewFeatures(uint32_t featureBits, VkStructureType rootType,
2964                                              const VkPhysicalDeviceMultiviewFeatures* toCount,
2965                                              size_t* count) {
2966     (void)featureBits;
2967     (void)rootType;
2968     (void)toCount;
2969     (void)count;
2970     *count += sizeof(VkStructureType);
2971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2972         rootType = toCount->sType;
2973     }
2974     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2975     *count += sizeof(VkBool32);
2976     *count += sizeof(VkBool32);
2977     *count += sizeof(VkBool32);
2978 }
2979 
count_VkPhysicalDeviceMultiviewProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMultiviewProperties * toCount,size_t * count)2980 void count_VkPhysicalDeviceMultiviewProperties(uint32_t featureBits, VkStructureType rootType,
2981                                                const VkPhysicalDeviceMultiviewProperties* toCount,
2982                                                size_t* count) {
2983     (void)featureBits;
2984     (void)rootType;
2985     (void)toCount;
2986     (void)count;
2987     *count += sizeof(VkStructureType);
2988     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2989         rootType = toCount->sType;
2990     }
2991     count_extension_struct(featureBits, rootType, toCount->pNext, count);
2992     *count += sizeof(uint32_t);
2993     *count += sizeof(uint32_t);
2994 }
2995 
count_VkPhysicalDeviceVariablePointersFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVariablePointersFeatures * toCount,size_t * count)2996 void count_VkPhysicalDeviceVariablePointersFeatures(
2997     uint32_t featureBits, VkStructureType rootType,
2998     const VkPhysicalDeviceVariablePointersFeatures* toCount, size_t* count) {
2999     (void)featureBits;
3000     (void)rootType;
3001     (void)toCount;
3002     (void)count;
3003     *count += sizeof(VkStructureType);
3004     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3005         rootType = toCount->sType;
3006     }
3007     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3008     *count += sizeof(VkBool32);
3009     *count += sizeof(VkBool32);
3010 }
3011 
count_VkPhysicalDeviceProtectedMemoryFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryFeatures * toCount,size_t * count)3012 void count_VkPhysicalDeviceProtectedMemoryFeatures(
3013     uint32_t featureBits, VkStructureType rootType,
3014     const VkPhysicalDeviceProtectedMemoryFeatures* toCount, size_t* count) {
3015     (void)featureBits;
3016     (void)rootType;
3017     (void)toCount;
3018     (void)count;
3019     *count += sizeof(VkStructureType);
3020     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3021         rootType = toCount->sType;
3022     }
3023     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3024     *count += sizeof(VkBool32);
3025 }
3026 
count_VkPhysicalDeviceProtectedMemoryProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryProperties * toCount,size_t * count)3027 void count_VkPhysicalDeviceProtectedMemoryProperties(
3028     uint32_t featureBits, VkStructureType rootType,
3029     const VkPhysicalDeviceProtectedMemoryProperties* toCount, size_t* count) {
3030     (void)featureBits;
3031     (void)rootType;
3032     (void)toCount;
3033     (void)count;
3034     *count += sizeof(VkStructureType);
3035     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3036         rootType = toCount->sType;
3037     }
3038     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3039     *count += sizeof(VkBool32);
3040 }
3041 
count_VkDeviceQueueInfo2(uint32_t featureBits,VkStructureType rootType,const VkDeviceQueueInfo2 * toCount,size_t * count)3042 void count_VkDeviceQueueInfo2(uint32_t featureBits, VkStructureType rootType,
3043                               const VkDeviceQueueInfo2* toCount, size_t* count) {
3044     (void)featureBits;
3045     (void)rootType;
3046     (void)toCount;
3047     (void)count;
3048     *count += sizeof(VkStructureType);
3049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3050         rootType = toCount->sType;
3051     }
3052     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3053     *count += sizeof(VkDeviceQueueCreateFlags);
3054     *count += sizeof(uint32_t);
3055     *count += sizeof(uint32_t);
3056 }
3057 
count_VkProtectedSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkProtectedSubmitInfo * toCount,size_t * count)3058 void count_VkProtectedSubmitInfo(uint32_t featureBits, VkStructureType rootType,
3059                                  const VkProtectedSubmitInfo* toCount, size_t* count) {
3060     (void)featureBits;
3061     (void)rootType;
3062     (void)toCount;
3063     (void)count;
3064     *count += sizeof(VkStructureType);
3065     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3066         rootType = toCount->sType;
3067     }
3068     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3069     *count += sizeof(VkBool32);
3070 }
3071 
count_VkSamplerYcbcrConversionCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkSamplerYcbcrConversionCreateInfo * toCount,size_t * count)3072 void count_VkSamplerYcbcrConversionCreateInfo(uint32_t featureBits, VkStructureType rootType,
3073                                               const VkSamplerYcbcrConversionCreateInfo* toCount,
3074                                               size_t* count) {
3075     (void)featureBits;
3076     (void)rootType;
3077     (void)toCount;
3078     (void)count;
3079     *count += sizeof(VkStructureType);
3080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3081         rootType = toCount->sType;
3082     }
3083     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3084     *count += sizeof(VkFormat);
3085     *count += sizeof(VkSamplerYcbcrModelConversion);
3086     *count += sizeof(VkSamplerYcbcrRange);
3087     count_VkComponentMapping(featureBits, rootType, (VkComponentMapping*)(&toCount->components),
3088                              count);
3089     *count += sizeof(VkChromaLocation);
3090     *count += sizeof(VkChromaLocation);
3091     *count += sizeof(VkFilter);
3092     *count += sizeof(VkBool32);
3093 }
3094 
count_VkSamplerYcbcrConversionInfo(uint32_t featureBits,VkStructureType rootType,const VkSamplerYcbcrConversionInfo * toCount,size_t * count)3095 void count_VkSamplerYcbcrConversionInfo(uint32_t featureBits, VkStructureType rootType,
3096                                         const VkSamplerYcbcrConversionInfo* toCount,
3097                                         size_t* count) {
3098     (void)featureBits;
3099     (void)rootType;
3100     (void)toCount;
3101     (void)count;
3102     *count += sizeof(VkStructureType);
3103     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3104         rootType = toCount->sType;
3105     }
3106     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3107     uint64_t cgen_var_0;
3108     *count += 1 * 8;
3109 }
3110 
count_VkBindImagePlaneMemoryInfo(uint32_t featureBits,VkStructureType rootType,const VkBindImagePlaneMemoryInfo * toCount,size_t * count)3111 void count_VkBindImagePlaneMemoryInfo(uint32_t featureBits, VkStructureType rootType,
3112                                       const VkBindImagePlaneMemoryInfo* toCount, size_t* count) {
3113     (void)featureBits;
3114     (void)rootType;
3115     (void)toCount;
3116     (void)count;
3117     *count += sizeof(VkStructureType);
3118     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3119         rootType = toCount->sType;
3120     }
3121     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3122     *count += sizeof(VkImageAspectFlagBits);
3123 }
3124 
count_VkImagePlaneMemoryRequirementsInfo(uint32_t featureBits,VkStructureType rootType,const VkImagePlaneMemoryRequirementsInfo * toCount,size_t * count)3125 void count_VkImagePlaneMemoryRequirementsInfo(uint32_t featureBits, VkStructureType rootType,
3126                                               const VkImagePlaneMemoryRequirementsInfo* toCount,
3127                                               size_t* count) {
3128     (void)featureBits;
3129     (void)rootType;
3130     (void)toCount;
3131     (void)count;
3132     *count += sizeof(VkStructureType);
3133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3134         rootType = toCount->sType;
3135     }
3136     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3137     *count += sizeof(VkImageAspectFlagBits);
3138 }
3139 
count_VkPhysicalDeviceSamplerYcbcrConversionFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * toCount,size_t * count)3140 void count_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
3141     uint32_t featureBits, VkStructureType rootType,
3142     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* toCount, size_t* count) {
3143     (void)featureBits;
3144     (void)rootType;
3145     (void)toCount;
3146     (void)count;
3147     *count += sizeof(VkStructureType);
3148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3149         rootType = toCount->sType;
3150     }
3151     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3152     *count += sizeof(VkBool32);
3153 }
3154 
count_VkSamplerYcbcrConversionImageFormatProperties(uint32_t featureBits,VkStructureType rootType,const VkSamplerYcbcrConversionImageFormatProperties * toCount,size_t * count)3155 void count_VkSamplerYcbcrConversionImageFormatProperties(
3156     uint32_t featureBits, VkStructureType rootType,
3157     const VkSamplerYcbcrConversionImageFormatProperties* toCount, size_t* count) {
3158     (void)featureBits;
3159     (void)rootType;
3160     (void)toCount;
3161     (void)count;
3162     *count += sizeof(VkStructureType);
3163     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3164         rootType = toCount->sType;
3165     }
3166     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3167     *count += sizeof(uint32_t);
3168 }
3169 
count_VkDescriptorUpdateTemplateEntry(uint32_t featureBits,VkStructureType rootType,const VkDescriptorUpdateTemplateEntry * toCount,size_t * count)3170 void count_VkDescriptorUpdateTemplateEntry(uint32_t featureBits, VkStructureType rootType,
3171                                            const VkDescriptorUpdateTemplateEntry* toCount,
3172                                            size_t* count) {
3173     (void)featureBits;
3174     (void)rootType;
3175     (void)toCount;
3176     (void)count;
3177     *count += sizeof(uint32_t);
3178     *count += sizeof(uint32_t);
3179     *count += sizeof(uint32_t);
3180     *count += sizeof(VkDescriptorType);
3181     *count += 8;
3182     *count += 8;
3183 }
3184 
count_VkDescriptorUpdateTemplateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorUpdateTemplateCreateInfo * toCount,size_t * count)3185 void count_VkDescriptorUpdateTemplateCreateInfo(uint32_t featureBits, VkStructureType rootType,
3186                                                 const VkDescriptorUpdateTemplateCreateInfo* toCount,
3187                                                 size_t* count) {
3188     (void)featureBits;
3189     (void)rootType;
3190     (void)toCount;
3191     (void)count;
3192     *count += sizeof(VkStructureType);
3193     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3194         rootType = toCount->sType;
3195     }
3196     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3197     *count += sizeof(VkDescriptorUpdateTemplateCreateFlags);
3198     *count += sizeof(uint32_t);
3199     if (toCount) {
3200         for (uint32_t i = 0; i < (uint32_t)toCount->descriptorUpdateEntryCount; ++i) {
3201             count_VkDescriptorUpdateTemplateEntry(
3202                 featureBits, rootType,
3203                 (const VkDescriptorUpdateTemplateEntry*)(toCount->pDescriptorUpdateEntries + i),
3204                 count);
3205         }
3206     }
3207     *count += sizeof(VkDescriptorUpdateTemplateType);
3208     uint64_t cgen_var_0;
3209     *count += 1 * 8;
3210     *count += sizeof(VkPipelineBindPoint);
3211     uint64_t cgen_var_1;
3212     *count += 1 * 8;
3213     *count += sizeof(uint32_t);
3214 }
3215 
count_VkExternalMemoryProperties(uint32_t featureBits,VkStructureType rootType,const VkExternalMemoryProperties * toCount,size_t * count)3216 void count_VkExternalMemoryProperties(uint32_t featureBits, VkStructureType rootType,
3217                                       const VkExternalMemoryProperties* toCount, size_t* count) {
3218     (void)featureBits;
3219     (void)rootType;
3220     (void)toCount;
3221     (void)count;
3222     *count += sizeof(VkExternalMemoryFeatureFlags);
3223     *count += sizeof(VkExternalMemoryHandleTypeFlags);
3224     *count += sizeof(VkExternalMemoryHandleTypeFlags);
3225 }
3226 
count_VkPhysicalDeviceExternalImageFormatInfo(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExternalImageFormatInfo * toCount,size_t * count)3227 void count_VkPhysicalDeviceExternalImageFormatInfo(
3228     uint32_t featureBits, VkStructureType rootType,
3229     const VkPhysicalDeviceExternalImageFormatInfo* toCount, size_t* count) {
3230     (void)featureBits;
3231     (void)rootType;
3232     (void)toCount;
3233     (void)count;
3234     *count += sizeof(VkStructureType);
3235     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3236         rootType = toCount->sType;
3237     }
3238     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3239     *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
3240 }
3241 
count_VkExternalImageFormatProperties(uint32_t featureBits,VkStructureType rootType,const VkExternalImageFormatProperties * toCount,size_t * count)3242 void count_VkExternalImageFormatProperties(uint32_t featureBits, VkStructureType rootType,
3243                                            const VkExternalImageFormatProperties* toCount,
3244                                            size_t* count) {
3245     (void)featureBits;
3246     (void)rootType;
3247     (void)toCount;
3248     (void)count;
3249     *count += sizeof(VkStructureType);
3250     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3251         rootType = toCount->sType;
3252     }
3253     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3254     count_VkExternalMemoryProperties(
3255         featureBits, rootType, (VkExternalMemoryProperties*)(&toCount->externalMemoryProperties),
3256         count);
3257 }
3258 
count_VkPhysicalDeviceExternalBufferInfo(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExternalBufferInfo * toCount,size_t * count)3259 void count_VkPhysicalDeviceExternalBufferInfo(uint32_t featureBits, VkStructureType rootType,
3260                                               const VkPhysicalDeviceExternalBufferInfo* toCount,
3261                                               size_t* count) {
3262     (void)featureBits;
3263     (void)rootType;
3264     (void)toCount;
3265     (void)count;
3266     *count += sizeof(VkStructureType);
3267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3268         rootType = toCount->sType;
3269     }
3270     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3271     *count += sizeof(VkBufferCreateFlags);
3272     *count += sizeof(VkBufferUsageFlags);
3273     *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
3274 }
3275 
count_VkExternalBufferProperties(uint32_t featureBits,VkStructureType rootType,const VkExternalBufferProperties * toCount,size_t * count)3276 void count_VkExternalBufferProperties(uint32_t featureBits, VkStructureType rootType,
3277                                       const VkExternalBufferProperties* toCount, size_t* count) {
3278     (void)featureBits;
3279     (void)rootType;
3280     (void)toCount;
3281     (void)count;
3282     *count += sizeof(VkStructureType);
3283     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3284         rootType = toCount->sType;
3285     }
3286     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3287     count_VkExternalMemoryProperties(
3288         featureBits, rootType, (VkExternalMemoryProperties*)(&toCount->externalMemoryProperties),
3289         count);
3290 }
3291 
count_VkPhysicalDeviceIDProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceIDProperties * toCount,size_t * count)3292 void count_VkPhysicalDeviceIDProperties(uint32_t featureBits, VkStructureType rootType,
3293                                         const VkPhysicalDeviceIDProperties* toCount,
3294                                         size_t* count) {
3295     (void)featureBits;
3296     (void)rootType;
3297     (void)toCount;
3298     (void)count;
3299     *count += sizeof(VkStructureType);
3300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3301         rootType = toCount->sType;
3302     }
3303     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3304     *count += VK_UUID_SIZE * sizeof(uint8_t);
3305     *count += VK_UUID_SIZE * sizeof(uint8_t);
3306     *count += VK_LUID_SIZE * sizeof(uint8_t);
3307     *count += sizeof(uint32_t);
3308     *count += sizeof(VkBool32);
3309 }
3310 
count_VkExternalMemoryImageCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkExternalMemoryImageCreateInfo * toCount,size_t * count)3311 void count_VkExternalMemoryImageCreateInfo(uint32_t featureBits, VkStructureType rootType,
3312                                            const VkExternalMemoryImageCreateInfo* toCount,
3313                                            size_t* count) {
3314     (void)featureBits;
3315     (void)rootType;
3316     (void)toCount;
3317     (void)count;
3318     *count += sizeof(VkStructureType);
3319     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3320         rootType = toCount->sType;
3321     }
3322     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3323     *count += sizeof(VkExternalMemoryHandleTypeFlags);
3324 }
3325 
count_VkExternalMemoryBufferCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkExternalMemoryBufferCreateInfo * toCount,size_t * count)3326 void count_VkExternalMemoryBufferCreateInfo(uint32_t featureBits, VkStructureType rootType,
3327                                             const VkExternalMemoryBufferCreateInfo* toCount,
3328                                             size_t* count) {
3329     (void)featureBits;
3330     (void)rootType;
3331     (void)toCount;
3332     (void)count;
3333     *count += sizeof(VkStructureType);
3334     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3335         rootType = toCount->sType;
3336     }
3337     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3338     *count += sizeof(VkExternalMemoryHandleTypeFlags);
3339 }
3340 
count_VkExportMemoryAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkExportMemoryAllocateInfo * toCount,size_t * count)3341 void count_VkExportMemoryAllocateInfo(uint32_t featureBits, VkStructureType rootType,
3342                                       const VkExportMemoryAllocateInfo* toCount, size_t* count) {
3343     (void)featureBits;
3344     (void)rootType;
3345     (void)toCount;
3346     (void)count;
3347     *count += sizeof(VkStructureType);
3348     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3349         rootType = toCount->sType;
3350     }
3351     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3352     *count += sizeof(VkExternalMemoryHandleTypeFlags);
3353 }
3354 
count_VkPhysicalDeviceExternalFenceInfo(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExternalFenceInfo * toCount,size_t * count)3355 void count_VkPhysicalDeviceExternalFenceInfo(uint32_t featureBits, VkStructureType rootType,
3356                                              const VkPhysicalDeviceExternalFenceInfo* toCount,
3357                                              size_t* count) {
3358     (void)featureBits;
3359     (void)rootType;
3360     (void)toCount;
3361     (void)count;
3362     *count += sizeof(VkStructureType);
3363     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3364         rootType = toCount->sType;
3365     }
3366     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3367     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
3368 }
3369 
count_VkExternalFenceProperties(uint32_t featureBits,VkStructureType rootType,const VkExternalFenceProperties * toCount,size_t * count)3370 void count_VkExternalFenceProperties(uint32_t featureBits, VkStructureType rootType,
3371                                      const VkExternalFenceProperties* toCount, size_t* count) {
3372     (void)featureBits;
3373     (void)rootType;
3374     (void)toCount;
3375     (void)count;
3376     *count += sizeof(VkStructureType);
3377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3378         rootType = toCount->sType;
3379     }
3380     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3381     *count += sizeof(VkExternalFenceHandleTypeFlags);
3382     *count += sizeof(VkExternalFenceHandleTypeFlags);
3383     *count += sizeof(VkExternalFenceFeatureFlags);
3384 }
3385 
count_VkExportFenceCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkExportFenceCreateInfo * toCount,size_t * count)3386 void count_VkExportFenceCreateInfo(uint32_t featureBits, VkStructureType rootType,
3387                                    const VkExportFenceCreateInfo* toCount, size_t* count) {
3388     (void)featureBits;
3389     (void)rootType;
3390     (void)toCount;
3391     (void)count;
3392     *count += sizeof(VkStructureType);
3393     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3394         rootType = toCount->sType;
3395     }
3396     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3397     *count += sizeof(VkExternalFenceHandleTypeFlags);
3398 }
3399 
count_VkExportSemaphoreCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkExportSemaphoreCreateInfo * toCount,size_t * count)3400 void count_VkExportSemaphoreCreateInfo(uint32_t featureBits, VkStructureType rootType,
3401                                        const VkExportSemaphoreCreateInfo* toCount, size_t* count) {
3402     (void)featureBits;
3403     (void)rootType;
3404     (void)toCount;
3405     (void)count;
3406     *count += sizeof(VkStructureType);
3407     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3408         rootType = toCount->sType;
3409     }
3410     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3411     *count += sizeof(VkExternalSemaphoreHandleTypeFlags);
3412 }
3413 
count_VkPhysicalDeviceExternalSemaphoreInfo(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExternalSemaphoreInfo * toCount,size_t * count)3414 void count_VkPhysicalDeviceExternalSemaphoreInfo(
3415     uint32_t featureBits, VkStructureType rootType,
3416     const VkPhysicalDeviceExternalSemaphoreInfo* toCount, size_t* count) {
3417     (void)featureBits;
3418     (void)rootType;
3419     (void)toCount;
3420     (void)count;
3421     *count += sizeof(VkStructureType);
3422     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3423         rootType = toCount->sType;
3424     }
3425     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3426     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
3427 }
3428 
count_VkExternalSemaphoreProperties(uint32_t featureBits,VkStructureType rootType,const VkExternalSemaphoreProperties * toCount,size_t * count)3429 void count_VkExternalSemaphoreProperties(uint32_t featureBits, VkStructureType rootType,
3430                                          const VkExternalSemaphoreProperties* toCount,
3431                                          size_t* count) {
3432     (void)featureBits;
3433     (void)rootType;
3434     (void)toCount;
3435     (void)count;
3436     *count += sizeof(VkStructureType);
3437     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3438         rootType = toCount->sType;
3439     }
3440     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3441     *count += sizeof(VkExternalSemaphoreHandleTypeFlags);
3442     *count += sizeof(VkExternalSemaphoreHandleTypeFlags);
3443     *count += sizeof(VkExternalSemaphoreFeatureFlags);
3444 }
3445 
count_VkPhysicalDeviceMaintenance3Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance3Properties * toCount,size_t * count)3446 void count_VkPhysicalDeviceMaintenance3Properties(
3447     uint32_t featureBits, VkStructureType rootType,
3448     const VkPhysicalDeviceMaintenance3Properties* toCount, size_t* count) {
3449     (void)featureBits;
3450     (void)rootType;
3451     (void)toCount;
3452     (void)count;
3453     *count += sizeof(VkStructureType);
3454     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3455         rootType = toCount->sType;
3456     }
3457     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3458     *count += sizeof(uint32_t);
3459     *count += sizeof(VkDeviceSize);
3460 }
3461 
count_VkDescriptorSetLayoutSupport(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetLayoutSupport * toCount,size_t * count)3462 void count_VkDescriptorSetLayoutSupport(uint32_t featureBits, VkStructureType rootType,
3463                                         const VkDescriptorSetLayoutSupport* toCount,
3464                                         size_t* count) {
3465     (void)featureBits;
3466     (void)rootType;
3467     (void)toCount;
3468     (void)count;
3469     *count += sizeof(VkStructureType);
3470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3471         rootType = toCount->sType;
3472     }
3473     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3474     *count += sizeof(VkBool32);
3475 }
3476 
count_VkPhysicalDeviceShaderDrawParametersFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderDrawParametersFeatures * toCount,size_t * count)3477 void count_VkPhysicalDeviceShaderDrawParametersFeatures(
3478     uint32_t featureBits, VkStructureType rootType,
3479     const VkPhysicalDeviceShaderDrawParametersFeatures* toCount, size_t* count) {
3480     (void)featureBits;
3481     (void)rootType;
3482     (void)toCount;
3483     (void)count;
3484     *count += sizeof(VkStructureType);
3485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3486         rootType = toCount->sType;
3487     }
3488     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3489     *count += sizeof(VkBool32);
3490 }
3491 
3492 #endif
3493 #ifdef VK_VERSION_1_2
count_VkPhysicalDeviceVulkan11Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan11Features * toCount,size_t * count)3494 void count_VkPhysicalDeviceVulkan11Features(uint32_t featureBits, VkStructureType rootType,
3495                                             const VkPhysicalDeviceVulkan11Features* toCount,
3496                                             size_t* count) {
3497     (void)featureBits;
3498     (void)rootType;
3499     (void)toCount;
3500     (void)count;
3501     *count += sizeof(VkStructureType);
3502     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3503         rootType = toCount->sType;
3504     }
3505     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3506     *count += sizeof(VkBool32);
3507     *count += sizeof(VkBool32);
3508     *count += sizeof(VkBool32);
3509     *count += sizeof(VkBool32);
3510     *count += sizeof(VkBool32);
3511     *count += sizeof(VkBool32);
3512     *count += sizeof(VkBool32);
3513     *count += sizeof(VkBool32);
3514     *count += sizeof(VkBool32);
3515     *count += sizeof(VkBool32);
3516     *count += sizeof(VkBool32);
3517     *count += sizeof(VkBool32);
3518 }
3519 
count_VkPhysicalDeviceVulkan11Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan11Properties * toCount,size_t * count)3520 void count_VkPhysicalDeviceVulkan11Properties(uint32_t featureBits, VkStructureType rootType,
3521                                               const VkPhysicalDeviceVulkan11Properties* toCount,
3522                                               size_t* count) {
3523     (void)featureBits;
3524     (void)rootType;
3525     (void)toCount;
3526     (void)count;
3527     *count += sizeof(VkStructureType);
3528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3529         rootType = toCount->sType;
3530     }
3531     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3532     *count += VK_UUID_SIZE * sizeof(uint8_t);
3533     *count += VK_UUID_SIZE * sizeof(uint8_t);
3534     *count += VK_LUID_SIZE * sizeof(uint8_t);
3535     *count += sizeof(uint32_t);
3536     *count += sizeof(VkBool32);
3537     *count += sizeof(uint32_t);
3538     *count += sizeof(VkShaderStageFlags);
3539     *count += sizeof(VkSubgroupFeatureFlags);
3540     *count += sizeof(VkBool32);
3541     *count += sizeof(VkPointClippingBehavior);
3542     *count += sizeof(uint32_t);
3543     *count += sizeof(uint32_t);
3544     *count += sizeof(VkBool32);
3545     *count += sizeof(uint32_t);
3546     *count += sizeof(VkDeviceSize);
3547 }
3548 
count_VkPhysicalDeviceVulkan12Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan12Features * toCount,size_t * count)3549 void count_VkPhysicalDeviceVulkan12Features(uint32_t featureBits, VkStructureType rootType,
3550                                             const VkPhysicalDeviceVulkan12Features* toCount,
3551                                             size_t* count) {
3552     (void)featureBits;
3553     (void)rootType;
3554     (void)toCount;
3555     (void)count;
3556     *count += sizeof(VkStructureType);
3557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3558         rootType = toCount->sType;
3559     }
3560     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3561     *count += sizeof(VkBool32);
3562     *count += sizeof(VkBool32);
3563     *count += sizeof(VkBool32);
3564     *count += sizeof(VkBool32);
3565     *count += sizeof(VkBool32);
3566     *count += sizeof(VkBool32);
3567     *count += sizeof(VkBool32);
3568     *count += sizeof(VkBool32);
3569     *count += sizeof(VkBool32);
3570     *count += sizeof(VkBool32);
3571     *count += sizeof(VkBool32);
3572     *count += sizeof(VkBool32);
3573     *count += sizeof(VkBool32);
3574     *count += sizeof(VkBool32);
3575     *count += sizeof(VkBool32);
3576     *count += sizeof(VkBool32);
3577     *count += sizeof(VkBool32);
3578     *count += sizeof(VkBool32);
3579     *count += sizeof(VkBool32);
3580     *count += sizeof(VkBool32);
3581     *count += sizeof(VkBool32);
3582     *count += sizeof(VkBool32);
3583     *count += sizeof(VkBool32);
3584     *count += sizeof(VkBool32);
3585     *count += sizeof(VkBool32);
3586     *count += sizeof(VkBool32);
3587     *count += sizeof(VkBool32);
3588     *count += sizeof(VkBool32);
3589     *count += sizeof(VkBool32);
3590     *count += sizeof(VkBool32);
3591     *count += sizeof(VkBool32);
3592     *count += sizeof(VkBool32);
3593     *count += sizeof(VkBool32);
3594     *count += sizeof(VkBool32);
3595     *count += sizeof(VkBool32);
3596     *count += sizeof(VkBool32);
3597     *count += sizeof(VkBool32);
3598     *count += sizeof(VkBool32);
3599     *count += sizeof(VkBool32);
3600     *count += sizeof(VkBool32);
3601     *count += sizeof(VkBool32);
3602     *count += sizeof(VkBool32);
3603     *count += sizeof(VkBool32);
3604     *count += sizeof(VkBool32);
3605     *count += sizeof(VkBool32);
3606     *count += sizeof(VkBool32);
3607     *count += sizeof(VkBool32);
3608 }
3609 
count_VkConformanceVersion(uint32_t featureBits,VkStructureType rootType,const VkConformanceVersion * toCount,size_t * count)3610 void count_VkConformanceVersion(uint32_t featureBits, VkStructureType rootType,
3611                                 const VkConformanceVersion* toCount, size_t* count) {
3612     (void)featureBits;
3613     (void)rootType;
3614     (void)toCount;
3615     (void)count;
3616     *count += sizeof(uint8_t);
3617     *count += sizeof(uint8_t);
3618     *count += sizeof(uint8_t);
3619     *count += sizeof(uint8_t);
3620 }
3621 
count_VkPhysicalDeviceVulkan12Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan12Properties * toCount,size_t * count)3622 void count_VkPhysicalDeviceVulkan12Properties(uint32_t featureBits, VkStructureType rootType,
3623                                               const VkPhysicalDeviceVulkan12Properties* toCount,
3624                                               size_t* count) {
3625     (void)featureBits;
3626     (void)rootType;
3627     (void)toCount;
3628     (void)count;
3629     *count += sizeof(VkStructureType);
3630     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3631         rootType = toCount->sType;
3632     }
3633     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3634     *count += sizeof(VkDriverId);
3635     *count += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
3636     *count += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
3637     count_VkConformanceVersion(featureBits, rootType,
3638                                (VkConformanceVersion*)(&toCount->conformanceVersion), count);
3639     *count += sizeof(VkShaderFloatControlsIndependence);
3640     *count += sizeof(VkShaderFloatControlsIndependence);
3641     *count += sizeof(VkBool32);
3642     *count += sizeof(VkBool32);
3643     *count += sizeof(VkBool32);
3644     *count += sizeof(VkBool32);
3645     *count += sizeof(VkBool32);
3646     *count += sizeof(VkBool32);
3647     *count += sizeof(VkBool32);
3648     *count += sizeof(VkBool32);
3649     *count += sizeof(VkBool32);
3650     *count += sizeof(VkBool32);
3651     *count += sizeof(VkBool32);
3652     *count += sizeof(VkBool32);
3653     *count += sizeof(VkBool32);
3654     *count += sizeof(VkBool32);
3655     *count += sizeof(VkBool32);
3656     *count += sizeof(uint32_t);
3657     *count += sizeof(VkBool32);
3658     *count += sizeof(VkBool32);
3659     *count += sizeof(VkBool32);
3660     *count += sizeof(VkBool32);
3661     *count += sizeof(VkBool32);
3662     *count += sizeof(VkBool32);
3663     *count += sizeof(VkBool32);
3664     *count += sizeof(uint32_t);
3665     *count += sizeof(uint32_t);
3666     *count += sizeof(uint32_t);
3667     *count += sizeof(uint32_t);
3668     *count += sizeof(uint32_t);
3669     *count += sizeof(uint32_t);
3670     *count += sizeof(uint32_t);
3671     *count += sizeof(uint32_t);
3672     *count += sizeof(uint32_t);
3673     *count += sizeof(uint32_t);
3674     *count += sizeof(uint32_t);
3675     *count += sizeof(uint32_t);
3676     *count += sizeof(uint32_t);
3677     *count += sizeof(uint32_t);
3678     *count += sizeof(uint32_t);
3679     *count += sizeof(VkResolveModeFlags);
3680     *count += sizeof(VkResolveModeFlags);
3681     *count += sizeof(VkBool32);
3682     *count += sizeof(VkBool32);
3683     *count += sizeof(VkBool32);
3684     *count += sizeof(VkBool32);
3685     *count += sizeof(uint64_t);
3686     *count += sizeof(VkSampleCountFlags);
3687 }
3688 
count_VkImageFormatListCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkImageFormatListCreateInfo * toCount,size_t * count)3689 void count_VkImageFormatListCreateInfo(uint32_t featureBits, VkStructureType rootType,
3690                                        const VkImageFormatListCreateInfo* toCount, size_t* count) {
3691     (void)featureBits;
3692     (void)rootType;
3693     (void)toCount;
3694     (void)count;
3695     *count += sizeof(VkStructureType);
3696     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3697         rootType = toCount->sType;
3698     }
3699     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3700     *count += sizeof(uint32_t);
3701     if (toCount) {
3702         *count += toCount->viewFormatCount * sizeof(const VkFormat);
3703     }
3704 }
3705 
count_VkAttachmentDescription2(uint32_t featureBits,VkStructureType rootType,const VkAttachmentDescription2 * toCount,size_t * count)3706 void count_VkAttachmentDescription2(uint32_t featureBits, VkStructureType rootType,
3707                                     const VkAttachmentDescription2* toCount, size_t* count) {
3708     (void)featureBits;
3709     (void)rootType;
3710     (void)toCount;
3711     (void)count;
3712     *count += sizeof(VkStructureType);
3713     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3714         rootType = toCount->sType;
3715     }
3716     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3717     *count += sizeof(VkAttachmentDescriptionFlags);
3718     *count += sizeof(VkFormat);
3719     *count += sizeof(VkSampleCountFlagBits);
3720     *count += sizeof(VkAttachmentLoadOp);
3721     *count += sizeof(VkAttachmentStoreOp);
3722     *count += sizeof(VkAttachmentLoadOp);
3723     *count += sizeof(VkAttachmentStoreOp);
3724     *count += sizeof(VkImageLayout);
3725     *count += sizeof(VkImageLayout);
3726 }
3727 
count_VkAttachmentReference2(uint32_t featureBits,VkStructureType rootType,const VkAttachmentReference2 * toCount,size_t * count)3728 void count_VkAttachmentReference2(uint32_t featureBits, VkStructureType rootType,
3729                                   const VkAttachmentReference2* toCount, size_t* count) {
3730     (void)featureBits;
3731     (void)rootType;
3732     (void)toCount;
3733     (void)count;
3734     *count += sizeof(VkStructureType);
3735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3736         rootType = toCount->sType;
3737     }
3738     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3739     *count += sizeof(uint32_t);
3740     *count += sizeof(VkImageLayout);
3741     *count += sizeof(VkImageAspectFlags);
3742 }
3743 
count_VkSubpassDescription2(uint32_t featureBits,VkStructureType rootType,const VkSubpassDescription2 * toCount,size_t * count)3744 void count_VkSubpassDescription2(uint32_t featureBits, VkStructureType rootType,
3745                                  const VkSubpassDescription2* toCount, size_t* count) {
3746     (void)featureBits;
3747     (void)rootType;
3748     (void)toCount;
3749     (void)count;
3750     *count += sizeof(VkStructureType);
3751     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3752         rootType = toCount->sType;
3753     }
3754     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3755     *count += sizeof(VkSubpassDescriptionFlags);
3756     *count += sizeof(VkPipelineBindPoint);
3757     *count += sizeof(uint32_t);
3758     *count += sizeof(uint32_t);
3759     if (toCount) {
3760         for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i) {
3761             count_VkAttachmentReference2(
3762                 featureBits, rootType,
3763                 (const VkAttachmentReference2*)(toCount->pInputAttachments + i), count);
3764         }
3765     }
3766     *count += sizeof(uint32_t);
3767     if (toCount) {
3768         for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i) {
3769             count_VkAttachmentReference2(
3770                 featureBits, rootType,
3771                 (const VkAttachmentReference2*)(toCount->pColorAttachments + i), count);
3772         }
3773     }
3774     // WARNING PTR CHECK
3775     *count += 8;
3776     if (toCount->pResolveAttachments) {
3777         if (toCount) {
3778             for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i) {
3779                 count_VkAttachmentReference2(
3780                     featureBits, rootType,
3781                     (const VkAttachmentReference2*)(toCount->pResolveAttachments + i), count);
3782             }
3783         }
3784     }
3785     // WARNING PTR CHECK
3786     *count += 8;
3787     if (toCount->pDepthStencilAttachment) {
3788         count_VkAttachmentReference2(
3789             featureBits, rootType,
3790             (const VkAttachmentReference2*)(toCount->pDepthStencilAttachment), count);
3791     }
3792     *count += sizeof(uint32_t);
3793     if (toCount) {
3794         *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
3795     }
3796 }
3797 
count_VkSubpassDependency2(uint32_t featureBits,VkStructureType rootType,const VkSubpassDependency2 * toCount,size_t * count)3798 void count_VkSubpassDependency2(uint32_t featureBits, VkStructureType rootType,
3799                                 const VkSubpassDependency2* toCount, size_t* count) {
3800     (void)featureBits;
3801     (void)rootType;
3802     (void)toCount;
3803     (void)count;
3804     *count += sizeof(VkStructureType);
3805     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3806         rootType = toCount->sType;
3807     }
3808     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3809     *count += sizeof(uint32_t);
3810     *count += sizeof(uint32_t);
3811     *count += sizeof(VkPipelineStageFlags);
3812     *count += sizeof(VkPipelineStageFlags);
3813     *count += sizeof(VkAccessFlags);
3814     *count += sizeof(VkAccessFlags);
3815     *count += sizeof(VkDependencyFlags);
3816     *count += sizeof(int32_t);
3817 }
3818 
count_VkRenderPassCreateInfo2(uint32_t featureBits,VkStructureType rootType,const VkRenderPassCreateInfo2 * toCount,size_t * count)3819 void count_VkRenderPassCreateInfo2(uint32_t featureBits, VkStructureType rootType,
3820                                    const VkRenderPassCreateInfo2* toCount, size_t* count) {
3821     (void)featureBits;
3822     (void)rootType;
3823     (void)toCount;
3824     (void)count;
3825     *count += sizeof(VkStructureType);
3826     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3827         rootType = toCount->sType;
3828     }
3829     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3830     *count += sizeof(VkRenderPassCreateFlags);
3831     *count += sizeof(uint32_t);
3832     if (toCount) {
3833         for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i) {
3834             count_VkAttachmentDescription2(
3835                 featureBits, rootType, (const VkAttachmentDescription2*)(toCount->pAttachments + i),
3836                 count);
3837         }
3838     }
3839     *count += sizeof(uint32_t);
3840     if (toCount) {
3841         for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i) {
3842             count_VkSubpassDescription2(featureBits, rootType,
3843                                         (const VkSubpassDescription2*)(toCount->pSubpasses + i),
3844                                         count);
3845         }
3846     }
3847     *count += sizeof(uint32_t);
3848     if (toCount) {
3849         for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i) {
3850             count_VkSubpassDependency2(featureBits, rootType,
3851                                        (const VkSubpassDependency2*)(toCount->pDependencies + i),
3852                                        count);
3853         }
3854     }
3855     *count += sizeof(uint32_t);
3856     if (toCount) {
3857         *count += toCount->correlatedViewMaskCount * sizeof(const uint32_t);
3858     }
3859 }
3860 
count_VkSubpassBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkSubpassBeginInfo * toCount,size_t * count)3861 void count_VkSubpassBeginInfo(uint32_t featureBits, VkStructureType rootType,
3862                               const VkSubpassBeginInfo* toCount, size_t* count) {
3863     (void)featureBits;
3864     (void)rootType;
3865     (void)toCount;
3866     (void)count;
3867     *count += sizeof(VkStructureType);
3868     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3869         rootType = toCount->sType;
3870     }
3871     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3872     *count += sizeof(VkSubpassContents);
3873 }
3874 
count_VkSubpassEndInfo(uint32_t featureBits,VkStructureType rootType,const VkSubpassEndInfo * toCount,size_t * count)3875 void count_VkSubpassEndInfo(uint32_t featureBits, VkStructureType rootType,
3876                             const VkSubpassEndInfo* toCount, size_t* count) {
3877     (void)featureBits;
3878     (void)rootType;
3879     (void)toCount;
3880     (void)count;
3881     *count += sizeof(VkStructureType);
3882     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3883         rootType = toCount->sType;
3884     }
3885     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3886 }
3887 
count_VkPhysicalDevice8BitStorageFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevice8BitStorageFeatures * toCount,size_t * count)3888 void count_VkPhysicalDevice8BitStorageFeatures(uint32_t featureBits, VkStructureType rootType,
3889                                                const VkPhysicalDevice8BitStorageFeatures* toCount,
3890                                                size_t* count) {
3891     (void)featureBits;
3892     (void)rootType;
3893     (void)toCount;
3894     (void)count;
3895     *count += sizeof(VkStructureType);
3896     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3897         rootType = toCount->sType;
3898     }
3899     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3900     *count += sizeof(VkBool32);
3901     *count += sizeof(VkBool32);
3902     *count += sizeof(VkBool32);
3903 }
3904 
count_VkPhysicalDeviceDriverProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDriverProperties * toCount,size_t * count)3905 void count_VkPhysicalDeviceDriverProperties(uint32_t featureBits, VkStructureType rootType,
3906                                             const VkPhysicalDeviceDriverProperties* toCount,
3907                                             size_t* count) {
3908     (void)featureBits;
3909     (void)rootType;
3910     (void)toCount;
3911     (void)count;
3912     *count += sizeof(VkStructureType);
3913     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3914         rootType = toCount->sType;
3915     }
3916     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3917     *count += sizeof(VkDriverId);
3918     *count += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
3919     *count += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
3920     count_VkConformanceVersion(featureBits, rootType,
3921                                (VkConformanceVersion*)(&toCount->conformanceVersion), count);
3922 }
3923 
count_VkPhysicalDeviceShaderAtomicInt64Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicInt64Features * toCount,size_t * count)3924 void count_VkPhysicalDeviceShaderAtomicInt64Features(
3925     uint32_t featureBits, VkStructureType rootType,
3926     const VkPhysicalDeviceShaderAtomicInt64Features* toCount, size_t* count) {
3927     (void)featureBits;
3928     (void)rootType;
3929     (void)toCount;
3930     (void)count;
3931     *count += sizeof(VkStructureType);
3932     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3933         rootType = toCount->sType;
3934     }
3935     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3936     *count += sizeof(VkBool32);
3937     *count += sizeof(VkBool32);
3938 }
3939 
count_VkPhysicalDeviceShaderFloat16Int8Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderFloat16Int8Features * toCount,size_t * count)3940 void count_VkPhysicalDeviceShaderFloat16Int8Features(
3941     uint32_t featureBits, VkStructureType rootType,
3942     const VkPhysicalDeviceShaderFloat16Int8Features* toCount, size_t* count) {
3943     (void)featureBits;
3944     (void)rootType;
3945     (void)toCount;
3946     (void)count;
3947     *count += sizeof(VkStructureType);
3948     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3949         rootType = toCount->sType;
3950     }
3951     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3952     *count += sizeof(VkBool32);
3953     *count += sizeof(VkBool32);
3954 }
3955 
count_VkPhysicalDeviceFloatControlsProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFloatControlsProperties * toCount,size_t * count)3956 void count_VkPhysicalDeviceFloatControlsProperties(
3957     uint32_t featureBits, VkStructureType rootType,
3958     const VkPhysicalDeviceFloatControlsProperties* toCount, size_t* count) {
3959     (void)featureBits;
3960     (void)rootType;
3961     (void)toCount;
3962     (void)count;
3963     *count += sizeof(VkStructureType);
3964     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3965         rootType = toCount->sType;
3966     }
3967     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3968     *count += sizeof(VkShaderFloatControlsIndependence);
3969     *count += sizeof(VkShaderFloatControlsIndependence);
3970     *count += sizeof(VkBool32);
3971     *count += sizeof(VkBool32);
3972     *count += sizeof(VkBool32);
3973     *count += sizeof(VkBool32);
3974     *count += sizeof(VkBool32);
3975     *count += sizeof(VkBool32);
3976     *count += sizeof(VkBool32);
3977     *count += sizeof(VkBool32);
3978     *count += sizeof(VkBool32);
3979     *count += sizeof(VkBool32);
3980     *count += sizeof(VkBool32);
3981     *count += sizeof(VkBool32);
3982     *count += sizeof(VkBool32);
3983     *count += sizeof(VkBool32);
3984     *count += sizeof(VkBool32);
3985 }
3986 
count_VkDescriptorSetLayoutBindingFlagsCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetLayoutBindingFlagsCreateInfo * toCount,size_t * count)3987 void count_VkDescriptorSetLayoutBindingFlagsCreateInfo(
3988     uint32_t featureBits, VkStructureType rootType,
3989     const VkDescriptorSetLayoutBindingFlagsCreateInfo* toCount, size_t* count) {
3990     (void)featureBits;
3991     (void)rootType;
3992     (void)toCount;
3993     (void)count;
3994     *count += sizeof(VkStructureType);
3995     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3996         rootType = toCount->sType;
3997     }
3998     count_extension_struct(featureBits, rootType, toCount->pNext, count);
3999     *count += sizeof(uint32_t);
4000     // WARNING PTR CHECK
4001     *count += 8;
4002     if (toCount->pBindingFlags) {
4003         if (toCount) {
4004             *count += toCount->bindingCount * sizeof(const VkDescriptorBindingFlags);
4005         }
4006     }
4007 }
4008 
count_VkPhysicalDeviceDescriptorIndexingFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingFeatures * toCount,size_t * count)4009 void count_VkPhysicalDeviceDescriptorIndexingFeatures(
4010     uint32_t featureBits, VkStructureType rootType,
4011     const VkPhysicalDeviceDescriptorIndexingFeatures* toCount, size_t* count) {
4012     (void)featureBits;
4013     (void)rootType;
4014     (void)toCount;
4015     (void)count;
4016     *count += sizeof(VkStructureType);
4017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4018         rootType = toCount->sType;
4019     }
4020     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4021     *count += sizeof(VkBool32);
4022     *count += sizeof(VkBool32);
4023     *count += sizeof(VkBool32);
4024     *count += sizeof(VkBool32);
4025     *count += sizeof(VkBool32);
4026     *count += sizeof(VkBool32);
4027     *count += sizeof(VkBool32);
4028     *count += sizeof(VkBool32);
4029     *count += sizeof(VkBool32);
4030     *count += sizeof(VkBool32);
4031     *count += sizeof(VkBool32);
4032     *count += sizeof(VkBool32);
4033     *count += sizeof(VkBool32);
4034     *count += sizeof(VkBool32);
4035     *count += sizeof(VkBool32);
4036     *count += sizeof(VkBool32);
4037     *count += sizeof(VkBool32);
4038     *count += sizeof(VkBool32);
4039     *count += sizeof(VkBool32);
4040     *count += sizeof(VkBool32);
4041 }
4042 
count_VkPhysicalDeviceDescriptorIndexingProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingProperties * toCount,size_t * count)4043 void count_VkPhysicalDeviceDescriptorIndexingProperties(
4044     uint32_t featureBits, VkStructureType rootType,
4045     const VkPhysicalDeviceDescriptorIndexingProperties* toCount, size_t* count) {
4046     (void)featureBits;
4047     (void)rootType;
4048     (void)toCount;
4049     (void)count;
4050     *count += sizeof(VkStructureType);
4051     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4052         rootType = toCount->sType;
4053     }
4054     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4055     *count += sizeof(uint32_t);
4056     *count += sizeof(VkBool32);
4057     *count += sizeof(VkBool32);
4058     *count += sizeof(VkBool32);
4059     *count += sizeof(VkBool32);
4060     *count += sizeof(VkBool32);
4061     *count += sizeof(VkBool32);
4062     *count += sizeof(VkBool32);
4063     *count += sizeof(uint32_t);
4064     *count += sizeof(uint32_t);
4065     *count += sizeof(uint32_t);
4066     *count += sizeof(uint32_t);
4067     *count += sizeof(uint32_t);
4068     *count += sizeof(uint32_t);
4069     *count += sizeof(uint32_t);
4070     *count += sizeof(uint32_t);
4071     *count += sizeof(uint32_t);
4072     *count += sizeof(uint32_t);
4073     *count += sizeof(uint32_t);
4074     *count += sizeof(uint32_t);
4075     *count += sizeof(uint32_t);
4076     *count += sizeof(uint32_t);
4077     *count += sizeof(uint32_t);
4078 }
4079 
count_VkDescriptorSetVariableDescriptorCountAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountAllocateInfo * toCount,size_t * count)4080 void count_VkDescriptorSetVariableDescriptorCountAllocateInfo(
4081     uint32_t featureBits, VkStructureType rootType,
4082     const VkDescriptorSetVariableDescriptorCountAllocateInfo* toCount, size_t* count) {
4083     (void)featureBits;
4084     (void)rootType;
4085     (void)toCount;
4086     (void)count;
4087     *count += sizeof(VkStructureType);
4088     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4089         rootType = toCount->sType;
4090     }
4091     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4092     *count += sizeof(uint32_t);
4093     if (toCount) {
4094         *count += toCount->descriptorSetCount * sizeof(const uint32_t);
4095     }
4096 }
4097 
count_VkDescriptorSetVariableDescriptorCountLayoutSupport(uint32_t featureBits,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountLayoutSupport * toCount,size_t * count)4098 void count_VkDescriptorSetVariableDescriptorCountLayoutSupport(
4099     uint32_t featureBits, VkStructureType rootType,
4100     const VkDescriptorSetVariableDescriptorCountLayoutSupport* toCount, size_t* count) {
4101     (void)featureBits;
4102     (void)rootType;
4103     (void)toCount;
4104     (void)count;
4105     *count += sizeof(VkStructureType);
4106     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4107         rootType = toCount->sType;
4108     }
4109     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4110     *count += sizeof(uint32_t);
4111 }
4112 
count_VkSubpassDescriptionDepthStencilResolve(uint32_t featureBits,VkStructureType rootType,const VkSubpassDescriptionDepthStencilResolve * toCount,size_t * count)4113 void count_VkSubpassDescriptionDepthStencilResolve(
4114     uint32_t featureBits, VkStructureType rootType,
4115     const VkSubpassDescriptionDepthStencilResolve* toCount, size_t* count) {
4116     (void)featureBits;
4117     (void)rootType;
4118     (void)toCount;
4119     (void)count;
4120     *count += sizeof(VkStructureType);
4121     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4122         rootType = toCount->sType;
4123     }
4124     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4125     *count += sizeof(VkResolveModeFlagBits);
4126     *count += sizeof(VkResolveModeFlagBits);
4127     // WARNING PTR CHECK
4128     *count += 8;
4129     if (toCount->pDepthStencilResolveAttachment) {
4130         count_VkAttachmentReference2(
4131             featureBits, rootType,
4132             (const VkAttachmentReference2*)(toCount->pDepthStencilResolveAttachment), count);
4133     }
4134 }
4135 
count_VkPhysicalDeviceDepthStencilResolveProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDepthStencilResolveProperties * toCount,size_t * count)4136 void count_VkPhysicalDeviceDepthStencilResolveProperties(
4137     uint32_t featureBits, VkStructureType rootType,
4138     const VkPhysicalDeviceDepthStencilResolveProperties* toCount, size_t* count) {
4139     (void)featureBits;
4140     (void)rootType;
4141     (void)toCount;
4142     (void)count;
4143     *count += sizeof(VkStructureType);
4144     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4145         rootType = toCount->sType;
4146     }
4147     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4148     *count += sizeof(VkResolveModeFlags);
4149     *count += sizeof(VkResolveModeFlags);
4150     *count += sizeof(VkBool32);
4151     *count += sizeof(VkBool32);
4152 }
4153 
count_VkPhysicalDeviceScalarBlockLayoutFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceScalarBlockLayoutFeatures * toCount,size_t * count)4154 void count_VkPhysicalDeviceScalarBlockLayoutFeatures(
4155     uint32_t featureBits, VkStructureType rootType,
4156     const VkPhysicalDeviceScalarBlockLayoutFeatures* toCount, size_t* count) {
4157     (void)featureBits;
4158     (void)rootType;
4159     (void)toCount;
4160     (void)count;
4161     *count += sizeof(VkStructureType);
4162     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4163         rootType = toCount->sType;
4164     }
4165     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4166     *count += sizeof(VkBool32);
4167 }
4168 
count_VkImageStencilUsageCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkImageStencilUsageCreateInfo * toCount,size_t * count)4169 void count_VkImageStencilUsageCreateInfo(uint32_t featureBits, VkStructureType rootType,
4170                                          const VkImageStencilUsageCreateInfo* toCount,
4171                                          size_t* count) {
4172     (void)featureBits;
4173     (void)rootType;
4174     (void)toCount;
4175     (void)count;
4176     *count += sizeof(VkStructureType);
4177     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4178         rootType = toCount->sType;
4179     }
4180     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4181     *count += sizeof(VkImageUsageFlags);
4182 }
4183 
count_VkSamplerReductionModeCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkSamplerReductionModeCreateInfo * toCount,size_t * count)4184 void count_VkSamplerReductionModeCreateInfo(uint32_t featureBits, VkStructureType rootType,
4185                                             const VkSamplerReductionModeCreateInfo* toCount,
4186                                             size_t* count) {
4187     (void)featureBits;
4188     (void)rootType;
4189     (void)toCount;
4190     (void)count;
4191     *count += sizeof(VkStructureType);
4192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4193         rootType = toCount->sType;
4194     }
4195     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4196     *count += sizeof(VkSamplerReductionMode);
4197 }
4198 
count_VkPhysicalDeviceSamplerFilterMinmaxProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSamplerFilterMinmaxProperties * toCount,size_t * count)4199 void count_VkPhysicalDeviceSamplerFilterMinmaxProperties(
4200     uint32_t featureBits, VkStructureType rootType,
4201     const VkPhysicalDeviceSamplerFilterMinmaxProperties* toCount, size_t* count) {
4202     (void)featureBits;
4203     (void)rootType;
4204     (void)toCount;
4205     (void)count;
4206     *count += sizeof(VkStructureType);
4207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4208         rootType = toCount->sType;
4209     }
4210     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4211     *count += sizeof(VkBool32);
4212     *count += sizeof(VkBool32);
4213 }
4214 
count_VkPhysicalDeviceVulkanMemoryModelFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkanMemoryModelFeatures * toCount,size_t * count)4215 void count_VkPhysicalDeviceVulkanMemoryModelFeatures(
4216     uint32_t featureBits, VkStructureType rootType,
4217     const VkPhysicalDeviceVulkanMemoryModelFeatures* toCount, size_t* count) {
4218     (void)featureBits;
4219     (void)rootType;
4220     (void)toCount;
4221     (void)count;
4222     *count += sizeof(VkStructureType);
4223     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4224         rootType = toCount->sType;
4225     }
4226     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4227     *count += sizeof(VkBool32);
4228     *count += sizeof(VkBool32);
4229     *count += sizeof(VkBool32);
4230 }
4231 
count_VkPhysicalDeviceImagelessFramebufferFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImagelessFramebufferFeatures * toCount,size_t * count)4232 void count_VkPhysicalDeviceImagelessFramebufferFeatures(
4233     uint32_t featureBits, VkStructureType rootType,
4234     const VkPhysicalDeviceImagelessFramebufferFeatures* toCount, size_t* count) {
4235     (void)featureBits;
4236     (void)rootType;
4237     (void)toCount;
4238     (void)count;
4239     *count += sizeof(VkStructureType);
4240     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4241         rootType = toCount->sType;
4242     }
4243     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4244     *count += sizeof(VkBool32);
4245 }
4246 
count_VkFramebufferAttachmentImageInfo(uint32_t featureBits,VkStructureType rootType,const VkFramebufferAttachmentImageInfo * toCount,size_t * count)4247 void count_VkFramebufferAttachmentImageInfo(uint32_t featureBits, VkStructureType rootType,
4248                                             const VkFramebufferAttachmentImageInfo* toCount,
4249                                             size_t* count) {
4250     (void)featureBits;
4251     (void)rootType;
4252     (void)toCount;
4253     (void)count;
4254     *count += sizeof(VkStructureType);
4255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4256         rootType = toCount->sType;
4257     }
4258     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4259     *count += sizeof(VkImageCreateFlags);
4260     *count += sizeof(VkImageUsageFlags);
4261     *count += sizeof(uint32_t);
4262     *count += sizeof(uint32_t);
4263     *count += sizeof(uint32_t);
4264     *count += sizeof(uint32_t);
4265     if (toCount) {
4266         *count += toCount->viewFormatCount * sizeof(const VkFormat);
4267     }
4268 }
4269 
count_VkFramebufferAttachmentsCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkFramebufferAttachmentsCreateInfo * toCount,size_t * count)4270 void count_VkFramebufferAttachmentsCreateInfo(uint32_t featureBits, VkStructureType rootType,
4271                                               const VkFramebufferAttachmentsCreateInfo* toCount,
4272                                               size_t* count) {
4273     (void)featureBits;
4274     (void)rootType;
4275     (void)toCount;
4276     (void)count;
4277     *count += sizeof(VkStructureType);
4278     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4279         rootType = toCount->sType;
4280     }
4281     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4282     *count += sizeof(uint32_t);
4283     if (toCount) {
4284         for (uint32_t i = 0; i < (uint32_t)toCount->attachmentImageInfoCount; ++i) {
4285             count_VkFramebufferAttachmentImageInfo(
4286                 featureBits, rootType,
4287                 (const VkFramebufferAttachmentImageInfo*)(toCount->pAttachmentImageInfos + i),
4288                 count);
4289         }
4290     }
4291 }
4292 
count_VkRenderPassAttachmentBeginInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderPassAttachmentBeginInfo * toCount,size_t * count)4293 void count_VkRenderPassAttachmentBeginInfo(uint32_t featureBits, VkStructureType rootType,
4294                                            const VkRenderPassAttachmentBeginInfo* toCount,
4295                                            size_t* count) {
4296     (void)featureBits;
4297     (void)rootType;
4298     (void)toCount;
4299     (void)count;
4300     *count += sizeof(VkStructureType);
4301     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4302         rootType = toCount->sType;
4303     }
4304     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4305     *count += sizeof(uint32_t);
4306     if (toCount->attachmentCount) {
4307         *count += toCount->attachmentCount * 8;
4308     }
4309 }
4310 
count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * toCount,size_t * count)4311 void count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
4312     uint32_t featureBits, VkStructureType rootType,
4313     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toCount, size_t* count) {
4314     (void)featureBits;
4315     (void)rootType;
4316     (void)toCount;
4317     (void)count;
4318     *count += sizeof(VkStructureType);
4319     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4320         rootType = toCount->sType;
4321     }
4322     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4323     *count += sizeof(VkBool32);
4324 }
4325 
count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * toCount,size_t * count)4326 void count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
4327     uint32_t featureBits, VkStructureType rootType,
4328     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toCount, size_t* count) {
4329     (void)featureBits;
4330     (void)rootType;
4331     (void)toCount;
4332     (void)count;
4333     *count += sizeof(VkStructureType);
4334     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4335         rootType = toCount->sType;
4336     }
4337     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4338     *count += sizeof(VkBool32);
4339 }
4340 
count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * toCount,size_t * count)4341 void count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
4342     uint32_t featureBits, VkStructureType rootType,
4343     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toCount, size_t* count) {
4344     (void)featureBits;
4345     (void)rootType;
4346     (void)toCount;
4347     (void)count;
4348     *count += sizeof(VkStructureType);
4349     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4350         rootType = toCount->sType;
4351     }
4352     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4353     *count += sizeof(VkBool32);
4354 }
4355 
count_VkAttachmentReferenceStencilLayout(uint32_t featureBits,VkStructureType rootType,const VkAttachmentReferenceStencilLayout * toCount,size_t * count)4356 void count_VkAttachmentReferenceStencilLayout(uint32_t featureBits, VkStructureType rootType,
4357                                               const VkAttachmentReferenceStencilLayout* toCount,
4358                                               size_t* count) {
4359     (void)featureBits;
4360     (void)rootType;
4361     (void)toCount;
4362     (void)count;
4363     *count += sizeof(VkStructureType);
4364     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4365         rootType = toCount->sType;
4366     }
4367     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4368     *count += sizeof(VkImageLayout);
4369 }
4370 
count_VkAttachmentDescriptionStencilLayout(uint32_t featureBits,VkStructureType rootType,const VkAttachmentDescriptionStencilLayout * toCount,size_t * count)4371 void count_VkAttachmentDescriptionStencilLayout(uint32_t featureBits, VkStructureType rootType,
4372                                                 const VkAttachmentDescriptionStencilLayout* toCount,
4373                                                 size_t* count) {
4374     (void)featureBits;
4375     (void)rootType;
4376     (void)toCount;
4377     (void)count;
4378     *count += sizeof(VkStructureType);
4379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4380         rootType = toCount->sType;
4381     }
4382     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4383     *count += sizeof(VkImageLayout);
4384     *count += sizeof(VkImageLayout);
4385 }
4386 
count_VkPhysicalDeviceHostQueryResetFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceHostQueryResetFeatures * toCount,size_t * count)4387 void count_VkPhysicalDeviceHostQueryResetFeatures(
4388     uint32_t featureBits, VkStructureType rootType,
4389     const VkPhysicalDeviceHostQueryResetFeatures* toCount, size_t* count) {
4390     (void)featureBits;
4391     (void)rootType;
4392     (void)toCount;
4393     (void)count;
4394     *count += sizeof(VkStructureType);
4395     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4396         rootType = toCount->sType;
4397     }
4398     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4399     *count += sizeof(VkBool32);
4400 }
4401 
count_VkPhysicalDeviceTimelineSemaphoreFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreFeatures * toCount,size_t * count)4402 void count_VkPhysicalDeviceTimelineSemaphoreFeatures(
4403     uint32_t featureBits, VkStructureType rootType,
4404     const VkPhysicalDeviceTimelineSemaphoreFeatures* toCount, size_t* count) {
4405     (void)featureBits;
4406     (void)rootType;
4407     (void)toCount;
4408     (void)count;
4409     *count += sizeof(VkStructureType);
4410     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4411         rootType = toCount->sType;
4412     }
4413     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4414     *count += sizeof(VkBool32);
4415 }
4416 
count_VkPhysicalDeviceTimelineSemaphoreProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreProperties * toCount,size_t * count)4417 void count_VkPhysicalDeviceTimelineSemaphoreProperties(
4418     uint32_t featureBits, VkStructureType rootType,
4419     const VkPhysicalDeviceTimelineSemaphoreProperties* toCount, size_t* count) {
4420     (void)featureBits;
4421     (void)rootType;
4422     (void)toCount;
4423     (void)count;
4424     *count += sizeof(VkStructureType);
4425     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4426         rootType = toCount->sType;
4427     }
4428     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4429     *count += sizeof(uint64_t);
4430 }
4431 
count_VkSemaphoreTypeCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreTypeCreateInfo * toCount,size_t * count)4432 void count_VkSemaphoreTypeCreateInfo(uint32_t featureBits, VkStructureType rootType,
4433                                      const VkSemaphoreTypeCreateInfo* toCount, size_t* count) {
4434     (void)featureBits;
4435     (void)rootType;
4436     (void)toCount;
4437     (void)count;
4438     *count += sizeof(VkStructureType);
4439     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4440         rootType = toCount->sType;
4441     }
4442     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4443     *count += sizeof(VkSemaphoreType);
4444     *count += sizeof(uint64_t);
4445 }
4446 
count_VkTimelineSemaphoreSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkTimelineSemaphoreSubmitInfo * toCount,size_t * count)4447 void count_VkTimelineSemaphoreSubmitInfo(uint32_t featureBits, VkStructureType rootType,
4448                                          const VkTimelineSemaphoreSubmitInfo* toCount,
4449                                          size_t* count) {
4450     (void)featureBits;
4451     (void)rootType;
4452     (void)toCount;
4453     (void)count;
4454     *count += sizeof(VkStructureType);
4455     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4456         rootType = toCount->sType;
4457     }
4458     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4459     *count += sizeof(uint32_t);
4460     // WARNING PTR CHECK
4461     *count += 8;
4462     if (toCount->pWaitSemaphoreValues) {
4463         if (toCount) {
4464             *count += toCount->waitSemaphoreValueCount * sizeof(const uint64_t);
4465         }
4466     }
4467     *count += sizeof(uint32_t);
4468     // WARNING PTR CHECK
4469     *count += 8;
4470     if (toCount->pSignalSemaphoreValues) {
4471         if (toCount) {
4472             *count += toCount->signalSemaphoreValueCount * sizeof(const uint64_t);
4473         }
4474     }
4475 }
4476 
count_VkSemaphoreWaitInfo(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreWaitInfo * toCount,size_t * count)4477 void count_VkSemaphoreWaitInfo(uint32_t featureBits, VkStructureType rootType,
4478                                const VkSemaphoreWaitInfo* toCount, size_t* count) {
4479     (void)featureBits;
4480     (void)rootType;
4481     (void)toCount;
4482     (void)count;
4483     *count += sizeof(VkStructureType);
4484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4485         rootType = toCount->sType;
4486     }
4487     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4488     *count += sizeof(VkSemaphoreWaitFlags);
4489     *count += sizeof(uint32_t);
4490     if (toCount->semaphoreCount) {
4491         *count += toCount->semaphoreCount * 8;
4492     }
4493     if (toCount) {
4494         *count += toCount->semaphoreCount * sizeof(const uint64_t);
4495     }
4496 }
4497 
count_VkSemaphoreSignalInfo(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreSignalInfo * toCount,size_t * count)4498 void count_VkSemaphoreSignalInfo(uint32_t featureBits, VkStructureType rootType,
4499                                  const VkSemaphoreSignalInfo* toCount, size_t* count) {
4500     (void)featureBits;
4501     (void)rootType;
4502     (void)toCount;
4503     (void)count;
4504     *count += sizeof(VkStructureType);
4505     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4506         rootType = toCount->sType;
4507     }
4508     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4509     uint64_t cgen_var_0;
4510     *count += 1 * 8;
4511     *count += sizeof(uint64_t);
4512 }
4513 
count_VkPhysicalDeviceBufferDeviceAddressFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceBufferDeviceAddressFeatures * toCount,size_t * count)4514 void count_VkPhysicalDeviceBufferDeviceAddressFeatures(
4515     uint32_t featureBits, VkStructureType rootType,
4516     const VkPhysicalDeviceBufferDeviceAddressFeatures* toCount, size_t* count) {
4517     (void)featureBits;
4518     (void)rootType;
4519     (void)toCount;
4520     (void)count;
4521     *count += sizeof(VkStructureType);
4522     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4523         rootType = toCount->sType;
4524     }
4525     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4526     *count += sizeof(VkBool32);
4527     *count += sizeof(VkBool32);
4528     *count += sizeof(VkBool32);
4529 }
4530 
count_VkBufferDeviceAddressInfo(uint32_t featureBits,VkStructureType rootType,const VkBufferDeviceAddressInfo * toCount,size_t * count)4531 void count_VkBufferDeviceAddressInfo(uint32_t featureBits, VkStructureType rootType,
4532                                      const VkBufferDeviceAddressInfo* toCount, size_t* count) {
4533     (void)featureBits;
4534     (void)rootType;
4535     (void)toCount;
4536     (void)count;
4537     *count += sizeof(VkStructureType);
4538     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4539         rootType = toCount->sType;
4540     }
4541     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4542     uint64_t cgen_var_0;
4543     *count += 1 * 8;
4544 }
4545 
count_VkBufferOpaqueCaptureAddressCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkBufferOpaqueCaptureAddressCreateInfo * toCount,size_t * count)4546 void count_VkBufferOpaqueCaptureAddressCreateInfo(
4547     uint32_t featureBits, VkStructureType rootType,
4548     const VkBufferOpaqueCaptureAddressCreateInfo* toCount, size_t* count) {
4549     (void)featureBits;
4550     (void)rootType;
4551     (void)toCount;
4552     (void)count;
4553     *count += sizeof(VkStructureType);
4554     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4555         rootType = toCount->sType;
4556     }
4557     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4558     *count += sizeof(uint64_t);
4559 }
4560 
count_VkMemoryOpaqueCaptureAddressAllocateInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryOpaqueCaptureAddressAllocateInfo * toCount,size_t * count)4561 void count_VkMemoryOpaqueCaptureAddressAllocateInfo(
4562     uint32_t featureBits, VkStructureType rootType,
4563     const VkMemoryOpaqueCaptureAddressAllocateInfo* toCount, size_t* count) {
4564     (void)featureBits;
4565     (void)rootType;
4566     (void)toCount;
4567     (void)count;
4568     *count += sizeof(VkStructureType);
4569     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4570         rootType = toCount->sType;
4571     }
4572     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4573     *count += sizeof(uint64_t);
4574 }
4575 
count_VkDeviceMemoryOpaqueCaptureAddressInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceMemoryOpaqueCaptureAddressInfo * toCount,size_t * count)4576 void count_VkDeviceMemoryOpaqueCaptureAddressInfo(
4577     uint32_t featureBits, VkStructureType rootType,
4578     const VkDeviceMemoryOpaqueCaptureAddressInfo* toCount, size_t* count) {
4579     (void)featureBits;
4580     (void)rootType;
4581     (void)toCount;
4582     (void)count;
4583     *count += sizeof(VkStructureType);
4584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4585         rootType = toCount->sType;
4586     }
4587     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4588     uint64_t cgen_var_0;
4589     *count += 1 * 8;
4590 }
4591 
4592 #endif
4593 #ifdef VK_VERSION_1_3
count_VkPhysicalDeviceVulkan13Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan13Features * toCount,size_t * count)4594 void count_VkPhysicalDeviceVulkan13Features(uint32_t featureBits, VkStructureType rootType,
4595                                             const VkPhysicalDeviceVulkan13Features* toCount,
4596                                             size_t* count) {
4597     (void)featureBits;
4598     (void)rootType;
4599     (void)toCount;
4600     (void)count;
4601     *count += sizeof(VkStructureType);
4602     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4603         rootType = toCount->sType;
4604     }
4605     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4606     *count += sizeof(VkBool32);
4607     *count += sizeof(VkBool32);
4608     *count += sizeof(VkBool32);
4609     *count += sizeof(VkBool32);
4610     *count += sizeof(VkBool32);
4611     *count += sizeof(VkBool32);
4612     *count += sizeof(VkBool32);
4613     *count += sizeof(VkBool32);
4614     *count += sizeof(VkBool32);
4615     *count += sizeof(VkBool32);
4616     *count += sizeof(VkBool32);
4617     *count += sizeof(VkBool32);
4618     *count += sizeof(VkBool32);
4619     *count += sizeof(VkBool32);
4620     *count += sizeof(VkBool32);
4621 }
4622 
count_VkPhysicalDeviceVulkan13Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan13Properties * toCount,size_t * count)4623 void count_VkPhysicalDeviceVulkan13Properties(uint32_t featureBits, VkStructureType rootType,
4624                                               const VkPhysicalDeviceVulkan13Properties* toCount,
4625                                               size_t* count) {
4626     (void)featureBits;
4627     (void)rootType;
4628     (void)toCount;
4629     (void)count;
4630     *count += sizeof(VkStructureType);
4631     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4632         rootType = toCount->sType;
4633     }
4634     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4635     *count += sizeof(uint32_t);
4636     *count += sizeof(uint32_t);
4637     *count += sizeof(uint32_t);
4638     *count += sizeof(VkShaderStageFlags);
4639     *count += sizeof(uint32_t);
4640     *count += sizeof(uint32_t);
4641     *count += sizeof(uint32_t);
4642     *count += sizeof(uint32_t);
4643     *count += sizeof(uint32_t);
4644     *count += sizeof(uint32_t);
4645     *count += sizeof(VkBool32);
4646     *count += sizeof(VkBool32);
4647     *count += sizeof(VkBool32);
4648     *count += sizeof(VkBool32);
4649     *count += sizeof(VkBool32);
4650     *count += sizeof(VkBool32);
4651     *count += sizeof(VkBool32);
4652     *count += sizeof(VkBool32);
4653     *count += sizeof(VkBool32);
4654     *count += sizeof(VkBool32);
4655     *count += sizeof(VkBool32);
4656     *count += sizeof(VkBool32);
4657     *count += sizeof(VkBool32);
4658     *count += sizeof(VkBool32);
4659     *count += sizeof(VkBool32);
4660     *count += sizeof(VkBool32);
4661     *count += sizeof(VkBool32);
4662     *count += sizeof(VkBool32);
4663     *count += sizeof(VkBool32);
4664     *count += sizeof(VkBool32);
4665     *count += sizeof(VkBool32);
4666     *count += sizeof(VkBool32);
4667     *count += sizeof(VkBool32);
4668     *count += sizeof(VkBool32);
4669     *count += sizeof(VkBool32);
4670     *count += sizeof(VkBool32);
4671     *count += sizeof(VkBool32);
4672     *count += sizeof(VkBool32);
4673     *count += sizeof(VkBool32);
4674     *count += sizeof(VkBool32);
4675     *count += sizeof(VkDeviceSize);
4676     *count += sizeof(VkBool32);
4677     *count += sizeof(VkDeviceSize);
4678     *count += sizeof(VkBool32);
4679     *count += sizeof(VkDeviceSize);
4680 }
4681 
count_VkPipelineCreationFeedback(uint32_t featureBits,VkStructureType rootType,const VkPipelineCreationFeedback * toCount,size_t * count)4682 void count_VkPipelineCreationFeedback(uint32_t featureBits, VkStructureType rootType,
4683                                       const VkPipelineCreationFeedback* toCount, size_t* count) {
4684     (void)featureBits;
4685     (void)rootType;
4686     (void)toCount;
4687     (void)count;
4688     *count += sizeof(VkPipelineCreationFeedbackFlags);
4689     *count += sizeof(uint64_t);
4690 }
4691 
count_VkPipelineCreationFeedbackCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineCreationFeedbackCreateInfo * toCount,size_t * count)4692 void count_VkPipelineCreationFeedbackCreateInfo(uint32_t featureBits, VkStructureType rootType,
4693                                                 const VkPipelineCreationFeedbackCreateInfo* toCount,
4694                                                 size_t* count) {
4695     (void)featureBits;
4696     (void)rootType;
4697     (void)toCount;
4698     (void)count;
4699     *count += sizeof(VkStructureType);
4700     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4701         rootType = toCount->sType;
4702     }
4703     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4704     count_VkPipelineCreationFeedback(
4705         featureBits, rootType, (VkPipelineCreationFeedback*)(toCount->pPipelineCreationFeedback),
4706         count);
4707     *count += sizeof(uint32_t);
4708     if (toCount) {
4709         for (uint32_t i = 0; i < (uint32_t)toCount->pipelineStageCreationFeedbackCount; ++i) {
4710             count_VkPipelineCreationFeedback(
4711                 featureBits, rootType,
4712                 (VkPipelineCreationFeedback*)(toCount->pPipelineStageCreationFeedbacks + i), count);
4713         }
4714     }
4715 }
4716 
count_VkPhysicalDeviceShaderTerminateInvocationFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderTerminateInvocationFeatures * toCount,size_t * count)4717 void count_VkPhysicalDeviceShaderTerminateInvocationFeatures(
4718     uint32_t featureBits, VkStructureType rootType,
4719     const VkPhysicalDeviceShaderTerminateInvocationFeatures* toCount, size_t* count) {
4720     (void)featureBits;
4721     (void)rootType;
4722     (void)toCount;
4723     (void)count;
4724     *count += sizeof(VkStructureType);
4725     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4726         rootType = toCount->sType;
4727     }
4728     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4729     *count += sizeof(VkBool32);
4730 }
4731 
count_VkPhysicalDeviceToolProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceToolProperties * toCount,size_t * count)4732 void count_VkPhysicalDeviceToolProperties(uint32_t featureBits, VkStructureType rootType,
4733                                           const VkPhysicalDeviceToolProperties* toCount,
4734                                           size_t* count) {
4735     (void)featureBits;
4736     (void)rootType;
4737     (void)toCount;
4738     (void)count;
4739     *count += sizeof(VkStructureType);
4740     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4741         rootType = toCount->sType;
4742     }
4743     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4744     *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
4745     *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
4746     *count += sizeof(VkToolPurposeFlags);
4747     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
4748     *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
4749 }
4750 
count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * toCount,size_t * count)4751 void count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
4752     uint32_t featureBits, VkStructureType rootType,
4753     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* toCount, size_t* count) {
4754     (void)featureBits;
4755     (void)rootType;
4756     (void)toCount;
4757     (void)count;
4758     *count += sizeof(VkStructureType);
4759     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4760         rootType = toCount->sType;
4761     }
4762     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4763     *count += sizeof(VkBool32);
4764 }
4765 
count_VkPhysicalDevicePrivateDataFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePrivateDataFeatures * toCount,size_t * count)4766 void count_VkPhysicalDevicePrivateDataFeatures(uint32_t featureBits, VkStructureType rootType,
4767                                                const VkPhysicalDevicePrivateDataFeatures* toCount,
4768                                                size_t* count) {
4769     (void)featureBits;
4770     (void)rootType;
4771     (void)toCount;
4772     (void)count;
4773     *count += sizeof(VkStructureType);
4774     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4775         rootType = toCount->sType;
4776     }
4777     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4778     *count += sizeof(VkBool32);
4779 }
4780 
count_VkDevicePrivateDataCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDevicePrivateDataCreateInfo * toCount,size_t * count)4781 void count_VkDevicePrivateDataCreateInfo(uint32_t featureBits, VkStructureType rootType,
4782                                          const VkDevicePrivateDataCreateInfo* toCount,
4783                                          size_t* count) {
4784     (void)featureBits;
4785     (void)rootType;
4786     (void)toCount;
4787     (void)count;
4788     *count += sizeof(VkStructureType);
4789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4790         rootType = toCount->sType;
4791     }
4792     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4793     *count += sizeof(uint32_t);
4794 }
4795 
count_VkPrivateDataSlotCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPrivateDataSlotCreateInfo * toCount,size_t * count)4796 void count_VkPrivateDataSlotCreateInfo(uint32_t featureBits, VkStructureType rootType,
4797                                        const VkPrivateDataSlotCreateInfo* toCount, size_t* count) {
4798     (void)featureBits;
4799     (void)rootType;
4800     (void)toCount;
4801     (void)count;
4802     *count += sizeof(VkStructureType);
4803     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4804         rootType = toCount->sType;
4805     }
4806     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4807     *count += sizeof(VkPrivateDataSlotCreateFlags);
4808 }
4809 
count_VkPhysicalDevicePipelineCreationCacheControlFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineCreationCacheControlFeatures * toCount,size_t * count)4810 void count_VkPhysicalDevicePipelineCreationCacheControlFeatures(
4811     uint32_t featureBits, VkStructureType rootType,
4812     const VkPhysicalDevicePipelineCreationCacheControlFeatures* toCount, size_t* count) {
4813     (void)featureBits;
4814     (void)rootType;
4815     (void)toCount;
4816     (void)count;
4817     *count += sizeof(VkStructureType);
4818     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4819         rootType = toCount->sType;
4820     }
4821     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4822     *count += sizeof(VkBool32);
4823 }
4824 
count_VkMemoryBarrier2(uint32_t featureBits,VkStructureType rootType,const VkMemoryBarrier2 * toCount,size_t * count)4825 void count_VkMemoryBarrier2(uint32_t featureBits, VkStructureType rootType,
4826                             const VkMemoryBarrier2* toCount, size_t* count) {
4827     (void)featureBits;
4828     (void)rootType;
4829     (void)toCount;
4830     (void)count;
4831     *count += sizeof(VkStructureType);
4832     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4833         rootType = toCount->sType;
4834     }
4835     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4836     *count += sizeof(VkPipelineStageFlags2);
4837     *count += sizeof(VkAccessFlags2);
4838     *count += sizeof(VkPipelineStageFlags2);
4839     *count += sizeof(VkAccessFlags2);
4840 }
4841 
count_VkBufferMemoryBarrier2(uint32_t featureBits,VkStructureType rootType,const VkBufferMemoryBarrier2 * toCount,size_t * count)4842 void count_VkBufferMemoryBarrier2(uint32_t featureBits, VkStructureType rootType,
4843                                   const VkBufferMemoryBarrier2* toCount, size_t* count) {
4844     (void)featureBits;
4845     (void)rootType;
4846     (void)toCount;
4847     (void)count;
4848     *count += sizeof(VkStructureType);
4849     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4850         rootType = toCount->sType;
4851     }
4852     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4853     *count += sizeof(VkPipelineStageFlags2);
4854     *count += sizeof(VkAccessFlags2);
4855     *count += sizeof(VkPipelineStageFlags2);
4856     *count += sizeof(VkAccessFlags2);
4857     *count += sizeof(uint32_t);
4858     *count += sizeof(uint32_t);
4859     uint64_t cgen_var_0;
4860     *count += 1 * 8;
4861     *count += sizeof(VkDeviceSize);
4862     *count += sizeof(VkDeviceSize);
4863 }
4864 
count_VkImageMemoryBarrier2(uint32_t featureBits,VkStructureType rootType,const VkImageMemoryBarrier2 * toCount,size_t * count)4865 void count_VkImageMemoryBarrier2(uint32_t featureBits, VkStructureType rootType,
4866                                  const VkImageMemoryBarrier2* toCount, size_t* count) {
4867     (void)featureBits;
4868     (void)rootType;
4869     (void)toCount;
4870     (void)count;
4871     *count += sizeof(VkStructureType);
4872     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4873         rootType = toCount->sType;
4874     }
4875     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4876     *count += sizeof(VkPipelineStageFlags2);
4877     *count += sizeof(VkAccessFlags2);
4878     *count += sizeof(VkPipelineStageFlags2);
4879     *count += sizeof(VkAccessFlags2);
4880     *count += sizeof(VkImageLayout);
4881     *count += sizeof(VkImageLayout);
4882     *count += sizeof(uint32_t);
4883     *count += sizeof(uint32_t);
4884     uint64_t cgen_var_0;
4885     *count += 1 * 8;
4886     count_VkImageSubresourceRange(featureBits, rootType,
4887                                   (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
4888 }
4889 
count_VkDependencyInfo(uint32_t featureBits,VkStructureType rootType,const VkDependencyInfo * toCount,size_t * count)4890 void count_VkDependencyInfo(uint32_t featureBits, VkStructureType rootType,
4891                             const VkDependencyInfo* toCount, size_t* count) {
4892     (void)featureBits;
4893     (void)rootType;
4894     (void)toCount;
4895     (void)count;
4896     *count += sizeof(VkStructureType);
4897     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4898         rootType = toCount->sType;
4899     }
4900     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4901     *count += sizeof(VkDependencyFlags);
4902     *count += sizeof(uint32_t);
4903     if (toCount) {
4904         for (uint32_t i = 0; i < (uint32_t)toCount->memoryBarrierCount; ++i) {
4905             count_VkMemoryBarrier2(featureBits, rootType,
4906                                    (const VkMemoryBarrier2*)(toCount->pMemoryBarriers + i), count);
4907         }
4908     }
4909     *count += sizeof(uint32_t);
4910     if (toCount) {
4911         for (uint32_t i = 0; i < (uint32_t)toCount->bufferMemoryBarrierCount; ++i) {
4912             count_VkBufferMemoryBarrier2(
4913                 featureBits, rootType,
4914                 (const VkBufferMemoryBarrier2*)(toCount->pBufferMemoryBarriers + i), count);
4915         }
4916     }
4917     *count += sizeof(uint32_t);
4918     if (toCount) {
4919         for (uint32_t i = 0; i < (uint32_t)toCount->imageMemoryBarrierCount; ++i) {
4920             count_VkImageMemoryBarrier2(
4921                 featureBits, rootType,
4922                 (const VkImageMemoryBarrier2*)(toCount->pImageMemoryBarriers + i), count);
4923         }
4924     }
4925 }
4926 
count_VkSemaphoreSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreSubmitInfo * toCount,size_t * count)4927 void count_VkSemaphoreSubmitInfo(uint32_t featureBits, VkStructureType rootType,
4928                                  const VkSemaphoreSubmitInfo* toCount, size_t* count) {
4929     (void)featureBits;
4930     (void)rootType;
4931     (void)toCount;
4932     (void)count;
4933     *count += sizeof(VkStructureType);
4934     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4935         rootType = toCount->sType;
4936     }
4937     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4938     uint64_t cgen_var_0;
4939     *count += 1 * 8;
4940     *count += sizeof(uint64_t);
4941     *count += sizeof(VkPipelineStageFlags2);
4942     *count += sizeof(uint32_t);
4943 }
4944 
count_VkCommandBufferSubmitInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandBufferSubmitInfo * toCount,size_t * count)4945 void count_VkCommandBufferSubmitInfo(uint32_t featureBits, VkStructureType rootType,
4946                                      const VkCommandBufferSubmitInfo* toCount, size_t* count) {
4947     (void)featureBits;
4948     (void)rootType;
4949     (void)toCount;
4950     (void)count;
4951     *count += sizeof(VkStructureType);
4952     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4953         rootType = toCount->sType;
4954     }
4955     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4956     uint64_t cgen_var_0;
4957     *count += 1 * 8;
4958     *count += sizeof(uint32_t);
4959 }
4960 
count_VkSubmitInfo2(uint32_t featureBits,VkStructureType rootType,const VkSubmitInfo2 * toCount,size_t * count)4961 void count_VkSubmitInfo2(uint32_t featureBits, VkStructureType rootType,
4962                          const VkSubmitInfo2* toCount, size_t* count) {
4963     (void)featureBits;
4964     (void)rootType;
4965     (void)toCount;
4966     (void)count;
4967     *count += sizeof(VkStructureType);
4968     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4969         rootType = toCount->sType;
4970     }
4971     count_extension_struct(featureBits, rootType, toCount->pNext, count);
4972     *count += sizeof(VkSubmitFlags);
4973     *count += sizeof(uint32_t);
4974     if (toCount) {
4975         for (uint32_t i = 0; i < (uint32_t)toCount->waitSemaphoreInfoCount; ++i) {
4976             count_VkSemaphoreSubmitInfo(
4977                 featureBits, rootType,
4978                 (const VkSemaphoreSubmitInfo*)(toCount->pWaitSemaphoreInfos + i), count);
4979         }
4980     }
4981     *count += sizeof(uint32_t);
4982     if (toCount) {
4983         for (uint32_t i = 0; i < (uint32_t)toCount->commandBufferInfoCount; ++i) {
4984             count_VkCommandBufferSubmitInfo(
4985                 featureBits, rootType,
4986                 (const VkCommandBufferSubmitInfo*)(toCount->pCommandBufferInfos + i), count);
4987         }
4988     }
4989     *count += sizeof(uint32_t);
4990     if (toCount) {
4991         for (uint32_t i = 0; i < (uint32_t)toCount->signalSemaphoreInfoCount; ++i) {
4992             count_VkSemaphoreSubmitInfo(
4993                 featureBits, rootType,
4994                 (const VkSemaphoreSubmitInfo*)(toCount->pSignalSemaphoreInfos + i), count);
4995         }
4996     }
4997 }
4998 
count_VkPhysicalDeviceSynchronization2Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSynchronization2Features * toCount,size_t * count)4999 void count_VkPhysicalDeviceSynchronization2Features(
5000     uint32_t featureBits, VkStructureType rootType,
5001     const VkPhysicalDeviceSynchronization2Features* toCount, size_t* count) {
5002     (void)featureBits;
5003     (void)rootType;
5004     (void)toCount;
5005     (void)count;
5006     *count += sizeof(VkStructureType);
5007     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5008         rootType = toCount->sType;
5009     }
5010     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5011     *count += sizeof(VkBool32);
5012 }
5013 
count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * toCount,size_t * count)5014 void count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
5015     uint32_t featureBits, VkStructureType rootType,
5016     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* toCount, size_t* count) {
5017     (void)featureBits;
5018     (void)rootType;
5019     (void)toCount;
5020     (void)count;
5021     *count += sizeof(VkStructureType);
5022     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5023         rootType = toCount->sType;
5024     }
5025     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5026     *count += sizeof(VkBool32);
5027 }
5028 
count_VkPhysicalDeviceImageRobustnessFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageRobustnessFeatures * toCount,size_t * count)5029 void count_VkPhysicalDeviceImageRobustnessFeatures(
5030     uint32_t featureBits, VkStructureType rootType,
5031     const VkPhysicalDeviceImageRobustnessFeatures* toCount, size_t* count) {
5032     (void)featureBits;
5033     (void)rootType;
5034     (void)toCount;
5035     (void)count;
5036     *count += sizeof(VkStructureType);
5037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5038         rootType = toCount->sType;
5039     }
5040     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5041     *count += sizeof(VkBool32);
5042 }
5043 
count_VkBufferCopy2(uint32_t featureBits,VkStructureType rootType,const VkBufferCopy2 * toCount,size_t * count)5044 void count_VkBufferCopy2(uint32_t featureBits, VkStructureType rootType,
5045                          const VkBufferCopy2* toCount, size_t* count) {
5046     (void)featureBits;
5047     (void)rootType;
5048     (void)toCount;
5049     (void)count;
5050     *count += sizeof(VkStructureType);
5051     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5052         rootType = toCount->sType;
5053     }
5054     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5055     *count += sizeof(VkDeviceSize);
5056     *count += sizeof(VkDeviceSize);
5057     *count += sizeof(VkDeviceSize);
5058 }
5059 
count_VkCopyBufferInfo2(uint32_t featureBits,VkStructureType rootType,const VkCopyBufferInfo2 * toCount,size_t * count)5060 void count_VkCopyBufferInfo2(uint32_t featureBits, VkStructureType rootType,
5061                              const VkCopyBufferInfo2* toCount, size_t* count) {
5062     (void)featureBits;
5063     (void)rootType;
5064     (void)toCount;
5065     (void)count;
5066     *count += sizeof(VkStructureType);
5067     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5068         rootType = toCount->sType;
5069     }
5070     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5071     uint64_t cgen_var_0;
5072     *count += 1 * 8;
5073     uint64_t cgen_var_1;
5074     *count += 1 * 8;
5075     *count += sizeof(uint32_t);
5076     if (toCount) {
5077         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5078             count_VkBufferCopy2(featureBits, rootType,
5079                                 (const VkBufferCopy2*)(toCount->pRegions + i), count);
5080         }
5081     }
5082 }
5083 
count_VkImageCopy2(uint32_t featureBits,VkStructureType rootType,const VkImageCopy2 * toCount,size_t * count)5084 void count_VkImageCopy2(uint32_t featureBits, VkStructureType rootType, const VkImageCopy2* toCount,
5085                         size_t* count) {
5086     (void)featureBits;
5087     (void)rootType;
5088     (void)toCount;
5089     (void)count;
5090     *count += sizeof(VkStructureType);
5091     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5092         rootType = toCount->sType;
5093     }
5094     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5095     count_VkImageSubresourceLayers(featureBits, rootType,
5096                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
5097     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->srcOffset), count);
5098     count_VkImageSubresourceLayers(featureBits, rootType,
5099                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
5100     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->dstOffset), count);
5101     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
5102 }
5103 
count_VkCopyImageInfo2(uint32_t featureBits,VkStructureType rootType,const VkCopyImageInfo2 * toCount,size_t * count)5104 void count_VkCopyImageInfo2(uint32_t featureBits, VkStructureType rootType,
5105                             const VkCopyImageInfo2* toCount, size_t* count) {
5106     (void)featureBits;
5107     (void)rootType;
5108     (void)toCount;
5109     (void)count;
5110     *count += sizeof(VkStructureType);
5111     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5112         rootType = toCount->sType;
5113     }
5114     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5115     uint64_t cgen_var_0;
5116     *count += 1 * 8;
5117     *count += sizeof(VkImageLayout);
5118     uint64_t cgen_var_1;
5119     *count += 1 * 8;
5120     *count += sizeof(VkImageLayout);
5121     *count += sizeof(uint32_t);
5122     if (toCount) {
5123         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5124             count_VkImageCopy2(featureBits, rootType, (const VkImageCopy2*)(toCount->pRegions + i),
5125                                count);
5126         }
5127     }
5128 }
5129 
count_VkBufferImageCopy2(uint32_t featureBits,VkStructureType rootType,const VkBufferImageCopy2 * toCount,size_t * count)5130 void count_VkBufferImageCopy2(uint32_t featureBits, VkStructureType rootType,
5131                               const VkBufferImageCopy2* toCount, size_t* count) {
5132     (void)featureBits;
5133     (void)rootType;
5134     (void)toCount;
5135     (void)count;
5136     *count += sizeof(VkStructureType);
5137     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5138         rootType = toCount->sType;
5139     }
5140     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5141     *count += sizeof(VkDeviceSize);
5142     *count += sizeof(uint32_t);
5143     *count += sizeof(uint32_t);
5144     count_VkImageSubresourceLayers(featureBits, rootType,
5145                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
5146     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
5147     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
5148 }
5149 
count_VkCopyBufferToImageInfo2(uint32_t featureBits,VkStructureType rootType,const VkCopyBufferToImageInfo2 * toCount,size_t * count)5150 void count_VkCopyBufferToImageInfo2(uint32_t featureBits, VkStructureType rootType,
5151                                     const VkCopyBufferToImageInfo2* toCount, size_t* count) {
5152     (void)featureBits;
5153     (void)rootType;
5154     (void)toCount;
5155     (void)count;
5156     *count += sizeof(VkStructureType);
5157     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5158         rootType = toCount->sType;
5159     }
5160     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5161     uint64_t cgen_var_0;
5162     *count += 1 * 8;
5163     uint64_t cgen_var_1;
5164     *count += 1 * 8;
5165     *count += sizeof(VkImageLayout);
5166     *count += sizeof(uint32_t);
5167     if (toCount) {
5168         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5169             count_VkBufferImageCopy2(featureBits, rootType,
5170                                      (const VkBufferImageCopy2*)(toCount->pRegions + i), count);
5171         }
5172     }
5173 }
5174 
count_VkCopyImageToBufferInfo2(uint32_t featureBits,VkStructureType rootType,const VkCopyImageToBufferInfo2 * toCount,size_t * count)5175 void count_VkCopyImageToBufferInfo2(uint32_t featureBits, VkStructureType rootType,
5176                                     const VkCopyImageToBufferInfo2* toCount, size_t* count) {
5177     (void)featureBits;
5178     (void)rootType;
5179     (void)toCount;
5180     (void)count;
5181     *count += sizeof(VkStructureType);
5182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5183         rootType = toCount->sType;
5184     }
5185     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5186     uint64_t cgen_var_0;
5187     *count += 1 * 8;
5188     *count += sizeof(VkImageLayout);
5189     uint64_t cgen_var_1;
5190     *count += 1 * 8;
5191     *count += sizeof(uint32_t);
5192     if (toCount) {
5193         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5194             count_VkBufferImageCopy2(featureBits, rootType,
5195                                      (const VkBufferImageCopy2*)(toCount->pRegions + i), count);
5196         }
5197     }
5198 }
5199 
count_VkImageBlit2(uint32_t featureBits,VkStructureType rootType,const VkImageBlit2 * toCount,size_t * count)5200 void count_VkImageBlit2(uint32_t featureBits, VkStructureType rootType, const VkImageBlit2* toCount,
5201                         size_t* count) {
5202     (void)featureBits;
5203     (void)rootType;
5204     (void)toCount;
5205     (void)count;
5206     *count += sizeof(VkStructureType);
5207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5208         rootType = toCount->sType;
5209     }
5210     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5211     count_VkImageSubresourceLayers(featureBits, rootType,
5212                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
5213     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
5214         count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(toCount->srcOffsets + i), count);
5215     }
5216     count_VkImageSubresourceLayers(featureBits, rootType,
5217                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
5218     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
5219         count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(toCount->dstOffsets + i), count);
5220     }
5221 }
5222 
count_VkBlitImageInfo2(uint32_t featureBits,VkStructureType rootType,const VkBlitImageInfo2 * toCount,size_t * count)5223 void count_VkBlitImageInfo2(uint32_t featureBits, VkStructureType rootType,
5224                             const VkBlitImageInfo2* toCount, size_t* count) {
5225     (void)featureBits;
5226     (void)rootType;
5227     (void)toCount;
5228     (void)count;
5229     *count += sizeof(VkStructureType);
5230     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5231         rootType = toCount->sType;
5232     }
5233     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5234     uint64_t cgen_var_0;
5235     *count += 1 * 8;
5236     *count += sizeof(VkImageLayout);
5237     uint64_t cgen_var_1;
5238     *count += 1 * 8;
5239     *count += sizeof(VkImageLayout);
5240     *count += sizeof(uint32_t);
5241     if (toCount) {
5242         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5243             count_VkImageBlit2(featureBits, rootType, (const VkImageBlit2*)(toCount->pRegions + i),
5244                                count);
5245         }
5246     }
5247     *count += sizeof(VkFilter);
5248 }
5249 
count_VkImageResolve2(uint32_t featureBits,VkStructureType rootType,const VkImageResolve2 * toCount,size_t * count)5250 void count_VkImageResolve2(uint32_t featureBits, VkStructureType rootType,
5251                            const VkImageResolve2* toCount, size_t* count) {
5252     (void)featureBits;
5253     (void)rootType;
5254     (void)toCount;
5255     (void)count;
5256     *count += sizeof(VkStructureType);
5257     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5258         rootType = toCount->sType;
5259     }
5260     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5261     count_VkImageSubresourceLayers(featureBits, rootType,
5262                                    (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
5263     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->srcOffset), count);
5264     count_VkImageSubresourceLayers(featureBits, rootType,
5265                                    (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
5266     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->dstOffset), count);
5267     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->extent), count);
5268 }
5269 
count_VkResolveImageInfo2(uint32_t featureBits,VkStructureType rootType,const VkResolveImageInfo2 * toCount,size_t * count)5270 void count_VkResolveImageInfo2(uint32_t featureBits, VkStructureType rootType,
5271                                const VkResolveImageInfo2* toCount, size_t* count) {
5272     (void)featureBits;
5273     (void)rootType;
5274     (void)toCount;
5275     (void)count;
5276     *count += sizeof(VkStructureType);
5277     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5278         rootType = toCount->sType;
5279     }
5280     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5281     uint64_t cgen_var_0;
5282     *count += 1 * 8;
5283     *count += sizeof(VkImageLayout);
5284     uint64_t cgen_var_1;
5285     *count += 1 * 8;
5286     *count += sizeof(VkImageLayout);
5287     *count += sizeof(uint32_t);
5288     if (toCount) {
5289         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
5290             count_VkImageResolve2(featureBits, rootType,
5291                                   (const VkImageResolve2*)(toCount->pRegions + i), count);
5292         }
5293     }
5294 }
5295 
count_VkPhysicalDeviceSubgroupSizeControlFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlFeatures * toCount,size_t * count)5296 void count_VkPhysicalDeviceSubgroupSizeControlFeatures(
5297     uint32_t featureBits, VkStructureType rootType,
5298     const VkPhysicalDeviceSubgroupSizeControlFeatures* toCount, size_t* count) {
5299     (void)featureBits;
5300     (void)rootType;
5301     (void)toCount;
5302     (void)count;
5303     *count += sizeof(VkStructureType);
5304     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5305         rootType = toCount->sType;
5306     }
5307     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5308     *count += sizeof(VkBool32);
5309     *count += sizeof(VkBool32);
5310 }
5311 
count_VkPhysicalDeviceSubgroupSizeControlProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlProperties * toCount,size_t * count)5312 void count_VkPhysicalDeviceSubgroupSizeControlProperties(
5313     uint32_t featureBits, VkStructureType rootType,
5314     const VkPhysicalDeviceSubgroupSizeControlProperties* toCount, size_t* count) {
5315     (void)featureBits;
5316     (void)rootType;
5317     (void)toCount;
5318     (void)count;
5319     *count += sizeof(VkStructureType);
5320     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5321         rootType = toCount->sType;
5322     }
5323     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5324     *count += sizeof(uint32_t);
5325     *count += sizeof(uint32_t);
5326     *count += sizeof(uint32_t);
5327     *count += sizeof(VkShaderStageFlags);
5328 }
5329 
count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * toCount,size_t * count)5330 void count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
5331     uint32_t featureBits, VkStructureType rootType,
5332     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* toCount, size_t* count) {
5333     (void)featureBits;
5334     (void)rootType;
5335     (void)toCount;
5336     (void)count;
5337     *count += sizeof(VkStructureType);
5338     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5339         rootType = toCount->sType;
5340     }
5341     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5342     *count += sizeof(uint32_t);
5343 }
5344 
count_VkPhysicalDeviceInlineUniformBlockFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockFeatures * toCount,size_t * count)5345 void count_VkPhysicalDeviceInlineUniformBlockFeatures(
5346     uint32_t featureBits, VkStructureType rootType,
5347     const VkPhysicalDeviceInlineUniformBlockFeatures* toCount, size_t* count) {
5348     (void)featureBits;
5349     (void)rootType;
5350     (void)toCount;
5351     (void)count;
5352     *count += sizeof(VkStructureType);
5353     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5354         rootType = toCount->sType;
5355     }
5356     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5357     *count += sizeof(VkBool32);
5358     *count += sizeof(VkBool32);
5359 }
5360 
count_VkPhysicalDeviceInlineUniformBlockProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockProperties * toCount,size_t * count)5361 void count_VkPhysicalDeviceInlineUniformBlockProperties(
5362     uint32_t featureBits, VkStructureType rootType,
5363     const VkPhysicalDeviceInlineUniformBlockProperties* toCount, size_t* count) {
5364     (void)featureBits;
5365     (void)rootType;
5366     (void)toCount;
5367     (void)count;
5368     *count += sizeof(VkStructureType);
5369     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5370         rootType = toCount->sType;
5371     }
5372     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5373     *count += sizeof(uint32_t);
5374     *count += sizeof(uint32_t);
5375     *count += sizeof(uint32_t);
5376     *count += sizeof(uint32_t);
5377     *count += sizeof(uint32_t);
5378 }
5379 
count_VkWriteDescriptorSetInlineUniformBlock(uint32_t featureBits,VkStructureType rootType,const VkWriteDescriptorSetInlineUniformBlock * toCount,size_t * count)5380 void count_VkWriteDescriptorSetInlineUniformBlock(
5381     uint32_t featureBits, VkStructureType rootType,
5382     const VkWriteDescriptorSetInlineUniformBlock* toCount, size_t* count) {
5383     (void)featureBits;
5384     (void)rootType;
5385     (void)toCount;
5386     (void)count;
5387     *count += sizeof(VkStructureType);
5388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5389         rootType = toCount->sType;
5390     }
5391     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5392     *count += sizeof(uint32_t);
5393     if (toCount) {
5394         *count += toCount->dataSize * sizeof(const uint8_t);
5395     }
5396 }
5397 
count_VkDescriptorPoolInlineUniformBlockCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDescriptorPoolInlineUniformBlockCreateInfo * toCount,size_t * count)5398 void count_VkDescriptorPoolInlineUniformBlockCreateInfo(
5399     uint32_t featureBits, VkStructureType rootType,
5400     const VkDescriptorPoolInlineUniformBlockCreateInfo* toCount, size_t* count) {
5401     (void)featureBits;
5402     (void)rootType;
5403     (void)toCount;
5404     (void)count;
5405     *count += sizeof(VkStructureType);
5406     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5407         rootType = toCount->sType;
5408     }
5409     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5410     *count += sizeof(uint32_t);
5411 }
5412 
count_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * toCount,size_t * count)5413 void count_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
5414     uint32_t featureBits, VkStructureType rootType,
5415     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* toCount, size_t* count) {
5416     (void)featureBits;
5417     (void)rootType;
5418     (void)toCount;
5419     (void)count;
5420     *count += sizeof(VkStructureType);
5421     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5422         rootType = toCount->sType;
5423     }
5424     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5425     *count += sizeof(VkBool32);
5426 }
5427 
count_VkRenderingAttachmentInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderingAttachmentInfo * toCount,size_t * count)5428 void count_VkRenderingAttachmentInfo(uint32_t featureBits, VkStructureType rootType,
5429                                      const VkRenderingAttachmentInfo* toCount, size_t* count) {
5430     (void)featureBits;
5431     (void)rootType;
5432     (void)toCount;
5433     (void)count;
5434     *count += sizeof(VkStructureType);
5435     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5436         rootType = toCount->sType;
5437     }
5438     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5439     uint64_t cgen_var_0;
5440     *count += 1 * 8;
5441     *count += sizeof(VkImageLayout);
5442     *count += sizeof(VkResolveModeFlagBits);
5443     uint64_t cgen_var_1;
5444     *count += 1 * 8;
5445     *count += sizeof(VkImageLayout);
5446     *count += sizeof(VkAttachmentLoadOp);
5447     *count += sizeof(VkAttachmentStoreOp);
5448     count_VkClearValue(featureBits, rootType, (VkClearValue*)(&toCount->clearValue), count);
5449 }
5450 
count_VkRenderingInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderingInfo * toCount,size_t * count)5451 void count_VkRenderingInfo(uint32_t featureBits, VkStructureType rootType,
5452                            const VkRenderingInfo* toCount, size_t* count) {
5453     (void)featureBits;
5454     (void)rootType;
5455     (void)toCount;
5456     (void)count;
5457     *count += sizeof(VkStructureType);
5458     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5459         rootType = toCount->sType;
5460     }
5461     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5462     *count += sizeof(VkRenderingFlags);
5463     count_VkRect2D(featureBits, rootType, (VkRect2D*)(&toCount->renderArea), count);
5464     *count += sizeof(uint32_t);
5465     *count += sizeof(uint32_t);
5466     *count += sizeof(uint32_t);
5467     if (toCount) {
5468         for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i) {
5469             count_VkRenderingAttachmentInfo(
5470                 featureBits, rootType,
5471                 (const VkRenderingAttachmentInfo*)(toCount->pColorAttachments + i), count);
5472         }
5473     }
5474     // WARNING PTR CHECK
5475     *count += 8;
5476     if (toCount->pDepthAttachment) {
5477         count_VkRenderingAttachmentInfo(
5478             featureBits, rootType, (const VkRenderingAttachmentInfo*)(toCount->pDepthAttachment),
5479             count);
5480     }
5481     // WARNING PTR CHECK
5482     *count += 8;
5483     if (toCount->pStencilAttachment) {
5484         count_VkRenderingAttachmentInfo(
5485             featureBits, rootType, (const VkRenderingAttachmentInfo*)(toCount->pStencilAttachment),
5486             count);
5487     }
5488 }
5489 
count_VkPipelineRenderingCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineRenderingCreateInfo * toCount,size_t * count)5490 void count_VkPipelineRenderingCreateInfo(uint32_t featureBits, VkStructureType rootType,
5491                                          const VkPipelineRenderingCreateInfo* toCount,
5492                                          size_t* count) {
5493     (void)featureBits;
5494     (void)rootType;
5495     (void)toCount;
5496     (void)count;
5497     *count += sizeof(VkStructureType);
5498     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5499         rootType = toCount->sType;
5500     }
5501     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5502     *count += sizeof(uint32_t);
5503     *count += sizeof(uint32_t);
5504     // WARNING PTR CHECK
5505     *count += 8;
5506     if (toCount->pColorAttachmentFormats) {
5507         if (toCount) {
5508             *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
5509         }
5510     }
5511     *count += sizeof(VkFormat);
5512     *count += sizeof(VkFormat);
5513 }
5514 
count_VkPhysicalDeviceDynamicRenderingFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingFeatures * toCount,size_t * count)5515 void count_VkPhysicalDeviceDynamicRenderingFeatures(
5516     uint32_t featureBits, VkStructureType rootType,
5517     const VkPhysicalDeviceDynamicRenderingFeatures* toCount, size_t* count) {
5518     (void)featureBits;
5519     (void)rootType;
5520     (void)toCount;
5521     (void)count;
5522     *count += sizeof(VkStructureType);
5523     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5524         rootType = toCount->sType;
5525     }
5526     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5527     *count += sizeof(VkBool32);
5528 }
5529 
count_VkCommandBufferInheritanceRenderingInfo(uint32_t featureBits,VkStructureType rootType,const VkCommandBufferInheritanceRenderingInfo * toCount,size_t * count)5530 void count_VkCommandBufferInheritanceRenderingInfo(
5531     uint32_t featureBits, VkStructureType rootType,
5532     const VkCommandBufferInheritanceRenderingInfo* toCount, size_t* count) {
5533     (void)featureBits;
5534     (void)rootType;
5535     (void)toCount;
5536     (void)count;
5537     *count += sizeof(VkStructureType);
5538     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5539         rootType = toCount->sType;
5540     }
5541     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5542     *count += sizeof(VkRenderingFlags);
5543     *count += sizeof(uint32_t);
5544     *count += sizeof(uint32_t);
5545     if (toCount) {
5546         *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
5547     }
5548     *count += sizeof(VkFormat);
5549     *count += sizeof(VkFormat);
5550     *count += sizeof(VkSampleCountFlagBits);
5551 }
5552 
count_VkPhysicalDeviceShaderIntegerDotProductFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductFeatures * toCount,size_t * count)5553 void count_VkPhysicalDeviceShaderIntegerDotProductFeatures(
5554     uint32_t featureBits, VkStructureType rootType,
5555     const VkPhysicalDeviceShaderIntegerDotProductFeatures* toCount, size_t* count) {
5556     (void)featureBits;
5557     (void)rootType;
5558     (void)toCount;
5559     (void)count;
5560     *count += sizeof(VkStructureType);
5561     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5562         rootType = toCount->sType;
5563     }
5564     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5565     *count += sizeof(VkBool32);
5566 }
5567 
count_VkPhysicalDeviceShaderIntegerDotProductProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductProperties * toCount,size_t * count)5568 void count_VkPhysicalDeviceShaderIntegerDotProductProperties(
5569     uint32_t featureBits, VkStructureType rootType,
5570     const VkPhysicalDeviceShaderIntegerDotProductProperties* toCount, size_t* count) {
5571     (void)featureBits;
5572     (void)rootType;
5573     (void)toCount;
5574     (void)count;
5575     *count += sizeof(VkStructureType);
5576     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5577         rootType = toCount->sType;
5578     }
5579     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5580     *count += sizeof(VkBool32);
5581     *count += sizeof(VkBool32);
5582     *count += sizeof(VkBool32);
5583     *count += sizeof(VkBool32);
5584     *count += sizeof(VkBool32);
5585     *count += sizeof(VkBool32);
5586     *count += sizeof(VkBool32);
5587     *count += sizeof(VkBool32);
5588     *count += sizeof(VkBool32);
5589     *count += sizeof(VkBool32);
5590     *count += sizeof(VkBool32);
5591     *count += sizeof(VkBool32);
5592     *count += sizeof(VkBool32);
5593     *count += sizeof(VkBool32);
5594     *count += sizeof(VkBool32);
5595     *count += sizeof(VkBool32);
5596     *count += sizeof(VkBool32);
5597     *count += sizeof(VkBool32);
5598     *count += sizeof(VkBool32);
5599     *count += sizeof(VkBool32);
5600     *count += sizeof(VkBool32);
5601     *count += sizeof(VkBool32);
5602     *count += sizeof(VkBool32);
5603     *count += sizeof(VkBool32);
5604     *count += sizeof(VkBool32);
5605     *count += sizeof(VkBool32);
5606     *count += sizeof(VkBool32);
5607     *count += sizeof(VkBool32);
5608     *count += sizeof(VkBool32);
5609     *count += sizeof(VkBool32);
5610 }
5611 
count_VkPhysicalDeviceTexelBufferAlignmentProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentProperties * toCount,size_t * count)5612 void count_VkPhysicalDeviceTexelBufferAlignmentProperties(
5613     uint32_t featureBits, VkStructureType rootType,
5614     const VkPhysicalDeviceTexelBufferAlignmentProperties* toCount, size_t* count) {
5615     (void)featureBits;
5616     (void)rootType;
5617     (void)toCount;
5618     (void)count;
5619     *count += sizeof(VkStructureType);
5620     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5621         rootType = toCount->sType;
5622     }
5623     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5624     *count += sizeof(VkDeviceSize);
5625     *count += sizeof(VkBool32);
5626     *count += sizeof(VkDeviceSize);
5627     *count += sizeof(VkBool32);
5628 }
5629 
count_VkFormatProperties3(uint32_t featureBits,VkStructureType rootType,const VkFormatProperties3 * toCount,size_t * count)5630 void count_VkFormatProperties3(uint32_t featureBits, VkStructureType rootType,
5631                                const VkFormatProperties3* toCount, size_t* count) {
5632     (void)featureBits;
5633     (void)rootType;
5634     (void)toCount;
5635     (void)count;
5636     *count += sizeof(VkStructureType);
5637     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5638         rootType = toCount->sType;
5639     }
5640     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5641     *count += sizeof(VkFormatFeatureFlags2);
5642     *count += sizeof(VkFormatFeatureFlags2);
5643     *count += sizeof(VkFormatFeatureFlags2);
5644 }
5645 
count_VkPhysicalDeviceMaintenance4Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Features * toCount,size_t * count)5646 void count_VkPhysicalDeviceMaintenance4Features(uint32_t featureBits, VkStructureType rootType,
5647                                                 const VkPhysicalDeviceMaintenance4Features* toCount,
5648                                                 size_t* count) {
5649     (void)featureBits;
5650     (void)rootType;
5651     (void)toCount;
5652     (void)count;
5653     *count += sizeof(VkStructureType);
5654     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5655         rootType = toCount->sType;
5656     }
5657     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5658     *count += sizeof(VkBool32);
5659 }
5660 
count_VkPhysicalDeviceMaintenance4Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Properties * toCount,size_t * count)5661 void count_VkPhysicalDeviceMaintenance4Properties(
5662     uint32_t featureBits, VkStructureType rootType,
5663     const VkPhysicalDeviceMaintenance4Properties* toCount, size_t* count) {
5664     (void)featureBits;
5665     (void)rootType;
5666     (void)toCount;
5667     (void)count;
5668     *count += sizeof(VkStructureType);
5669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5670         rootType = toCount->sType;
5671     }
5672     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5673     *count += sizeof(VkDeviceSize);
5674 }
5675 
count_VkDeviceBufferMemoryRequirements(uint32_t featureBits,VkStructureType rootType,const VkDeviceBufferMemoryRequirements * toCount,size_t * count)5676 void count_VkDeviceBufferMemoryRequirements(uint32_t featureBits, VkStructureType rootType,
5677                                             const VkDeviceBufferMemoryRequirements* toCount,
5678                                             size_t* count) {
5679     (void)featureBits;
5680     (void)rootType;
5681     (void)toCount;
5682     (void)count;
5683     *count += sizeof(VkStructureType);
5684     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5685         rootType = toCount->sType;
5686     }
5687     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5688     count_VkBufferCreateInfo(featureBits, rootType,
5689                              (const VkBufferCreateInfo*)(toCount->pCreateInfo), count);
5690 }
5691 
count_VkDeviceImageMemoryRequirements(uint32_t featureBits,VkStructureType rootType,const VkDeviceImageMemoryRequirements * toCount,size_t * count)5692 void count_VkDeviceImageMemoryRequirements(uint32_t featureBits, VkStructureType rootType,
5693                                            const VkDeviceImageMemoryRequirements* toCount,
5694                                            size_t* count) {
5695     (void)featureBits;
5696     (void)rootType;
5697     (void)toCount;
5698     (void)count;
5699     *count += sizeof(VkStructureType);
5700     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5701         rootType = toCount->sType;
5702     }
5703     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5704     count_VkImageCreateInfo(featureBits, rootType, (const VkImageCreateInfo*)(toCount->pCreateInfo),
5705                             count);
5706     *count += sizeof(VkImageAspectFlagBits);
5707 }
5708 
5709 #endif
5710 #ifdef VK_VERSION_1_4
count_VkPhysicalDeviceVulkan14Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan14Features * toCount,size_t * count)5711 void count_VkPhysicalDeviceVulkan14Features(uint32_t featureBits, VkStructureType rootType,
5712                                             const VkPhysicalDeviceVulkan14Features* toCount,
5713                                             size_t* count) {
5714     (void)featureBits;
5715     (void)rootType;
5716     (void)toCount;
5717     (void)count;
5718     *count += sizeof(VkStructureType);
5719     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5720         rootType = toCount->sType;
5721     }
5722     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5723     *count += sizeof(VkBool32);
5724     *count += sizeof(VkBool32);
5725     *count += sizeof(VkBool32);
5726     *count += sizeof(VkBool32);
5727     *count += sizeof(VkBool32);
5728     *count += sizeof(VkBool32);
5729     *count += sizeof(VkBool32);
5730     *count += sizeof(VkBool32);
5731     *count += sizeof(VkBool32);
5732     *count += sizeof(VkBool32);
5733     *count += sizeof(VkBool32);
5734     *count += sizeof(VkBool32);
5735     *count += sizeof(VkBool32);
5736     *count += sizeof(VkBool32);
5737     *count += sizeof(VkBool32);
5738     *count += sizeof(VkBool32);
5739     *count += sizeof(VkBool32);
5740     *count += sizeof(VkBool32);
5741     *count += sizeof(VkBool32);
5742     *count += sizeof(VkBool32);
5743     *count += sizeof(VkBool32);
5744 }
5745 
count_VkPhysicalDeviceVulkan14Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVulkan14Properties * toCount,size_t * count)5746 void count_VkPhysicalDeviceVulkan14Properties(uint32_t featureBits, VkStructureType rootType,
5747                                               const VkPhysicalDeviceVulkan14Properties* toCount,
5748                                               size_t* count) {
5749     (void)featureBits;
5750     (void)rootType;
5751     (void)toCount;
5752     (void)count;
5753     *count += sizeof(VkStructureType);
5754     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5755         rootType = toCount->sType;
5756     }
5757     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5758     *count += sizeof(uint32_t);
5759     *count += sizeof(uint32_t);
5760     *count += sizeof(VkBool32);
5761     *count += sizeof(uint32_t);
5762     *count += sizeof(VkBool32);
5763     *count += sizeof(VkBool32);
5764     *count += sizeof(VkBool32);
5765     *count += sizeof(VkBool32);
5766     *count += sizeof(VkBool32);
5767     *count += sizeof(VkBool32);
5768     *count += sizeof(VkBool32);
5769     *count += sizeof(VkBool32);
5770     *count += sizeof(VkBool32);
5771     *count += sizeof(uint32_t);
5772     *count += sizeof(VkBool32);
5773     *count += sizeof(VkPipelineRobustnessBufferBehavior);
5774     *count += sizeof(VkPipelineRobustnessBufferBehavior);
5775     *count += sizeof(VkPipelineRobustnessBufferBehavior);
5776     *count += sizeof(VkPipelineRobustnessImageBehavior);
5777     *count += sizeof(uint32_t);
5778     // WARNING PTR CHECK
5779     *count += 8;
5780     if (toCount->pCopySrcLayouts) {
5781         if (toCount) {
5782             *count += toCount->copySrcLayoutCount * sizeof(VkImageLayout);
5783         }
5784     }
5785     *count += sizeof(uint32_t);
5786     // WARNING PTR CHECK
5787     *count += 8;
5788     if (toCount->pCopyDstLayouts) {
5789         if (toCount) {
5790             *count += toCount->copyDstLayoutCount * sizeof(VkImageLayout);
5791         }
5792     }
5793     *count += VK_UUID_SIZE * sizeof(uint8_t);
5794     *count += sizeof(VkBool32);
5795 }
5796 
count_VkDeviceQueueGlobalPriorityCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceQueueGlobalPriorityCreateInfo * toCount,size_t * count)5797 void count_VkDeviceQueueGlobalPriorityCreateInfo(
5798     uint32_t featureBits, VkStructureType rootType,
5799     const VkDeviceQueueGlobalPriorityCreateInfo* toCount, size_t* count) {
5800     (void)featureBits;
5801     (void)rootType;
5802     (void)toCount;
5803     (void)count;
5804     *count += sizeof(VkStructureType);
5805     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5806         rootType = toCount->sType;
5807     }
5808     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5809     *count += sizeof(VkQueueGlobalPriority);
5810 }
5811 
count_VkPhysicalDeviceGlobalPriorityQueryFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGlobalPriorityQueryFeatures * toCount,size_t * count)5812 void count_VkPhysicalDeviceGlobalPriorityQueryFeatures(
5813     uint32_t featureBits, VkStructureType rootType,
5814     const VkPhysicalDeviceGlobalPriorityQueryFeatures* toCount, size_t* count) {
5815     (void)featureBits;
5816     (void)rootType;
5817     (void)toCount;
5818     (void)count;
5819     *count += sizeof(VkStructureType);
5820     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5821         rootType = toCount->sType;
5822     }
5823     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5824     *count += sizeof(VkBool32);
5825 }
5826 
count_VkQueueFamilyGlobalPriorityProperties(uint32_t featureBits,VkStructureType rootType,const VkQueueFamilyGlobalPriorityProperties * toCount,size_t * count)5827 void count_VkQueueFamilyGlobalPriorityProperties(
5828     uint32_t featureBits, VkStructureType rootType,
5829     const VkQueueFamilyGlobalPriorityProperties* toCount, size_t* count) {
5830     (void)featureBits;
5831     (void)rootType;
5832     (void)toCount;
5833     (void)count;
5834     *count += sizeof(VkStructureType);
5835     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5836         rootType = toCount->sType;
5837     }
5838     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5839     *count += sizeof(uint32_t);
5840     *count += VK_MAX_GLOBAL_PRIORITY_SIZE * sizeof(VkQueueGlobalPriority);
5841 }
5842 
count_VkPhysicalDeviceShaderSubgroupRotateFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupRotateFeatures * toCount,size_t * count)5843 void count_VkPhysicalDeviceShaderSubgroupRotateFeatures(
5844     uint32_t featureBits, VkStructureType rootType,
5845     const VkPhysicalDeviceShaderSubgroupRotateFeatures* toCount, size_t* count) {
5846     (void)featureBits;
5847     (void)rootType;
5848     (void)toCount;
5849     (void)count;
5850     *count += sizeof(VkStructureType);
5851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5852         rootType = toCount->sType;
5853     }
5854     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5855     *count += sizeof(VkBool32);
5856     *count += sizeof(VkBool32);
5857 }
5858 
count_VkPhysicalDeviceShaderFloatControls2Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderFloatControls2Features * toCount,size_t * count)5859 void count_VkPhysicalDeviceShaderFloatControls2Features(
5860     uint32_t featureBits, VkStructureType rootType,
5861     const VkPhysicalDeviceShaderFloatControls2Features* toCount, size_t* count) {
5862     (void)featureBits;
5863     (void)rootType;
5864     (void)toCount;
5865     (void)count;
5866     *count += sizeof(VkStructureType);
5867     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5868         rootType = toCount->sType;
5869     }
5870     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5871     *count += sizeof(VkBool32);
5872 }
5873 
count_VkPhysicalDeviceShaderExpectAssumeFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceShaderExpectAssumeFeatures * toCount,size_t * count)5874 void count_VkPhysicalDeviceShaderExpectAssumeFeatures(
5875     uint32_t featureBits, VkStructureType rootType,
5876     const VkPhysicalDeviceShaderExpectAssumeFeatures* toCount, size_t* count) {
5877     (void)featureBits;
5878     (void)rootType;
5879     (void)toCount;
5880     (void)count;
5881     *count += sizeof(VkStructureType);
5882     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5883         rootType = toCount->sType;
5884     }
5885     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5886     *count += sizeof(VkBool32);
5887 }
5888 
count_VkPhysicalDeviceLineRasterizationFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeatures * toCount,size_t * count)5889 void count_VkPhysicalDeviceLineRasterizationFeatures(
5890     uint32_t featureBits, VkStructureType rootType,
5891     const VkPhysicalDeviceLineRasterizationFeatures* toCount, size_t* count) {
5892     (void)featureBits;
5893     (void)rootType;
5894     (void)toCount;
5895     (void)count;
5896     *count += sizeof(VkStructureType);
5897     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5898         rootType = toCount->sType;
5899     }
5900     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5901     *count += sizeof(VkBool32);
5902     *count += sizeof(VkBool32);
5903     *count += sizeof(VkBool32);
5904     *count += sizeof(VkBool32);
5905     *count += sizeof(VkBool32);
5906     *count += sizeof(VkBool32);
5907 }
5908 
count_VkPhysicalDeviceLineRasterizationProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationProperties * toCount,size_t * count)5909 void count_VkPhysicalDeviceLineRasterizationProperties(
5910     uint32_t featureBits, VkStructureType rootType,
5911     const VkPhysicalDeviceLineRasterizationProperties* toCount, size_t* count) {
5912     (void)featureBits;
5913     (void)rootType;
5914     (void)toCount;
5915     (void)count;
5916     *count += sizeof(VkStructureType);
5917     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5918         rootType = toCount->sType;
5919     }
5920     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5921     *count += sizeof(uint32_t);
5922 }
5923 
count_VkPipelineRasterizationLineStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfo * toCount,size_t * count)5924 void count_VkPipelineRasterizationLineStateCreateInfo(
5925     uint32_t featureBits, VkStructureType rootType,
5926     const VkPipelineRasterizationLineStateCreateInfo* toCount, size_t* count) {
5927     (void)featureBits;
5928     (void)rootType;
5929     (void)toCount;
5930     (void)count;
5931     *count += sizeof(VkStructureType);
5932     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5933         rootType = toCount->sType;
5934     }
5935     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5936     *count += sizeof(VkLineRasterizationMode);
5937     *count += sizeof(VkBool32);
5938     *count += sizeof(uint32_t);
5939     *count += sizeof(uint16_t);
5940 }
5941 
count_VkPhysicalDeviceVertexAttributeDivisorProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorProperties * toCount,size_t * count)5942 void count_VkPhysicalDeviceVertexAttributeDivisorProperties(
5943     uint32_t featureBits, VkStructureType rootType,
5944     const VkPhysicalDeviceVertexAttributeDivisorProperties* toCount, size_t* count) {
5945     (void)featureBits;
5946     (void)rootType;
5947     (void)toCount;
5948     (void)count;
5949     *count += sizeof(VkStructureType);
5950     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5951         rootType = toCount->sType;
5952     }
5953     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5954     *count += sizeof(uint32_t);
5955     *count += sizeof(VkBool32);
5956 }
5957 
count_VkVertexInputBindingDivisorDescription(uint32_t featureBits,VkStructureType rootType,const VkVertexInputBindingDivisorDescription * toCount,size_t * count)5958 void count_VkVertexInputBindingDivisorDescription(
5959     uint32_t featureBits, VkStructureType rootType,
5960     const VkVertexInputBindingDivisorDescription* toCount, size_t* count) {
5961     (void)featureBits;
5962     (void)rootType;
5963     (void)toCount;
5964     (void)count;
5965     *count += sizeof(uint32_t);
5966     *count += sizeof(uint32_t);
5967 }
5968 
count_VkPipelineVertexInputDivisorStateCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineVertexInputDivisorStateCreateInfo * toCount,size_t * count)5969 void count_VkPipelineVertexInputDivisorStateCreateInfo(
5970     uint32_t featureBits, VkStructureType rootType,
5971     const VkPipelineVertexInputDivisorStateCreateInfo* toCount, size_t* count) {
5972     (void)featureBits;
5973     (void)rootType;
5974     (void)toCount;
5975     (void)count;
5976     *count += sizeof(VkStructureType);
5977     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5978         rootType = toCount->sType;
5979     }
5980     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5981     *count += sizeof(uint32_t);
5982     if (toCount) {
5983         for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDivisorCount; ++i) {
5984             count_VkVertexInputBindingDivisorDescription(
5985                 featureBits, rootType,
5986                 (const VkVertexInputBindingDivisorDescription*)(toCount->pVertexBindingDivisors +
5987                                                                 i),
5988                 count);
5989         }
5990     }
5991 }
5992 
count_VkPhysicalDeviceVertexAttributeDivisorFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorFeatures * toCount,size_t * count)5993 void count_VkPhysicalDeviceVertexAttributeDivisorFeatures(
5994     uint32_t featureBits, VkStructureType rootType,
5995     const VkPhysicalDeviceVertexAttributeDivisorFeatures* toCount, size_t* count) {
5996     (void)featureBits;
5997     (void)rootType;
5998     (void)toCount;
5999     (void)count;
6000     *count += sizeof(VkStructureType);
6001     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6002         rootType = toCount->sType;
6003     }
6004     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6005     *count += sizeof(VkBool32);
6006     *count += sizeof(VkBool32);
6007 }
6008 
count_VkPhysicalDeviceIndexTypeUint8Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceIndexTypeUint8Features * toCount,size_t * count)6009 void count_VkPhysicalDeviceIndexTypeUint8Features(
6010     uint32_t featureBits, VkStructureType rootType,
6011     const VkPhysicalDeviceIndexTypeUint8Features* toCount, size_t* count) {
6012     (void)featureBits;
6013     (void)rootType;
6014     (void)toCount;
6015     (void)count;
6016     *count += sizeof(VkStructureType);
6017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6018         rootType = toCount->sType;
6019     }
6020     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6021     *count += sizeof(VkBool32);
6022 }
6023 
count_VkMemoryMapInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryMapInfo * toCount,size_t * count)6024 void count_VkMemoryMapInfo(uint32_t featureBits, VkStructureType rootType,
6025                            const VkMemoryMapInfo* toCount, size_t* count) {
6026     (void)featureBits;
6027     (void)rootType;
6028     (void)toCount;
6029     (void)count;
6030     *count += sizeof(VkStructureType);
6031     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6032         rootType = toCount->sType;
6033     }
6034     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6035     *count += sizeof(VkMemoryMapFlags);
6036     uint64_t cgen_var_0;
6037     *count += 1 * 8;
6038     *count += sizeof(VkDeviceSize);
6039     *count += sizeof(VkDeviceSize);
6040 }
6041 
count_VkMemoryUnmapInfo(uint32_t featureBits,VkStructureType rootType,const VkMemoryUnmapInfo * toCount,size_t * count)6042 void count_VkMemoryUnmapInfo(uint32_t featureBits, VkStructureType rootType,
6043                              const VkMemoryUnmapInfo* toCount, size_t* count) {
6044     (void)featureBits;
6045     (void)rootType;
6046     (void)toCount;
6047     (void)count;
6048     *count += sizeof(VkStructureType);
6049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6050         rootType = toCount->sType;
6051     }
6052     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6053     *count += sizeof(VkMemoryUnmapFlags);
6054     uint64_t cgen_var_0;
6055     *count += 1 * 8;
6056 }
6057 
count_VkPhysicalDeviceMaintenance5Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance5Features * toCount,size_t * count)6058 void count_VkPhysicalDeviceMaintenance5Features(uint32_t featureBits, VkStructureType rootType,
6059                                                 const VkPhysicalDeviceMaintenance5Features* toCount,
6060                                                 size_t* count) {
6061     (void)featureBits;
6062     (void)rootType;
6063     (void)toCount;
6064     (void)count;
6065     *count += sizeof(VkStructureType);
6066     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6067         rootType = toCount->sType;
6068     }
6069     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6070     *count += sizeof(VkBool32);
6071 }
6072 
count_VkPhysicalDeviceMaintenance5Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance5Properties * toCount,size_t * count)6073 void count_VkPhysicalDeviceMaintenance5Properties(
6074     uint32_t featureBits, VkStructureType rootType,
6075     const VkPhysicalDeviceMaintenance5Properties* toCount, size_t* count) {
6076     (void)featureBits;
6077     (void)rootType;
6078     (void)toCount;
6079     (void)count;
6080     *count += sizeof(VkStructureType);
6081     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6082         rootType = toCount->sType;
6083     }
6084     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6085     *count += sizeof(VkBool32);
6086     *count += sizeof(VkBool32);
6087     *count += sizeof(VkBool32);
6088     *count += sizeof(VkBool32);
6089     *count += sizeof(VkBool32);
6090     *count += sizeof(VkBool32);
6091 }
6092 
count_VkRenderingAreaInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderingAreaInfo * toCount,size_t * count)6093 void count_VkRenderingAreaInfo(uint32_t featureBits, VkStructureType rootType,
6094                                const VkRenderingAreaInfo* toCount, size_t* count) {
6095     (void)featureBits;
6096     (void)rootType;
6097     (void)toCount;
6098     (void)count;
6099     *count += sizeof(VkStructureType);
6100     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6101         rootType = toCount->sType;
6102     }
6103     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6104     *count += sizeof(uint32_t);
6105     *count += sizeof(uint32_t);
6106     // WARNING PTR CHECK
6107     *count += 8;
6108     if (toCount->pColorAttachmentFormats) {
6109         if (toCount) {
6110             *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
6111         }
6112     }
6113     *count += sizeof(VkFormat);
6114     *count += sizeof(VkFormat);
6115 }
6116 
count_VkImageSubresource2(uint32_t featureBits,VkStructureType rootType,const VkImageSubresource2 * toCount,size_t * count)6117 void count_VkImageSubresource2(uint32_t featureBits, VkStructureType rootType,
6118                                const VkImageSubresource2* toCount, size_t* count) {
6119     (void)featureBits;
6120     (void)rootType;
6121     (void)toCount;
6122     (void)count;
6123     *count += sizeof(VkStructureType);
6124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6125         rootType = toCount->sType;
6126     }
6127     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6128     count_VkImageSubresource(featureBits, rootType,
6129                              (VkImageSubresource*)(&toCount->imageSubresource), count);
6130 }
6131 
count_VkDeviceImageSubresourceInfo(uint32_t featureBits,VkStructureType rootType,const VkDeviceImageSubresourceInfo * toCount,size_t * count)6132 void count_VkDeviceImageSubresourceInfo(uint32_t featureBits, VkStructureType rootType,
6133                                         const VkDeviceImageSubresourceInfo* toCount,
6134                                         size_t* count) {
6135     (void)featureBits;
6136     (void)rootType;
6137     (void)toCount;
6138     (void)count;
6139     *count += sizeof(VkStructureType);
6140     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6141         rootType = toCount->sType;
6142     }
6143     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6144     count_VkImageCreateInfo(featureBits, rootType, (const VkImageCreateInfo*)(toCount->pCreateInfo),
6145                             count);
6146     count_VkImageSubresource2(featureBits, rootType,
6147                               (const VkImageSubresource2*)(toCount->pSubresource), count);
6148 }
6149 
count_VkSubresourceLayout2(uint32_t featureBits,VkStructureType rootType,const VkSubresourceLayout2 * toCount,size_t * count)6150 void count_VkSubresourceLayout2(uint32_t featureBits, VkStructureType rootType,
6151                                 const VkSubresourceLayout2* toCount, size_t* count) {
6152     (void)featureBits;
6153     (void)rootType;
6154     (void)toCount;
6155     (void)count;
6156     *count += sizeof(VkStructureType);
6157     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6158         rootType = toCount->sType;
6159     }
6160     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6161     count_VkSubresourceLayout(featureBits, rootType,
6162                               (VkSubresourceLayout*)(&toCount->subresourceLayout), count);
6163 }
6164 
count_VkPipelineCreateFlags2CreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineCreateFlags2CreateInfo * toCount,size_t * count)6165 void count_VkPipelineCreateFlags2CreateInfo(uint32_t featureBits, VkStructureType rootType,
6166                                             const VkPipelineCreateFlags2CreateInfo* toCount,
6167                                             size_t* count) {
6168     (void)featureBits;
6169     (void)rootType;
6170     (void)toCount;
6171     (void)count;
6172     *count += sizeof(VkStructureType);
6173     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6174         rootType = toCount->sType;
6175     }
6176     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6177     *count += sizeof(VkPipelineCreateFlags2);
6178 }
6179 
count_VkBufferUsageFlags2CreateInfo(uint32_t featureBits,VkStructureType rootType,const VkBufferUsageFlags2CreateInfo * toCount,size_t * count)6180 void count_VkBufferUsageFlags2CreateInfo(uint32_t featureBits, VkStructureType rootType,
6181                                          const VkBufferUsageFlags2CreateInfo* toCount,
6182                                          size_t* count) {
6183     (void)featureBits;
6184     (void)rootType;
6185     (void)toCount;
6186     (void)count;
6187     *count += sizeof(VkStructureType);
6188     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6189         rootType = toCount->sType;
6190     }
6191     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6192     *count += sizeof(VkBufferUsageFlags2);
6193 }
6194 
count_VkPhysicalDevicePushDescriptorProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePushDescriptorProperties * toCount,size_t * count)6195 void count_VkPhysicalDevicePushDescriptorProperties(
6196     uint32_t featureBits, VkStructureType rootType,
6197     const VkPhysicalDevicePushDescriptorProperties* toCount, size_t* count) {
6198     (void)featureBits;
6199     (void)rootType;
6200     (void)toCount;
6201     (void)count;
6202     *count += sizeof(VkStructureType);
6203     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6204         rootType = toCount->sType;
6205     }
6206     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6207     *count += sizeof(uint32_t);
6208 }
6209 
count_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingLocalReadFeatures * toCount,size_t * count)6210 void count_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
6211     uint32_t featureBits, VkStructureType rootType,
6212     const VkPhysicalDeviceDynamicRenderingLocalReadFeatures* toCount, size_t* count) {
6213     (void)featureBits;
6214     (void)rootType;
6215     (void)toCount;
6216     (void)count;
6217     *count += sizeof(VkStructureType);
6218     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6219         rootType = toCount->sType;
6220     }
6221     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6222     *count += sizeof(VkBool32);
6223 }
6224 
count_VkRenderingAttachmentLocationInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderingAttachmentLocationInfo * toCount,size_t * count)6225 void count_VkRenderingAttachmentLocationInfo(uint32_t featureBits, VkStructureType rootType,
6226                                              const VkRenderingAttachmentLocationInfo* toCount,
6227                                              size_t* count) {
6228     (void)featureBits;
6229     (void)rootType;
6230     (void)toCount;
6231     (void)count;
6232     *count += sizeof(VkStructureType);
6233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6234         rootType = toCount->sType;
6235     }
6236     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6237     *count += sizeof(uint32_t);
6238     // WARNING PTR CHECK
6239     *count += 8;
6240     if (toCount->pColorAttachmentLocations) {
6241         if (toCount) {
6242             *count += toCount->colorAttachmentCount * sizeof(const uint32_t);
6243         }
6244     }
6245 }
6246 
count_VkRenderingInputAttachmentIndexInfo(uint32_t featureBits,VkStructureType rootType,const VkRenderingInputAttachmentIndexInfo * toCount,size_t * count)6247 void count_VkRenderingInputAttachmentIndexInfo(uint32_t featureBits, VkStructureType rootType,
6248                                                const VkRenderingInputAttachmentIndexInfo* toCount,
6249                                                size_t* count) {
6250     (void)featureBits;
6251     (void)rootType;
6252     (void)toCount;
6253     (void)count;
6254     *count += sizeof(VkStructureType);
6255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6256         rootType = toCount->sType;
6257     }
6258     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6259     *count += sizeof(uint32_t);
6260     // WARNING PTR CHECK
6261     *count += 8;
6262     if (toCount->pColorAttachmentInputIndices) {
6263         if (toCount) {
6264             *count += toCount->colorAttachmentCount * sizeof(const uint32_t);
6265         }
6266     }
6267     // WARNING PTR CHECK
6268     *count += 8;
6269     if (toCount->pDepthInputAttachmentIndex) {
6270         *count += sizeof(const uint32_t);
6271     }
6272     // WARNING PTR CHECK
6273     *count += 8;
6274     if (toCount->pStencilInputAttachmentIndex) {
6275         *count += sizeof(const uint32_t);
6276     }
6277 }
6278 
count_VkPhysicalDeviceMaintenance6Features(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance6Features * toCount,size_t * count)6279 void count_VkPhysicalDeviceMaintenance6Features(uint32_t featureBits, VkStructureType rootType,
6280                                                 const VkPhysicalDeviceMaintenance6Features* toCount,
6281                                                 size_t* count) {
6282     (void)featureBits;
6283     (void)rootType;
6284     (void)toCount;
6285     (void)count;
6286     *count += sizeof(VkStructureType);
6287     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6288         rootType = toCount->sType;
6289     }
6290     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6291     *count += sizeof(VkBool32);
6292 }
6293 
count_VkPhysicalDeviceMaintenance6Properties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance6Properties * toCount,size_t * count)6294 void count_VkPhysicalDeviceMaintenance6Properties(
6295     uint32_t featureBits, VkStructureType rootType,
6296     const VkPhysicalDeviceMaintenance6Properties* toCount, size_t* count) {
6297     (void)featureBits;
6298     (void)rootType;
6299     (void)toCount;
6300     (void)count;
6301     *count += sizeof(VkStructureType);
6302     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6303         rootType = toCount->sType;
6304     }
6305     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6306     *count += sizeof(VkBool32);
6307     *count += sizeof(uint32_t);
6308     *count += sizeof(VkBool32);
6309 }
6310 
count_VkBindMemoryStatus(uint32_t featureBits,VkStructureType rootType,const VkBindMemoryStatus * toCount,size_t * count)6311 void count_VkBindMemoryStatus(uint32_t featureBits, VkStructureType rootType,
6312                               const VkBindMemoryStatus* toCount, size_t* count) {
6313     (void)featureBits;
6314     (void)rootType;
6315     (void)toCount;
6316     (void)count;
6317     *count += sizeof(VkStructureType);
6318     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6319         rootType = toCount->sType;
6320     }
6321     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6322     *count += sizeof(VkResult);
6323 }
6324 
count_VkBindDescriptorSetsInfo(uint32_t featureBits,VkStructureType rootType,const VkBindDescriptorSetsInfo * toCount,size_t * count)6325 void count_VkBindDescriptorSetsInfo(uint32_t featureBits, VkStructureType rootType,
6326                                     const VkBindDescriptorSetsInfo* toCount, size_t* count) {
6327     (void)featureBits;
6328     (void)rootType;
6329     (void)toCount;
6330     (void)count;
6331     *count += sizeof(VkStructureType);
6332     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6333         rootType = toCount->sType;
6334     }
6335     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6336     *count += sizeof(VkShaderStageFlags);
6337     uint64_t cgen_var_0;
6338     *count += 1 * 8;
6339     *count += sizeof(uint32_t);
6340     *count += sizeof(uint32_t);
6341     if (toCount->descriptorSetCount) {
6342         *count += toCount->descriptorSetCount * 8;
6343     }
6344     *count += sizeof(uint32_t);
6345     // WARNING PTR CHECK
6346     *count += 8;
6347     if (toCount->pDynamicOffsets) {
6348         if (toCount) {
6349             *count += toCount->dynamicOffsetCount * sizeof(const uint32_t);
6350         }
6351     }
6352 }
6353 
count_VkPushConstantsInfo(uint32_t featureBits,VkStructureType rootType,const VkPushConstantsInfo * toCount,size_t * count)6354 void count_VkPushConstantsInfo(uint32_t featureBits, VkStructureType rootType,
6355                                const VkPushConstantsInfo* toCount, size_t* count) {
6356     (void)featureBits;
6357     (void)rootType;
6358     (void)toCount;
6359     (void)count;
6360     *count += sizeof(VkStructureType);
6361     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6362         rootType = toCount->sType;
6363     }
6364     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6365     uint64_t cgen_var_0;
6366     *count += 1 * 8;
6367     *count += sizeof(VkShaderStageFlags);
6368     *count += sizeof(uint32_t);
6369     *count += sizeof(uint32_t);
6370     if (toCount) {
6371         *count += toCount->size * sizeof(const uint8_t);
6372     }
6373 }
6374 
count_VkPushDescriptorSetInfo(uint32_t featureBits,VkStructureType rootType,const VkPushDescriptorSetInfo * toCount,size_t * count)6375 void count_VkPushDescriptorSetInfo(uint32_t featureBits, VkStructureType rootType,
6376                                    const VkPushDescriptorSetInfo* toCount, size_t* count) {
6377     (void)featureBits;
6378     (void)rootType;
6379     (void)toCount;
6380     (void)count;
6381     *count += sizeof(VkStructureType);
6382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6383         rootType = toCount->sType;
6384     }
6385     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6386     *count += sizeof(VkShaderStageFlags);
6387     uint64_t cgen_var_0;
6388     *count += 1 * 8;
6389     *count += sizeof(uint32_t);
6390     *count += sizeof(uint32_t);
6391     if (toCount) {
6392         for (uint32_t i = 0; i < (uint32_t)toCount->descriptorWriteCount; ++i) {
6393             count_VkWriteDescriptorSet(
6394                 featureBits, rootType,
6395                 (const VkWriteDescriptorSet*)(toCount->pDescriptorWrites + i), count);
6396         }
6397     }
6398 }
6399 
count_VkPushDescriptorSetWithTemplateInfo(uint32_t featureBits,VkStructureType rootType,const VkPushDescriptorSetWithTemplateInfo * toCount,size_t * count)6400 void count_VkPushDescriptorSetWithTemplateInfo(uint32_t featureBits, VkStructureType rootType,
6401                                                const VkPushDescriptorSetWithTemplateInfo* toCount,
6402                                                size_t* count) {
6403     (void)featureBits;
6404     (void)rootType;
6405     (void)toCount;
6406     (void)count;
6407     *count += sizeof(VkStructureType);
6408     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6409         rootType = toCount->sType;
6410     }
6411     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6412     uint64_t cgen_var_0;
6413     *count += 1 * 8;
6414     uint64_t cgen_var_1;
6415     *count += 1 * 8;
6416     *count += sizeof(uint32_t);
6417     *count += sizeof(const uint8_t);
6418 }
6419 
count_VkPhysicalDevicePipelineProtectedAccessFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineProtectedAccessFeatures * toCount,size_t * count)6420 void count_VkPhysicalDevicePipelineProtectedAccessFeatures(
6421     uint32_t featureBits, VkStructureType rootType,
6422     const VkPhysicalDevicePipelineProtectedAccessFeatures* toCount, size_t* count) {
6423     (void)featureBits;
6424     (void)rootType;
6425     (void)toCount;
6426     (void)count;
6427     *count += sizeof(VkStructureType);
6428     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6429         rootType = toCount->sType;
6430     }
6431     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6432     *count += sizeof(VkBool32);
6433 }
6434 
count_VkPhysicalDevicePipelineRobustnessFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessFeatures * toCount,size_t * count)6435 void count_VkPhysicalDevicePipelineRobustnessFeatures(
6436     uint32_t featureBits, VkStructureType rootType,
6437     const VkPhysicalDevicePipelineRobustnessFeatures* toCount, size_t* count) {
6438     (void)featureBits;
6439     (void)rootType;
6440     (void)toCount;
6441     (void)count;
6442     *count += sizeof(VkStructureType);
6443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6444         rootType = toCount->sType;
6445     }
6446     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6447     *count += sizeof(VkBool32);
6448 }
6449 
count_VkPhysicalDevicePipelineRobustnessProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessProperties * toCount,size_t * count)6450 void count_VkPhysicalDevicePipelineRobustnessProperties(
6451     uint32_t featureBits, VkStructureType rootType,
6452     const VkPhysicalDevicePipelineRobustnessProperties* toCount, size_t* count) {
6453     (void)featureBits;
6454     (void)rootType;
6455     (void)toCount;
6456     (void)count;
6457     *count += sizeof(VkStructureType);
6458     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6459         rootType = toCount->sType;
6460     }
6461     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6462     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6463     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6464     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6465     *count += sizeof(VkPipelineRobustnessImageBehavior);
6466 }
6467 
count_VkPipelineRobustnessCreateInfo(uint32_t featureBits,VkStructureType rootType,const VkPipelineRobustnessCreateInfo * toCount,size_t * count)6468 void count_VkPipelineRobustnessCreateInfo(uint32_t featureBits, VkStructureType rootType,
6469                                           const VkPipelineRobustnessCreateInfo* toCount,
6470                                           size_t* count) {
6471     (void)featureBits;
6472     (void)rootType;
6473     (void)toCount;
6474     (void)count;
6475     *count += sizeof(VkStructureType);
6476     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6477         rootType = toCount->sType;
6478     }
6479     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6480     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6481     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6482     *count += sizeof(VkPipelineRobustnessBufferBehavior);
6483     *count += sizeof(VkPipelineRobustnessImageBehavior);
6484 }
6485 
count_VkPhysicalDeviceHostImageCopyFeatures(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyFeatures * toCount,size_t * count)6486 void count_VkPhysicalDeviceHostImageCopyFeatures(
6487     uint32_t featureBits, VkStructureType rootType,
6488     const VkPhysicalDeviceHostImageCopyFeatures* toCount, size_t* count) {
6489     (void)featureBits;
6490     (void)rootType;
6491     (void)toCount;
6492     (void)count;
6493     *count += sizeof(VkStructureType);
6494     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6495         rootType = toCount->sType;
6496     }
6497     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6498     *count += sizeof(VkBool32);
6499 }
6500 
count_VkPhysicalDeviceHostImageCopyProperties(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyProperties * toCount,size_t * count)6501 void count_VkPhysicalDeviceHostImageCopyProperties(
6502     uint32_t featureBits, VkStructureType rootType,
6503     const VkPhysicalDeviceHostImageCopyProperties* toCount, size_t* count) {
6504     (void)featureBits;
6505     (void)rootType;
6506     (void)toCount;
6507     (void)count;
6508     *count += sizeof(VkStructureType);
6509     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6510         rootType = toCount->sType;
6511     }
6512     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6513     *count += sizeof(uint32_t);
6514     // WARNING PTR CHECK
6515     *count += 8;
6516     if (toCount->pCopySrcLayouts) {
6517         if (toCount) {
6518             *count += toCount->copySrcLayoutCount * sizeof(VkImageLayout);
6519         }
6520     }
6521     *count += sizeof(uint32_t);
6522     // WARNING PTR CHECK
6523     *count += 8;
6524     if (toCount->pCopyDstLayouts) {
6525         if (toCount) {
6526             *count += toCount->copyDstLayoutCount * sizeof(VkImageLayout);
6527         }
6528     }
6529     *count += VK_UUID_SIZE * sizeof(uint8_t);
6530     *count += sizeof(VkBool32);
6531 }
6532 
count_VkMemoryToImageCopy(uint32_t featureBits,VkStructureType rootType,const VkMemoryToImageCopy * toCount,size_t * count)6533 void count_VkMemoryToImageCopy(uint32_t featureBits, VkStructureType rootType,
6534                                const VkMemoryToImageCopy* toCount, size_t* count) {
6535     (void)featureBits;
6536     (void)rootType;
6537     (void)toCount;
6538     (void)count;
6539     *count += sizeof(VkStructureType);
6540     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6541         rootType = toCount->sType;
6542     }
6543     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6544     *count += sizeof(const uint8_t);
6545     *count += sizeof(uint32_t);
6546     *count += sizeof(uint32_t);
6547     count_VkImageSubresourceLayers(featureBits, rootType,
6548                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
6549     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
6550     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
6551 }
6552 
count_VkImageToMemoryCopy(uint32_t featureBits,VkStructureType rootType,const VkImageToMemoryCopy * toCount,size_t * count)6553 void count_VkImageToMemoryCopy(uint32_t featureBits, VkStructureType rootType,
6554                                const VkImageToMemoryCopy* toCount, size_t* count) {
6555     (void)featureBits;
6556     (void)rootType;
6557     (void)toCount;
6558     (void)count;
6559     *count += sizeof(VkStructureType);
6560     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6561         rootType = toCount->sType;
6562     }
6563     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6564     *count += sizeof(uint8_t);
6565     *count += sizeof(uint32_t);
6566     *count += sizeof(uint32_t);
6567     count_VkImageSubresourceLayers(featureBits, rootType,
6568                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
6569     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
6570     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
6571 }
6572 
count_VkCopyMemoryToImageInfo(uint32_t featureBits,VkStructureType rootType,const VkCopyMemoryToImageInfo * toCount,size_t * count)6573 void count_VkCopyMemoryToImageInfo(uint32_t featureBits, VkStructureType rootType,
6574                                    const VkCopyMemoryToImageInfo* toCount, size_t* count) {
6575     (void)featureBits;
6576     (void)rootType;
6577     (void)toCount;
6578     (void)count;
6579     *count += sizeof(VkStructureType);
6580     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6581         rootType = toCount->sType;
6582     }
6583     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6584     *count += sizeof(VkHostImageCopyFlags);
6585     uint64_t cgen_var_0;
6586     *count += 1 * 8;
6587     *count += sizeof(VkImageLayout);
6588     *count += sizeof(uint32_t);
6589     if (toCount) {
6590         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6591             count_VkMemoryToImageCopy(featureBits, rootType,
6592                                       (const VkMemoryToImageCopy*)(toCount->pRegions + i), count);
6593         }
6594     }
6595 }
6596 
count_VkCopyImageToMemoryInfo(uint32_t featureBits,VkStructureType rootType,const VkCopyImageToMemoryInfo * toCount,size_t * count)6597 void count_VkCopyImageToMemoryInfo(uint32_t featureBits, VkStructureType rootType,
6598                                    const VkCopyImageToMemoryInfo* toCount, size_t* count) {
6599     (void)featureBits;
6600     (void)rootType;
6601     (void)toCount;
6602     (void)count;
6603     *count += sizeof(VkStructureType);
6604     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6605         rootType = toCount->sType;
6606     }
6607     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6608     *count += sizeof(VkHostImageCopyFlags);
6609     uint64_t cgen_var_0;
6610     *count += 1 * 8;
6611     *count += sizeof(VkImageLayout);
6612     *count += sizeof(uint32_t);
6613     if (toCount) {
6614         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6615             count_VkImageToMemoryCopy(featureBits, rootType,
6616                                       (const VkImageToMemoryCopy*)(toCount->pRegions + i), count);
6617         }
6618     }
6619 }
6620 
count_VkCopyImageToImageInfo(uint32_t featureBits,VkStructureType rootType,const VkCopyImageToImageInfo * toCount,size_t * count)6621 void count_VkCopyImageToImageInfo(uint32_t featureBits, VkStructureType rootType,
6622                                   const VkCopyImageToImageInfo* toCount, size_t* count) {
6623     (void)featureBits;
6624     (void)rootType;
6625     (void)toCount;
6626     (void)count;
6627     *count += sizeof(VkStructureType);
6628     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6629         rootType = toCount->sType;
6630     }
6631     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6632     *count += sizeof(VkHostImageCopyFlags);
6633     uint64_t cgen_var_0;
6634     *count += 1 * 8;
6635     *count += sizeof(VkImageLayout);
6636     uint64_t cgen_var_1;
6637     *count += 1 * 8;
6638     *count += sizeof(VkImageLayout);
6639     *count += sizeof(uint32_t);
6640     if (toCount) {
6641         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6642             count_VkImageCopy2(featureBits, rootType, (const VkImageCopy2*)(toCount->pRegions + i),
6643                                count);
6644         }
6645     }
6646 }
6647 
count_VkHostImageLayoutTransitionInfo(uint32_t featureBits,VkStructureType rootType,const VkHostImageLayoutTransitionInfo * toCount,size_t * count)6648 void count_VkHostImageLayoutTransitionInfo(uint32_t featureBits, VkStructureType rootType,
6649                                            const VkHostImageLayoutTransitionInfo* toCount,
6650                                            size_t* count) {
6651     (void)featureBits;
6652     (void)rootType;
6653     (void)toCount;
6654     (void)count;
6655     *count += sizeof(VkStructureType);
6656     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6657         rootType = toCount->sType;
6658     }
6659     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6660     uint64_t cgen_var_0;
6661     *count += 1 * 8;
6662     *count += sizeof(VkImageLayout);
6663     *count += sizeof(VkImageLayout);
6664     count_VkImageSubresourceRange(featureBits, rootType,
6665                                   (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
6666 }
6667 
count_VkSubresourceHostMemcpySize(uint32_t featureBits,VkStructureType rootType,const VkSubresourceHostMemcpySize * toCount,size_t * count)6668 void count_VkSubresourceHostMemcpySize(uint32_t featureBits, VkStructureType rootType,
6669                                        const VkSubresourceHostMemcpySize* toCount, size_t* count) {
6670     (void)featureBits;
6671     (void)rootType;
6672     (void)toCount;
6673     (void)count;
6674     *count += sizeof(VkStructureType);
6675     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6676         rootType = toCount->sType;
6677     }
6678     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6679     *count += sizeof(VkDeviceSize);
6680 }
6681 
count_VkHostImageCopyDevicePerformanceQuery(uint32_t featureBits,VkStructureType rootType,const VkHostImageCopyDevicePerformanceQuery * toCount,size_t * count)6682 void count_VkHostImageCopyDevicePerformanceQuery(
6683     uint32_t featureBits, VkStructureType rootType,
6684     const VkHostImageCopyDevicePerformanceQuery* toCount, size_t* count) {
6685     (void)featureBits;
6686     (void)rootType;
6687     (void)toCount;
6688     (void)count;
6689     *count += sizeof(VkStructureType);
6690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6691         rootType = toCount->sType;
6692     }
6693     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6694     *count += sizeof(VkBool32);
6695     *count += sizeof(VkBool32);
6696 }
6697 
6698 #endif
6699 #ifdef VK_KHR_external_semaphore_fd
count_VkImportSemaphoreFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * toCount,size_t * count)6700 void count_VkImportSemaphoreFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
6701                                       const VkImportSemaphoreFdInfoKHR* toCount, size_t* count) {
6702     (void)featureBits;
6703     (void)rootType;
6704     (void)toCount;
6705     (void)count;
6706     *count += sizeof(VkStructureType);
6707     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6708         rootType = toCount->sType;
6709     }
6710     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6711     uint64_t cgen_var_0;
6712     *count += 1 * 8;
6713     *count += sizeof(VkSemaphoreImportFlags);
6714     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
6715     *count += sizeof(int);
6716 }
6717 
count_VkSemaphoreGetFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * toCount,size_t * count)6718 void count_VkSemaphoreGetFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
6719                                    const VkSemaphoreGetFdInfoKHR* toCount, size_t* count) {
6720     (void)featureBits;
6721     (void)rootType;
6722     (void)toCount;
6723     (void)count;
6724     *count += sizeof(VkStructureType);
6725     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6726         rootType = toCount->sType;
6727     }
6728     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6729     uint64_t cgen_var_0;
6730     *count += 1 * 8;
6731     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
6732 }
6733 
6734 #endif
6735 #ifdef VK_KHR_incremental_present
count_VkRectLayerKHR(uint32_t featureBits,VkStructureType rootType,const VkRectLayerKHR * toCount,size_t * count)6736 void count_VkRectLayerKHR(uint32_t featureBits, VkStructureType rootType,
6737                           const VkRectLayerKHR* toCount, size_t* count) {
6738     (void)featureBits;
6739     (void)rootType;
6740     (void)toCount;
6741     (void)count;
6742     count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->offset), count);
6743     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->extent), count);
6744     *count += sizeof(uint32_t);
6745 }
6746 
count_VkPresentRegionKHR(uint32_t featureBits,VkStructureType rootType,const VkPresentRegionKHR * toCount,size_t * count)6747 void count_VkPresentRegionKHR(uint32_t featureBits, VkStructureType rootType,
6748                               const VkPresentRegionKHR* toCount, size_t* count) {
6749     (void)featureBits;
6750     (void)rootType;
6751     (void)toCount;
6752     (void)count;
6753     *count += sizeof(uint32_t);
6754     // WARNING PTR CHECK
6755     *count += 8;
6756     if (toCount->pRectangles) {
6757         if (toCount) {
6758             for (uint32_t i = 0; i < (uint32_t)toCount->rectangleCount; ++i) {
6759                 count_VkRectLayerKHR(featureBits, rootType,
6760                                      (const VkRectLayerKHR*)(toCount->pRectangles + i), count);
6761             }
6762         }
6763     }
6764 }
6765 
count_VkPresentRegionsKHR(uint32_t featureBits,VkStructureType rootType,const VkPresentRegionsKHR * toCount,size_t * count)6766 void count_VkPresentRegionsKHR(uint32_t featureBits, VkStructureType rootType,
6767                                const VkPresentRegionsKHR* toCount, size_t* count) {
6768     (void)featureBits;
6769     (void)rootType;
6770     (void)toCount;
6771     (void)count;
6772     *count += sizeof(VkStructureType);
6773     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6774         rootType = toCount->sType;
6775     }
6776     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6777     *count += sizeof(uint32_t);
6778     // WARNING PTR CHECK
6779     *count += 8;
6780     if (toCount->pRegions) {
6781         if (toCount) {
6782             for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i) {
6783                 count_VkPresentRegionKHR(featureBits, rootType,
6784                                          (const VkPresentRegionKHR*)(toCount->pRegions + i), count);
6785             }
6786         }
6787     }
6788 }
6789 
6790 #endif
6791 #ifdef VK_KHR_external_fence_fd
count_VkImportFenceFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkImportFenceFdInfoKHR * toCount,size_t * count)6792 void count_VkImportFenceFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
6793                                   const VkImportFenceFdInfoKHR* toCount, size_t* count) {
6794     (void)featureBits;
6795     (void)rootType;
6796     (void)toCount;
6797     (void)count;
6798     *count += sizeof(VkStructureType);
6799     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6800         rootType = toCount->sType;
6801     }
6802     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6803     uint64_t cgen_var_0;
6804     *count += 1 * 8;
6805     *count += sizeof(VkFenceImportFlags);
6806     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
6807     *count += sizeof(int);
6808 }
6809 
count_VkFenceGetFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkFenceGetFdInfoKHR * toCount,size_t * count)6810 void count_VkFenceGetFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
6811                                const VkFenceGetFdInfoKHR* toCount, size_t* count) {
6812     (void)featureBits;
6813     (void)rootType;
6814     (void)toCount;
6815     (void)count;
6816     *count += sizeof(VkStructureType);
6817     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6818         rootType = toCount->sType;
6819     }
6820     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6821     uint64_t cgen_var_0;
6822     *count += 1 * 8;
6823     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
6824 }
6825 
6826 #endif
6827 #ifdef VK_KHR_pipeline_executable_properties
count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * toCount,size_t * count)6828 void count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
6829     uint32_t featureBits, VkStructureType rootType,
6830     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toCount, size_t* count) {
6831     (void)featureBits;
6832     (void)rootType;
6833     (void)toCount;
6834     (void)count;
6835     *count += sizeof(VkStructureType);
6836     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6837         rootType = toCount->sType;
6838     }
6839     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6840     *count += sizeof(VkBool32);
6841 }
6842 
count_VkPipelineInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineInfoKHR * toCount,size_t * count)6843 void count_VkPipelineInfoKHR(uint32_t featureBits, VkStructureType rootType,
6844                              const VkPipelineInfoKHR* toCount, size_t* count) {
6845     (void)featureBits;
6846     (void)rootType;
6847     (void)toCount;
6848     (void)count;
6849     *count += sizeof(VkStructureType);
6850     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6851         rootType = toCount->sType;
6852     }
6853     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6854     uint64_t cgen_var_0;
6855     *count += 1 * 8;
6856 }
6857 
count_VkPipelineExecutablePropertiesKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * toCount,size_t * count)6858 void count_VkPipelineExecutablePropertiesKHR(uint32_t featureBits, VkStructureType rootType,
6859                                              const VkPipelineExecutablePropertiesKHR* toCount,
6860                                              size_t* count) {
6861     (void)featureBits;
6862     (void)rootType;
6863     (void)toCount;
6864     (void)count;
6865     *count += sizeof(VkStructureType);
6866     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6867         rootType = toCount->sType;
6868     }
6869     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6870     *count += sizeof(VkShaderStageFlags);
6871     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6872     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6873     *count += sizeof(uint32_t);
6874 }
6875 
count_VkPipelineExecutableInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableInfoKHR * toCount,size_t * count)6876 void count_VkPipelineExecutableInfoKHR(uint32_t featureBits, VkStructureType rootType,
6877                                        const VkPipelineExecutableInfoKHR* toCount, size_t* count) {
6878     (void)featureBits;
6879     (void)rootType;
6880     (void)toCount;
6881     (void)count;
6882     *count += sizeof(VkStructureType);
6883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6884         rootType = toCount->sType;
6885     }
6886     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6887     uint64_t cgen_var_0;
6888     *count += 1 * 8;
6889     *count += sizeof(uint32_t);
6890 }
6891 
count_VkPipelineExecutableStatisticValueKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * toCount,size_t * count)6892 void count_VkPipelineExecutableStatisticValueKHR(
6893     uint32_t featureBits, VkStructureType rootType,
6894     const VkPipelineExecutableStatisticValueKHR* toCount, size_t* count) {
6895     (void)featureBits;
6896     (void)rootType;
6897     (void)toCount;
6898     (void)count;
6899     *count += sizeof(VkBool32);
6900 }
6901 
count_VkPipelineExecutableStatisticKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * toCount,size_t * count)6902 void count_VkPipelineExecutableStatisticKHR(uint32_t featureBits, VkStructureType rootType,
6903                                             const VkPipelineExecutableStatisticKHR* toCount,
6904                                             size_t* count) {
6905     (void)featureBits;
6906     (void)rootType;
6907     (void)toCount;
6908     (void)count;
6909     *count += sizeof(VkStructureType);
6910     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6911         rootType = toCount->sType;
6912     }
6913     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6914     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6915     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6916     *count += sizeof(VkPipelineExecutableStatisticFormatKHR);
6917     count_VkPipelineExecutableStatisticValueKHR(
6918         featureBits, rootType, (VkPipelineExecutableStatisticValueKHR*)(&toCount->value), count);
6919 }
6920 
count_VkPipelineExecutableInternalRepresentationKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * toCount,size_t * count)6921 void count_VkPipelineExecutableInternalRepresentationKHR(
6922     uint32_t featureBits, VkStructureType rootType,
6923     const VkPipelineExecutableInternalRepresentationKHR* toCount, size_t* count) {
6924     (void)featureBits;
6925     (void)rootType;
6926     (void)toCount;
6927     (void)count;
6928     *count += sizeof(VkStructureType);
6929     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6930         rootType = toCount->sType;
6931     }
6932     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6933     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6934     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6935     *count += sizeof(VkBool32);
6936     *count += 8;
6937     // WARNING PTR CHECK
6938     *count += 8;
6939     if (toCount->pData) {
6940         if (toCount) {
6941             *count += toCount->dataSize * sizeof(uint8_t);
6942         }
6943     }
6944 }
6945 
6946 #endif
6947 #ifdef VK_ANDROID_native_buffer
count_VkNativeBufferUsage2ANDROID(uint32_t featureBits,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * toCount,size_t * count)6948 void count_VkNativeBufferUsage2ANDROID(uint32_t featureBits, VkStructureType rootType,
6949                                        const VkNativeBufferUsage2ANDROID* toCount, size_t* count) {
6950     (void)featureBits;
6951     (void)rootType;
6952     (void)toCount;
6953     (void)count;
6954     *count += sizeof(uint64_t);
6955     *count += sizeof(uint64_t);
6956 }
6957 
count_VkNativeBufferANDROID(uint32_t featureBits,VkStructureType rootType,const VkNativeBufferANDROID * toCount,size_t * count)6958 void count_VkNativeBufferANDROID(uint32_t featureBits, VkStructureType rootType,
6959                                  const VkNativeBufferANDROID* toCount, size_t* count) {
6960     (void)featureBits;
6961     (void)rootType;
6962     (void)toCount;
6963     (void)count;
6964     *count += sizeof(VkStructureType);
6965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6966         rootType = toCount->sType;
6967     }
6968     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6969     // WARNING PTR CHECK
6970     *count += 8;
6971     if (toCount->handle) {
6972         *count += sizeof(const uint32_t);
6973     }
6974     *count += sizeof(int);
6975     *count += sizeof(int);
6976     *count += sizeof(int);
6977     count_VkNativeBufferUsage2ANDROID(featureBits, rootType,
6978                                       (VkNativeBufferUsage2ANDROID*)(&toCount->usage2), count);
6979 }
6980 
count_VkSwapchainImageCreateInfoANDROID(uint32_t featureBits,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * toCount,size_t * count)6981 void count_VkSwapchainImageCreateInfoANDROID(uint32_t featureBits, VkStructureType rootType,
6982                                              const VkSwapchainImageCreateInfoANDROID* toCount,
6983                                              size_t* count) {
6984     (void)featureBits;
6985     (void)rootType;
6986     (void)toCount;
6987     (void)count;
6988     *count += sizeof(VkStructureType);
6989     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6990         rootType = toCount->sType;
6991     }
6992     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6993     *count += sizeof(VkSwapchainImageUsageFlagsANDROID);
6994 }
6995 
count_VkPhysicalDevicePresentationPropertiesANDROID(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * toCount,size_t * count)6996 void count_VkPhysicalDevicePresentationPropertiesANDROID(
6997     uint32_t featureBits, VkStructureType rootType,
6998     const VkPhysicalDevicePresentationPropertiesANDROID* toCount, size_t* count) {
6999     (void)featureBits;
7000     (void)rootType;
7001     (void)toCount;
7002     (void)count;
7003     *count += sizeof(VkStructureType);
7004     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7005         rootType = toCount->sType;
7006     }
7007     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7008     *count += sizeof(VkBool32);
7009 }
7010 
7011 #endif
7012 #ifdef VK_EXT_transform_feedback
count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * toCount,size_t * count)7013 void count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
7014     uint32_t featureBits, VkStructureType rootType,
7015     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* toCount, size_t* count) {
7016     (void)featureBits;
7017     (void)rootType;
7018     (void)toCount;
7019     (void)count;
7020     *count += sizeof(VkStructureType);
7021     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7022         rootType = toCount->sType;
7023     }
7024     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7025     *count += sizeof(VkBool32);
7026     *count += sizeof(VkBool32);
7027 }
7028 
count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * toCount,size_t * count)7029 void count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
7030     uint32_t featureBits, VkStructureType rootType,
7031     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* toCount, size_t* count) {
7032     (void)featureBits;
7033     (void)rootType;
7034     (void)toCount;
7035     (void)count;
7036     *count += sizeof(VkStructureType);
7037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7038         rootType = toCount->sType;
7039     }
7040     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7041     *count += sizeof(uint32_t);
7042     *count += sizeof(uint32_t);
7043     *count += sizeof(VkDeviceSize);
7044     *count += sizeof(uint32_t);
7045     *count += sizeof(uint32_t);
7046     *count += sizeof(uint32_t);
7047     *count += sizeof(VkBool32);
7048     *count += sizeof(VkBool32);
7049     *count += sizeof(VkBool32);
7050     *count += sizeof(VkBool32);
7051 }
7052 
count_VkPipelineRasterizationStateStreamCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * toCount,size_t * count)7053 void count_VkPipelineRasterizationStateStreamCreateInfoEXT(
7054     uint32_t featureBits, VkStructureType rootType,
7055     const VkPipelineRasterizationStateStreamCreateInfoEXT* toCount, size_t* count) {
7056     (void)featureBits;
7057     (void)rootType;
7058     (void)toCount;
7059     (void)count;
7060     *count += sizeof(VkStructureType);
7061     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7062         rootType = toCount->sType;
7063     }
7064     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7065     *count += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
7066     *count += sizeof(uint32_t);
7067 }
7068 
7069 #endif
7070 #ifdef VK_EXT_depth_clip_enable
count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * toCount,size_t * count)7071 void count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
7072     uint32_t featureBits, VkStructureType rootType,
7073     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* toCount, size_t* count) {
7074     (void)featureBits;
7075     (void)rootType;
7076     (void)toCount;
7077     (void)count;
7078     *count += sizeof(VkStructureType);
7079     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7080         rootType = toCount->sType;
7081     }
7082     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7083     *count += sizeof(VkBool32);
7084 }
7085 
count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * toCount,size_t * count)7086 void count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
7087     uint32_t featureBits, VkStructureType rootType,
7088     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* toCount, size_t* count) {
7089     (void)featureBits;
7090     (void)rootType;
7091     (void)toCount;
7092     (void)count;
7093     *count += sizeof(VkStructureType);
7094     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7095         rootType = toCount->sType;
7096     }
7097     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7098     *count += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
7099     *count += sizeof(VkBool32);
7100 }
7101 
7102 #endif
7103 #ifdef VK_EXT_image_drm_format_modifier
count_VkDrmFormatModifierPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * toCount,size_t * count)7104 void count_VkDrmFormatModifierPropertiesEXT(uint32_t featureBits, VkStructureType rootType,
7105                                             const VkDrmFormatModifierPropertiesEXT* toCount,
7106                                             size_t* count) {
7107     (void)featureBits;
7108     (void)rootType;
7109     (void)toCount;
7110     (void)count;
7111     *count += sizeof(uint64_t);
7112     *count += sizeof(uint32_t);
7113     *count += sizeof(VkFormatFeatureFlags);
7114 }
7115 
count_VkDrmFormatModifierPropertiesListEXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * toCount,size_t * count)7116 void count_VkDrmFormatModifierPropertiesListEXT(uint32_t featureBits, VkStructureType rootType,
7117                                                 const VkDrmFormatModifierPropertiesListEXT* toCount,
7118                                                 size_t* count) {
7119     (void)featureBits;
7120     (void)rootType;
7121     (void)toCount;
7122     (void)count;
7123     *count += sizeof(VkStructureType);
7124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7125         rootType = toCount->sType;
7126     }
7127     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7128     *count += sizeof(uint32_t);
7129     // WARNING PTR CHECK
7130     *count += 8;
7131     if (toCount->pDrmFormatModifierProperties) {
7132         if (toCount) {
7133             for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i) {
7134                 count_VkDrmFormatModifierPropertiesEXT(
7135                     featureBits, rootType,
7136                     (VkDrmFormatModifierPropertiesEXT*)(toCount->pDrmFormatModifierProperties + i),
7137                     count);
7138             }
7139         }
7140     }
7141 }
7142 
count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * toCount,size_t * count)7143 void count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
7144     uint32_t featureBits, VkStructureType rootType,
7145     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toCount, size_t* count) {
7146     (void)featureBits;
7147     (void)rootType;
7148     (void)toCount;
7149     (void)count;
7150     *count += sizeof(VkStructureType);
7151     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7152         rootType = toCount->sType;
7153     }
7154     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7155     *count += sizeof(uint64_t);
7156     *count += sizeof(VkSharingMode);
7157     *count += sizeof(uint32_t);
7158     // WARNING PTR CHECK
7159     *count += 8;
7160     if (toCount->pQueueFamilyIndices) {
7161         if (toCount) {
7162             *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
7163         }
7164     }
7165 }
7166 
count_VkImageDrmFormatModifierListCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * toCount,size_t * count)7167 void count_VkImageDrmFormatModifierListCreateInfoEXT(
7168     uint32_t featureBits, VkStructureType rootType,
7169     const VkImageDrmFormatModifierListCreateInfoEXT* toCount, size_t* count) {
7170     (void)featureBits;
7171     (void)rootType;
7172     (void)toCount;
7173     (void)count;
7174     *count += sizeof(VkStructureType);
7175     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7176         rootType = toCount->sType;
7177     }
7178     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7179     *count += sizeof(uint32_t);
7180     if (toCount) {
7181         *count += toCount->drmFormatModifierCount * sizeof(const uint64_t);
7182     }
7183 }
7184 
count_VkImageDrmFormatModifierExplicitCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * toCount,size_t * count)7185 void count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
7186     uint32_t featureBits, VkStructureType rootType,
7187     const VkImageDrmFormatModifierExplicitCreateInfoEXT* toCount, size_t* count) {
7188     (void)featureBits;
7189     (void)rootType;
7190     (void)toCount;
7191     (void)count;
7192     *count += sizeof(VkStructureType);
7193     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7194         rootType = toCount->sType;
7195     }
7196     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7197     *count += sizeof(uint64_t);
7198     *count += sizeof(uint32_t);
7199     if (toCount) {
7200         for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierPlaneCount; ++i) {
7201             count_VkSubresourceLayout(featureBits, rootType,
7202                                       (const VkSubresourceLayout*)(toCount->pPlaneLayouts + i),
7203                                       count);
7204         }
7205     }
7206 }
7207 
count_VkImageDrmFormatModifierPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * toCount,size_t * count)7208 void count_VkImageDrmFormatModifierPropertiesEXT(
7209     uint32_t featureBits, VkStructureType rootType,
7210     const VkImageDrmFormatModifierPropertiesEXT* toCount, size_t* count) {
7211     (void)featureBits;
7212     (void)rootType;
7213     (void)toCount;
7214     (void)count;
7215     *count += sizeof(VkStructureType);
7216     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7217         rootType = toCount->sType;
7218     }
7219     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7220     *count += sizeof(uint64_t);
7221 }
7222 
count_VkDrmFormatModifierProperties2EXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * toCount,size_t * count)7223 void count_VkDrmFormatModifierProperties2EXT(uint32_t featureBits, VkStructureType rootType,
7224                                              const VkDrmFormatModifierProperties2EXT* toCount,
7225                                              size_t* count) {
7226     (void)featureBits;
7227     (void)rootType;
7228     (void)toCount;
7229     (void)count;
7230     *count += sizeof(uint64_t);
7231     *count += sizeof(uint32_t);
7232     *count += sizeof(VkFormatFeatureFlags2);
7233 }
7234 
count_VkDrmFormatModifierPropertiesList2EXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * toCount,size_t * count)7235 void count_VkDrmFormatModifierPropertiesList2EXT(
7236     uint32_t featureBits, VkStructureType rootType,
7237     const VkDrmFormatModifierPropertiesList2EXT* toCount, size_t* count) {
7238     (void)featureBits;
7239     (void)rootType;
7240     (void)toCount;
7241     (void)count;
7242     *count += sizeof(VkStructureType);
7243     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7244         rootType = toCount->sType;
7245     }
7246     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7247     *count += sizeof(uint32_t);
7248     // WARNING PTR CHECK
7249     *count += 8;
7250     if (toCount->pDrmFormatModifierProperties) {
7251         if (toCount) {
7252             for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i) {
7253                 count_VkDrmFormatModifierProperties2EXT(
7254                     featureBits, rootType,
7255                     (VkDrmFormatModifierProperties2EXT*)(toCount->pDrmFormatModifierProperties + i),
7256                     count);
7257             }
7258         }
7259     }
7260 }
7261 
7262 #endif
7263 #ifdef VK_EXT_vertex_attribute_divisor
count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * toCount,size_t * count)7264 void count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
7265     uint32_t featureBits, VkStructureType rootType,
7266     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toCount, size_t* count) {
7267     (void)featureBits;
7268     (void)rootType;
7269     (void)toCount;
7270     (void)count;
7271     *count += sizeof(VkStructureType);
7272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7273         rootType = toCount->sType;
7274     }
7275     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7276     *count += sizeof(uint32_t);
7277 }
7278 
7279 #endif
7280 #ifdef VK_EXT_fragment_density_map
count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * toCount,size_t * count)7281 void count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
7282     uint32_t featureBits, VkStructureType rootType,
7283     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* toCount, size_t* count) {
7284     (void)featureBits;
7285     (void)rootType;
7286     (void)toCount;
7287     (void)count;
7288     *count += sizeof(VkStructureType);
7289     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7290         rootType = toCount->sType;
7291     }
7292     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7293     *count += sizeof(VkBool32);
7294     *count += sizeof(VkBool32);
7295     *count += sizeof(VkBool32);
7296 }
7297 
count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * toCount,size_t * count)7298 void count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
7299     uint32_t featureBits, VkStructureType rootType,
7300     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* toCount, size_t* count) {
7301     (void)featureBits;
7302     (void)rootType;
7303     (void)toCount;
7304     (void)count;
7305     *count += sizeof(VkStructureType);
7306     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7307         rootType = toCount->sType;
7308     }
7309     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7310     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->minFragmentDensityTexelSize),
7311                      count);
7312     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxFragmentDensityTexelSize),
7313                      count);
7314     *count += sizeof(VkBool32);
7315 }
7316 
count_VkRenderPassFragmentDensityMapCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * toCount,size_t * count)7317 void count_VkRenderPassFragmentDensityMapCreateInfoEXT(
7318     uint32_t featureBits, VkStructureType rootType,
7319     const VkRenderPassFragmentDensityMapCreateInfoEXT* toCount, size_t* count) {
7320     (void)featureBits;
7321     (void)rootType;
7322     (void)toCount;
7323     (void)count;
7324     *count += sizeof(VkStructureType);
7325     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7326         rootType = toCount->sType;
7327     }
7328     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7329     count_VkAttachmentReference(featureBits, rootType,
7330                                 (VkAttachmentReference*)(&toCount->fragmentDensityMapAttachment),
7331                                 count);
7332 }
7333 
count_VkRenderingFragmentDensityMapAttachmentInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * toCount,size_t * count)7334 void count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
7335     uint32_t featureBits, VkStructureType rootType,
7336     const VkRenderingFragmentDensityMapAttachmentInfoEXT* toCount, size_t* count) {
7337     (void)featureBits;
7338     (void)rootType;
7339     (void)toCount;
7340     (void)count;
7341     *count += sizeof(VkStructureType);
7342     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7343         rootType = toCount->sType;
7344     }
7345     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7346     uint64_t cgen_var_0;
7347     *count += 1 * 8;
7348     *count += sizeof(VkImageLayout);
7349 }
7350 
7351 #endif
7352 #ifdef VK_EXT_provoking_vertex
count_VkPhysicalDeviceProvokingVertexFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * toCount,size_t * count)7353 void count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
7354     uint32_t featureBits, VkStructureType rootType,
7355     const VkPhysicalDeviceProvokingVertexFeaturesEXT* toCount, size_t* count) {
7356     (void)featureBits;
7357     (void)rootType;
7358     (void)toCount;
7359     (void)count;
7360     *count += sizeof(VkStructureType);
7361     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7362         rootType = toCount->sType;
7363     }
7364     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7365     *count += sizeof(VkBool32);
7366     *count += sizeof(VkBool32);
7367 }
7368 
count_VkPhysicalDeviceProvokingVertexPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * toCount,size_t * count)7369 void count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
7370     uint32_t featureBits, VkStructureType rootType,
7371     const VkPhysicalDeviceProvokingVertexPropertiesEXT* toCount, size_t* count) {
7372     (void)featureBits;
7373     (void)rootType;
7374     (void)toCount;
7375     (void)count;
7376     *count += sizeof(VkStructureType);
7377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7378         rootType = toCount->sType;
7379     }
7380     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7381     *count += sizeof(VkBool32);
7382     *count += sizeof(VkBool32);
7383 }
7384 
count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * toCount,size_t * count)7385 void count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
7386     uint32_t featureBits, VkStructureType rootType,
7387     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toCount, size_t* count) {
7388     (void)featureBits;
7389     (void)rootType;
7390     (void)toCount;
7391     (void)count;
7392     *count += sizeof(VkStructureType);
7393     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7394         rootType = toCount->sType;
7395     }
7396     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7397     *count += sizeof(VkProvokingVertexModeEXT);
7398 }
7399 
7400 #endif
7401 #ifdef VK_EXT_extended_dynamic_state
count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * toCount,size_t * count)7402 void count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
7403     uint32_t featureBits, VkStructureType rootType,
7404     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toCount, size_t* count) {
7405     (void)featureBits;
7406     (void)rootType;
7407     (void)toCount;
7408     (void)count;
7409     *count += sizeof(VkStructureType);
7410     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7411         rootType = toCount->sType;
7412     }
7413     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7414     *count += sizeof(VkBool32);
7415 }
7416 
7417 #endif
7418 #ifdef VK_EXT_texel_buffer_alignment
count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * toCount,size_t * count)7419 void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
7420     uint32_t featureBits, VkStructureType rootType,
7421     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toCount, size_t* count) {
7422     (void)featureBits;
7423     (void)rootType;
7424     (void)toCount;
7425     (void)count;
7426     *count += sizeof(VkStructureType);
7427     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7428         rootType = toCount->sType;
7429     }
7430     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7431     *count += sizeof(VkBool32);
7432 }
7433 
7434 #endif
7435 #ifdef VK_EXT_device_memory_report
count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * toCount,size_t * count)7436 void count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
7437     uint32_t featureBits, VkStructureType rootType,
7438     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toCount, size_t* count) {
7439     (void)featureBits;
7440     (void)rootType;
7441     (void)toCount;
7442     (void)count;
7443     *count += sizeof(VkStructureType);
7444     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7445         rootType = toCount->sType;
7446     }
7447     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7448     *count += sizeof(VkBool32);
7449 }
7450 
count_VkDeviceMemoryReportCallbackDataEXT(uint32_t featureBits,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * toCount,size_t * count)7451 void count_VkDeviceMemoryReportCallbackDataEXT(uint32_t featureBits, VkStructureType rootType,
7452                                                const VkDeviceMemoryReportCallbackDataEXT* toCount,
7453                                                size_t* count) {
7454     (void)featureBits;
7455     (void)rootType;
7456     (void)toCount;
7457     (void)count;
7458     *count += sizeof(VkStructureType);
7459     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7460         rootType = toCount->sType;
7461     }
7462     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7463     *count += sizeof(VkDeviceMemoryReportFlagsEXT);
7464     *count += sizeof(VkDeviceMemoryReportEventTypeEXT);
7465     *count += sizeof(uint64_t);
7466     *count += sizeof(VkDeviceSize);
7467     *count += sizeof(VkObjectType);
7468     *count += sizeof(uint64_t);
7469     *count += sizeof(uint32_t);
7470 }
7471 
count_VkDeviceDeviceMemoryReportCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * toCount,size_t * count)7472 void count_VkDeviceDeviceMemoryReportCreateInfoEXT(
7473     uint32_t featureBits, VkStructureType rootType,
7474     const VkDeviceDeviceMemoryReportCreateInfoEXT* toCount, size_t* count) {
7475     (void)featureBits;
7476     (void)rootType;
7477     (void)toCount;
7478     (void)count;
7479     *count += sizeof(VkStructureType);
7480     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7481         rootType = toCount->sType;
7482     }
7483     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7484     *count += sizeof(VkDeviceMemoryReportFlagsEXT);
7485     *count += 8;
7486     *count += sizeof(uint8_t);
7487 }
7488 
7489 #endif
7490 #ifdef VK_EXT_robustness2
count_VkPhysicalDeviceRobustness2FeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * toCount,size_t * count)7491 void count_VkPhysicalDeviceRobustness2FeaturesEXT(
7492     uint32_t featureBits, VkStructureType rootType,
7493     const VkPhysicalDeviceRobustness2FeaturesEXT* toCount, size_t* count) {
7494     (void)featureBits;
7495     (void)rootType;
7496     (void)toCount;
7497     (void)count;
7498     *count += sizeof(VkStructureType);
7499     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7500         rootType = toCount->sType;
7501     }
7502     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7503     *count += sizeof(VkBool32);
7504     *count += sizeof(VkBool32);
7505     *count += sizeof(VkBool32);
7506 }
7507 
count_VkPhysicalDeviceRobustness2PropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * toCount,size_t * count)7508 void count_VkPhysicalDeviceRobustness2PropertiesEXT(
7509     uint32_t featureBits, VkStructureType rootType,
7510     const VkPhysicalDeviceRobustness2PropertiesEXT* toCount, size_t* count) {
7511     (void)featureBits;
7512     (void)rootType;
7513     (void)toCount;
7514     (void)count;
7515     *count += sizeof(VkStructureType);
7516     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7517         rootType = toCount->sType;
7518     }
7519     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7520     *count += sizeof(VkDeviceSize);
7521     *count += sizeof(VkDeviceSize);
7522 }
7523 
7524 #endif
7525 #ifdef VK_EXT_custom_border_color
count_VkSamplerCustomBorderColorCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * toCount,size_t * count)7526 void count_VkSamplerCustomBorderColorCreateInfoEXT(
7527     uint32_t featureBits, VkStructureType rootType,
7528     const VkSamplerCustomBorderColorCreateInfoEXT* toCount, size_t* count) {
7529     (void)featureBits;
7530     (void)rootType;
7531     (void)toCount;
7532     (void)count;
7533     *count += sizeof(VkStructureType);
7534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7535         rootType = toCount->sType;
7536     }
7537     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7538     count_VkClearColorValue(featureBits, rootType,
7539                             (VkClearColorValue*)(&toCount->customBorderColor), count);
7540     *count += sizeof(VkFormat);
7541 }
7542 
count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * toCount,size_t * count)7543 void count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
7544     uint32_t featureBits, VkStructureType rootType,
7545     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* toCount, size_t* count) {
7546     (void)featureBits;
7547     (void)rootType;
7548     (void)toCount;
7549     (void)count;
7550     *count += sizeof(VkStructureType);
7551     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7552         rootType = toCount->sType;
7553     }
7554     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7555     *count += sizeof(uint32_t);
7556 }
7557 
count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * toCount,size_t * count)7558 void count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
7559     uint32_t featureBits, VkStructureType rootType,
7560     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* toCount, size_t* count) {
7561     (void)featureBits;
7562     (void)rootType;
7563     (void)toCount;
7564     (void)count;
7565     *count += sizeof(VkStructureType);
7566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7567         rootType = toCount->sType;
7568     }
7569     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7570     *count += sizeof(VkBool32);
7571     *count += sizeof(VkBool32);
7572 }
7573 
7574 #endif
7575 #ifdef VK_EXT_graphics_pipeline_library
count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * toCount,size_t * count)7576 void count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
7577     uint32_t featureBits, VkStructureType rootType,
7578     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* toCount, size_t* count) {
7579     (void)featureBits;
7580     (void)rootType;
7581     (void)toCount;
7582     (void)count;
7583     *count += sizeof(VkStructureType);
7584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7585         rootType = toCount->sType;
7586     }
7587     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7588     *count += sizeof(VkBool32);
7589 }
7590 
count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * toCount,size_t * count)7591 void count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
7592     uint32_t featureBits, VkStructureType rootType,
7593     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* toCount, size_t* count) {
7594     (void)featureBits;
7595     (void)rootType;
7596     (void)toCount;
7597     (void)count;
7598     *count += sizeof(VkStructureType);
7599     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7600         rootType = toCount->sType;
7601     }
7602     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7603     *count += sizeof(VkBool32);
7604     *count += sizeof(VkBool32);
7605 }
7606 
count_VkGraphicsPipelineLibraryCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * toCount,size_t * count)7607 void count_VkGraphicsPipelineLibraryCreateInfoEXT(
7608     uint32_t featureBits, VkStructureType rootType,
7609     const VkGraphicsPipelineLibraryCreateInfoEXT* toCount, size_t* count) {
7610     (void)featureBits;
7611     (void)rootType;
7612     (void)toCount;
7613     (void)count;
7614     *count += sizeof(VkStructureType);
7615     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7616         rootType = toCount->sType;
7617     }
7618     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7619     *count += sizeof(VkGraphicsPipelineLibraryFlagsEXT);
7620 }
7621 
7622 #endif
7623 #ifdef VK_EXT_ycbcr_2plane_444_formats
count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * toCount,size_t * count)7624 void count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
7625     uint32_t featureBits, VkStructureType rootType,
7626     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toCount, size_t* count) {
7627     (void)featureBits;
7628     (void)rootType;
7629     (void)toCount;
7630     (void)count;
7631     *count += sizeof(VkStructureType);
7632     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7633         rootType = toCount->sType;
7634     }
7635     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7636     *count += sizeof(VkBool32);
7637 }
7638 
7639 #endif
7640 #ifdef VK_EXT_image_compression_control
count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * toCount,size_t * count)7641 void count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
7642     uint32_t featureBits, VkStructureType rootType,
7643     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* toCount, size_t* count) {
7644     (void)featureBits;
7645     (void)rootType;
7646     (void)toCount;
7647     (void)count;
7648     *count += sizeof(VkStructureType);
7649     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7650         rootType = toCount->sType;
7651     }
7652     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7653     *count += sizeof(VkBool32);
7654 }
7655 
count_VkImageCompressionControlEXT(uint32_t featureBits,VkStructureType rootType,const VkImageCompressionControlEXT * toCount,size_t * count)7656 void count_VkImageCompressionControlEXT(uint32_t featureBits, VkStructureType rootType,
7657                                         const VkImageCompressionControlEXT* toCount,
7658                                         size_t* count) {
7659     (void)featureBits;
7660     (void)rootType;
7661     (void)toCount;
7662     (void)count;
7663     *count += sizeof(VkStructureType);
7664     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7665         rootType = toCount->sType;
7666     }
7667     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7668     *count += sizeof(VkImageCompressionFlagsEXT);
7669     *count += sizeof(uint32_t);
7670     // WARNING PTR CHECK
7671     *count += 8;
7672     if (toCount->pFixedRateFlags) {
7673         if (toCount) {
7674             *count +=
7675                 toCount->compressionControlPlaneCount * sizeof(VkImageCompressionFixedRateFlagsEXT);
7676         }
7677     }
7678 }
7679 
count_VkImageCompressionPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkImageCompressionPropertiesEXT * toCount,size_t * count)7680 void count_VkImageCompressionPropertiesEXT(uint32_t featureBits, VkStructureType rootType,
7681                                            const VkImageCompressionPropertiesEXT* toCount,
7682                                            size_t* count) {
7683     (void)featureBits;
7684     (void)rootType;
7685     (void)toCount;
7686     (void)count;
7687     *count += sizeof(VkStructureType);
7688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7689         rootType = toCount->sType;
7690     }
7691     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7692     *count += sizeof(VkImageCompressionFlagsEXT);
7693     *count += sizeof(VkImageCompressionFixedRateFlagsEXT);
7694 }
7695 
7696 #endif
7697 #ifdef VK_EXT_4444_formats
count_VkPhysicalDevice4444FormatsFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * toCount,size_t * count)7698 void count_VkPhysicalDevice4444FormatsFeaturesEXT(
7699     uint32_t featureBits, VkStructureType rootType,
7700     const VkPhysicalDevice4444FormatsFeaturesEXT* toCount, size_t* count) {
7701     (void)featureBits;
7702     (void)rootType;
7703     (void)toCount;
7704     (void)count;
7705     *count += sizeof(VkStructureType);
7706     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7707         rootType = toCount->sType;
7708     }
7709     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7710     *count += sizeof(VkBool32);
7711     *count += sizeof(VkBool32);
7712 }
7713 
7714 #endif
7715 #ifdef VK_EXT_primitive_topology_list_restart
count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * toCount,size_t * count)7716 void count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
7717     uint32_t featureBits, VkStructureType rootType,
7718     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toCount, size_t* count) {
7719     (void)featureBits;
7720     (void)rootType;
7721     (void)toCount;
7722     (void)count;
7723     *count += sizeof(VkStructureType);
7724     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7725         rootType = toCount->sType;
7726     }
7727     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7728     *count += sizeof(VkBool32);
7729     *count += sizeof(VkBool32);
7730 }
7731 
7732 #endif
7733 #ifdef VK_EXT_extended_dynamic_state2
count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * toCount,size_t * count)7734 void count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
7735     uint32_t featureBits, VkStructureType rootType,
7736     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toCount, size_t* count) {
7737     (void)featureBits;
7738     (void)rootType;
7739     (void)toCount;
7740     (void)count;
7741     *count += sizeof(VkStructureType);
7742     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7743         rootType = toCount->sType;
7744     }
7745     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7746     *count += sizeof(VkBool32);
7747     *count += sizeof(VkBool32);
7748     *count += sizeof(VkBool32);
7749 }
7750 
7751 #endif
7752 #ifdef VK_EXT_color_write_enable
count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * toCount,size_t * count)7753 void count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
7754     uint32_t featureBits, VkStructureType rootType,
7755     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* toCount, size_t* count) {
7756     (void)featureBits;
7757     (void)rootType;
7758     (void)toCount;
7759     (void)count;
7760     *count += sizeof(VkStructureType);
7761     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7762         rootType = toCount->sType;
7763     }
7764     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7765     *count += sizeof(VkBool32);
7766 }
7767 
count_VkPipelineColorWriteCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * toCount,size_t * count)7768 void count_VkPipelineColorWriteCreateInfoEXT(uint32_t featureBits, VkStructureType rootType,
7769                                              const VkPipelineColorWriteCreateInfoEXT* toCount,
7770                                              size_t* count) {
7771     (void)featureBits;
7772     (void)rootType;
7773     (void)toCount;
7774     (void)count;
7775     *count += sizeof(VkStructureType);
7776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7777         rootType = toCount->sType;
7778     }
7779     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7780     *count += sizeof(uint32_t);
7781     if (toCount) {
7782         *count += toCount->attachmentCount * sizeof(const VkBool32);
7783     }
7784 }
7785 
7786 #endif
7787 #ifdef VK_GOOGLE_gfxstream
count_VkImportColorBufferGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkImportColorBufferGOOGLE * toCount,size_t * count)7788 void count_VkImportColorBufferGOOGLE(uint32_t featureBits, VkStructureType rootType,
7789                                      const VkImportColorBufferGOOGLE* toCount, size_t* count) {
7790     (void)featureBits;
7791     (void)rootType;
7792     (void)toCount;
7793     (void)count;
7794     *count += sizeof(VkStructureType);
7795     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7796         rootType = toCount->sType;
7797     }
7798     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7799     *count += sizeof(uint32_t);
7800 }
7801 
count_VkImportBufferGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkImportBufferGOOGLE * toCount,size_t * count)7802 void count_VkImportBufferGOOGLE(uint32_t featureBits, VkStructureType rootType,
7803                                 const VkImportBufferGOOGLE* toCount, size_t* count) {
7804     (void)featureBits;
7805     (void)rootType;
7806     (void)toCount;
7807     (void)count;
7808     *count += sizeof(VkStructureType);
7809     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7810         rootType = toCount->sType;
7811     }
7812     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7813     *count += sizeof(uint32_t);
7814 }
7815 
count_VkCreateBlobGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkCreateBlobGOOGLE * toCount,size_t * count)7816 void count_VkCreateBlobGOOGLE(uint32_t featureBits, VkStructureType rootType,
7817                               const VkCreateBlobGOOGLE* toCount, size_t* count) {
7818     (void)featureBits;
7819     (void)rootType;
7820     (void)toCount;
7821     (void)count;
7822     *count += sizeof(VkStructureType);
7823     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7824         rootType = toCount->sType;
7825     }
7826     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7827     *count += sizeof(uint32_t);
7828     *count += sizeof(uint32_t);
7829     *count += sizeof(uint64_t);
7830 }
7831 
7832 #endif
7833 #ifdef VK_EXT_image_compression_control_swapchain
count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * toCount,size_t * count)7834 void count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
7835     uint32_t featureBits, VkStructureType rootType,
7836     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* toCount, size_t* count) {
7837     (void)featureBits;
7838     (void)rootType;
7839     (void)toCount;
7840     (void)count;
7841     *count += sizeof(VkStructureType);
7842     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7843         rootType = toCount->sType;
7844     }
7845     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7846     *count += sizeof(VkBool32);
7847 }
7848 
7849 #endif
count_extension_struct(uint32_t featureBits,VkStructureType rootType,const void * structExtension,size_t * count)7850 void count_extension_struct(uint32_t featureBits, VkStructureType rootType,
7851                             const void* structExtension, size_t* count) {
7852     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
7853     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
7854         featureBits, rootType, structExtension);
7855     if (!currExtSize && structExtension) {
7856         // unknown struct extension; skip and call on its pNext field
7857         count_extension_struct(featureBits, rootType, (void*)structAccess->pNext, count);
7858         return;
7859     } else {
7860         // known or null extension struct
7861         *count += sizeof(uint32_t);
7862         if (!currExtSize) {
7863             // exit if this was a null extension struct (size == 0 in this branch)
7864             return;
7865         }
7866     }
7867     *count += sizeof(VkStructureType);
7868     if (!structExtension) {
7869         return;
7870     }
7871     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
7872     switch (structType) {
7873 #ifdef VK_VERSION_1_0
7874         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
7875             count_VkShaderModuleCreateInfo(
7876                 featureBits, rootType,
7877                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension), count);
7878             break;
7879         }
7880         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
7881             count_VkPipelineLayoutCreateInfo(
7882                 featureBits, rootType,
7883                 reinterpret_cast<const VkPipelineLayoutCreateInfo*>(structExtension), count);
7884             break;
7885         }
7886 #endif
7887 #ifdef VK_VERSION_1_1
7888         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
7889             count_VkPhysicalDeviceSubgroupProperties(
7890                 featureBits, rootType,
7891                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension),
7892                 count);
7893             break;
7894         }
7895         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
7896             count_VkPhysicalDevice16BitStorageFeatures(
7897                 featureBits, rootType,
7898                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension),
7899                 count);
7900             break;
7901         }
7902         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
7903             count_VkMemoryDedicatedRequirements(
7904                 featureBits, rootType,
7905                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension), count);
7906             break;
7907         }
7908         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
7909             count_VkMemoryDedicatedAllocateInfo(
7910                 featureBits, rootType,
7911                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension), count);
7912             break;
7913         }
7914         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
7915             count_VkMemoryAllocateFlagsInfo(
7916                 featureBits, rootType,
7917                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension), count);
7918             break;
7919         }
7920         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
7921             count_VkDeviceGroupRenderPassBeginInfo(
7922                 featureBits, rootType,
7923                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension), count);
7924             break;
7925         }
7926         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
7927             count_VkDeviceGroupCommandBufferBeginInfo(
7928                 featureBits, rootType,
7929                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension),
7930                 count);
7931             break;
7932         }
7933         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
7934             count_VkDeviceGroupSubmitInfo(
7935                 featureBits, rootType,
7936                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension), count);
7937             break;
7938         }
7939         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
7940             count_VkDeviceGroupBindSparseInfo(
7941                 featureBits, rootType,
7942                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension), count);
7943             break;
7944         }
7945         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
7946             count_VkBindBufferMemoryDeviceGroupInfo(
7947                 featureBits, rootType,
7948                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension), count);
7949             break;
7950         }
7951         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
7952             count_VkBindImageMemoryDeviceGroupInfo(
7953                 featureBits, rootType,
7954                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension), count);
7955             break;
7956         }
7957         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
7958             count_VkDeviceGroupDeviceCreateInfo(
7959                 featureBits, rootType,
7960                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension), count);
7961             break;
7962         }
7963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
7964             count_VkPhysicalDeviceFeatures2(
7965                 featureBits, rootType,
7966                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension), count);
7967             break;
7968         }
7969         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
7970             count_VkPhysicalDevicePointClippingProperties(
7971                 featureBits, rootType,
7972                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension),
7973                 count);
7974             break;
7975         }
7976         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
7977             count_VkRenderPassInputAttachmentAspectCreateInfo(
7978                 featureBits, rootType,
7979                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
7980                     structExtension),
7981                 count);
7982             break;
7983         }
7984         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
7985             count_VkImageViewUsageCreateInfo(
7986                 featureBits, rootType,
7987                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension), count);
7988             break;
7989         }
7990         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
7991             count_VkPipelineTessellationDomainOriginStateCreateInfo(
7992                 featureBits, rootType,
7993                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
7994                     structExtension),
7995                 count);
7996             break;
7997         }
7998         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
7999             count_VkRenderPassMultiviewCreateInfo(
8000                 featureBits, rootType,
8001                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension), count);
8002             break;
8003         }
8004         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
8005             count_VkPhysicalDeviceMultiviewFeatures(
8006                 featureBits, rootType,
8007                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension), count);
8008             break;
8009         }
8010         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
8011             count_VkPhysicalDeviceMultiviewProperties(
8012                 featureBits, rootType,
8013                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension),
8014                 count);
8015             break;
8016         }
8017         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
8018             count_VkPhysicalDeviceVariablePointersFeatures(
8019                 featureBits, rootType,
8020                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension),
8021                 count);
8022             break;
8023         }
8024         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
8025             count_VkPhysicalDeviceProtectedMemoryFeatures(
8026                 featureBits, rootType,
8027                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension),
8028                 count);
8029             break;
8030         }
8031         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
8032             count_VkPhysicalDeviceProtectedMemoryProperties(
8033                 featureBits, rootType,
8034                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension),
8035                 count);
8036             break;
8037         }
8038         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
8039             count_VkProtectedSubmitInfo(
8040                 featureBits, rootType,
8041                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension), count);
8042             break;
8043         }
8044         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
8045             count_VkSamplerYcbcrConversionInfo(
8046                 featureBits, rootType,
8047                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension), count);
8048             break;
8049         }
8050         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
8051             count_VkBindImagePlaneMemoryInfo(
8052                 featureBits, rootType,
8053                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension), count);
8054             break;
8055         }
8056         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
8057             count_VkImagePlaneMemoryRequirementsInfo(
8058                 featureBits, rootType,
8059                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension),
8060                 count);
8061             break;
8062         }
8063         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
8064             count_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
8065                 featureBits, rootType,
8066                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
8067                     structExtension),
8068                 count);
8069             break;
8070         }
8071         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
8072             count_VkSamplerYcbcrConversionImageFormatProperties(
8073                 featureBits, rootType,
8074                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
8075                     structExtension),
8076                 count);
8077             break;
8078         }
8079         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
8080             count_VkPhysicalDeviceExternalImageFormatInfo(
8081                 featureBits, rootType,
8082                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension),
8083                 count);
8084             break;
8085         }
8086         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
8087             count_VkExternalImageFormatProperties(
8088                 featureBits, rootType,
8089                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension), count);
8090             break;
8091         }
8092         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
8093             count_VkPhysicalDeviceIDProperties(
8094                 featureBits, rootType,
8095                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension), count);
8096             break;
8097         }
8098         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
8099             count_VkExternalMemoryImageCreateInfo(
8100                 featureBits, rootType,
8101                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension), count);
8102             break;
8103         }
8104         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
8105             count_VkExternalMemoryBufferCreateInfo(
8106                 featureBits, rootType,
8107                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension), count);
8108             break;
8109         }
8110         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
8111             count_VkExportMemoryAllocateInfo(
8112                 featureBits, rootType,
8113                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension), count);
8114             break;
8115         }
8116         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
8117             count_VkExportFenceCreateInfo(
8118                 featureBits, rootType,
8119                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension), count);
8120             break;
8121         }
8122         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
8123             count_VkExportSemaphoreCreateInfo(
8124                 featureBits, rootType,
8125                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension), count);
8126             break;
8127         }
8128         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
8129             count_VkPhysicalDeviceMaintenance3Properties(
8130                 featureBits, rootType,
8131                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension),
8132                 count);
8133             break;
8134         }
8135         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
8136             count_VkPhysicalDeviceShaderDrawParametersFeatures(
8137                 featureBits, rootType,
8138                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
8139                     structExtension),
8140                 count);
8141             break;
8142         }
8143 #endif
8144 #ifdef VK_VERSION_1_2
8145         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
8146             count_VkPhysicalDeviceVulkan11Features(
8147                 featureBits, rootType,
8148                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), count);
8149             break;
8150         }
8151         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
8152             count_VkPhysicalDeviceVulkan11Properties(
8153                 featureBits, rootType,
8154                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension),
8155                 count);
8156             break;
8157         }
8158         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
8159             count_VkPhysicalDeviceVulkan12Features(
8160                 featureBits, rootType,
8161                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), count);
8162             break;
8163         }
8164         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
8165             count_VkPhysicalDeviceVulkan12Properties(
8166                 featureBits, rootType,
8167                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension),
8168                 count);
8169             break;
8170         }
8171         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
8172             count_VkImageFormatListCreateInfo(
8173                 featureBits, rootType,
8174                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), count);
8175             break;
8176         }
8177         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
8178             count_VkPhysicalDevice8BitStorageFeatures(
8179                 featureBits, rootType,
8180                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension),
8181                 count);
8182             break;
8183         }
8184         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
8185             count_VkPhysicalDeviceDriverProperties(
8186                 featureBits, rootType,
8187                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), count);
8188             break;
8189         }
8190         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
8191             count_VkPhysicalDeviceShaderAtomicInt64Features(
8192                 featureBits, rootType,
8193                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension),
8194                 count);
8195             break;
8196         }
8197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
8198             count_VkPhysicalDeviceShaderFloat16Int8Features(
8199                 featureBits, rootType,
8200                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension),
8201                 count);
8202             break;
8203         }
8204         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
8205             count_VkPhysicalDeviceFloatControlsProperties(
8206                 featureBits, rootType,
8207                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension),
8208                 count);
8209             break;
8210         }
8211         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
8212             count_VkDescriptorSetLayoutBindingFlagsCreateInfo(
8213                 featureBits, rootType,
8214                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
8215                     structExtension),
8216                 count);
8217             break;
8218         }
8219         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
8220             count_VkPhysicalDeviceDescriptorIndexingFeatures(
8221                 featureBits, rootType,
8222                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
8223                     structExtension),
8224                 count);
8225             break;
8226         }
8227         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
8228             count_VkPhysicalDeviceDescriptorIndexingProperties(
8229                 featureBits, rootType,
8230                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
8231                     structExtension),
8232                 count);
8233             break;
8234         }
8235         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
8236             count_VkDescriptorSetVariableDescriptorCountAllocateInfo(
8237                 featureBits, rootType,
8238                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
8239                     structExtension),
8240                 count);
8241             break;
8242         }
8243         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
8244             count_VkDescriptorSetVariableDescriptorCountLayoutSupport(
8245                 featureBits, rootType,
8246                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
8247                     structExtension),
8248                 count);
8249             break;
8250         }
8251         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
8252             count_VkSubpassDescriptionDepthStencilResolve(
8253                 featureBits, rootType,
8254                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension),
8255                 count);
8256             break;
8257         }
8258         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
8259             count_VkPhysicalDeviceDepthStencilResolveProperties(
8260                 featureBits, rootType,
8261                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
8262                     structExtension),
8263                 count);
8264             break;
8265         }
8266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
8267             count_VkPhysicalDeviceScalarBlockLayoutFeatures(
8268                 featureBits, rootType,
8269                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension),
8270                 count);
8271             break;
8272         }
8273         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
8274             count_VkImageStencilUsageCreateInfo(
8275                 featureBits, rootType,
8276                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), count);
8277             break;
8278         }
8279         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
8280             count_VkSamplerReductionModeCreateInfo(
8281                 featureBits, rootType,
8282                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), count);
8283             break;
8284         }
8285         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
8286             count_VkPhysicalDeviceSamplerFilterMinmaxProperties(
8287                 featureBits, rootType,
8288                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
8289                     structExtension),
8290                 count);
8291             break;
8292         }
8293         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
8294             count_VkPhysicalDeviceVulkanMemoryModelFeatures(
8295                 featureBits, rootType,
8296                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension),
8297                 count);
8298             break;
8299         }
8300         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
8301             count_VkPhysicalDeviceImagelessFramebufferFeatures(
8302                 featureBits, rootType,
8303                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
8304                     structExtension),
8305                 count);
8306             break;
8307         }
8308         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
8309             count_VkFramebufferAttachmentsCreateInfo(
8310                 featureBits, rootType,
8311                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension),
8312                 count);
8313             break;
8314         }
8315         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
8316             count_VkRenderPassAttachmentBeginInfo(
8317                 featureBits, rootType,
8318                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), count);
8319             break;
8320         }
8321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
8322             count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
8323                 featureBits, rootType,
8324                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
8325                     structExtension),
8326                 count);
8327             break;
8328         }
8329         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
8330             count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
8331                 featureBits, rootType,
8332                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
8333                     structExtension),
8334                 count);
8335             break;
8336         }
8337         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
8338             count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
8339                 featureBits, rootType,
8340                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
8341                     structExtension),
8342                 count);
8343             break;
8344         }
8345         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
8346             count_VkAttachmentReferenceStencilLayout(
8347                 featureBits, rootType,
8348                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension),
8349                 count);
8350             break;
8351         }
8352         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
8353             count_VkAttachmentDescriptionStencilLayout(
8354                 featureBits, rootType,
8355                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension),
8356                 count);
8357             break;
8358         }
8359         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
8360             count_VkPhysicalDeviceHostQueryResetFeatures(
8361                 featureBits, rootType,
8362                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension),
8363                 count);
8364             break;
8365         }
8366         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
8367             count_VkPhysicalDeviceTimelineSemaphoreFeatures(
8368                 featureBits, rootType,
8369                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension),
8370                 count);
8371             break;
8372         }
8373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
8374             count_VkPhysicalDeviceTimelineSemaphoreProperties(
8375                 featureBits, rootType,
8376                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
8377                     structExtension),
8378                 count);
8379             break;
8380         }
8381         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
8382             count_VkSemaphoreTypeCreateInfo(
8383                 featureBits, rootType,
8384                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), count);
8385             break;
8386         }
8387         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
8388             count_VkTimelineSemaphoreSubmitInfo(
8389                 featureBits, rootType,
8390                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), count);
8391             break;
8392         }
8393         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
8394             count_VkPhysicalDeviceBufferDeviceAddressFeatures(
8395                 featureBits, rootType,
8396                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
8397                     structExtension),
8398                 count);
8399             break;
8400         }
8401         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
8402             count_VkBufferOpaqueCaptureAddressCreateInfo(
8403                 featureBits, rootType,
8404                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension),
8405                 count);
8406             break;
8407         }
8408         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
8409             count_VkMemoryOpaqueCaptureAddressAllocateInfo(
8410                 featureBits, rootType,
8411                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension),
8412                 count);
8413             break;
8414         }
8415 #endif
8416 #ifdef VK_VERSION_1_3
8417         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
8418             count_VkPhysicalDeviceVulkan13Features(
8419                 featureBits, rootType,
8420                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension), count);
8421             break;
8422         }
8423         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
8424             count_VkPhysicalDeviceVulkan13Properties(
8425                 featureBits, rootType,
8426                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension),
8427                 count);
8428             break;
8429         }
8430         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
8431             count_VkPipelineCreationFeedbackCreateInfo(
8432                 featureBits, rootType,
8433                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension),
8434                 count);
8435             break;
8436         }
8437         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
8438             count_VkPhysicalDeviceShaderTerminateInvocationFeatures(
8439                 featureBits, rootType,
8440                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
8441                     structExtension),
8442                 count);
8443             break;
8444         }
8445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
8446             count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
8447                 featureBits, rootType,
8448                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
8449                     structExtension),
8450                 count);
8451             break;
8452         }
8453         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
8454             count_VkPhysicalDevicePrivateDataFeatures(
8455                 featureBits, rootType,
8456                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension),
8457                 count);
8458             break;
8459         }
8460         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
8461             count_VkDevicePrivateDataCreateInfo(
8462                 featureBits, rootType,
8463                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension), count);
8464             break;
8465         }
8466         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
8467             count_VkPhysicalDevicePipelineCreationCacheControlFeatures(
8468                 featureBits, rootType,
8469                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
8470                     structExtension),
8471                 count);
8472             break;
8473         }
8474         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
8475             count_VkMemoryBarrier2(featureBits, rootType,
8476                                    reinterpret_cast<const VkMemoryBarrier2*>(structExtension),
8477                                    count);
8478             break;
8479         }
8480         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
8481             count_VkPhysicalDeviceSynchronization2Features(
8482                 featureBits, rootType,
8483                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension),
8484                 count);
8485             break;
8486         }
8487         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
8488             count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
8489                 featureBits, rootType,
8490                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
8491                     structExtension),
8492                 count);
8493             break;
8494         }
8495         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
8496             count_VkPhysicalDeviceImageRobustnessFeatures(
8497                 featureBits, rootType,
8498                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension),
8499                 count);
8500             break;
8501         }
8502         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
8503             count_VkPhysicalDeviceSubgroupSizeControlFeatures(
8504                 featureBits, rootType,
8505                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
8506                     structExtension),
8507                 count);
8508             break;
8509         }
8510         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
8511             count_VkPhysicalDeviceSubgroupSizeControlProperties(
8512                 featureBits, rootType,
8513                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
8514                     structExtension),
8515                 count);
8516             break;
8517         }
8518         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
8519             count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
8520                 featureBits, rootType,
8521                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
8522                     structExtension),
8523                 count);
8524             break;
8525         }
8526         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
8527             count_VkPhysicalDeviceInlineUniformBlockFeatures(
8528                 featureBits, rootType,
8529                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
8530                     structExtension),
8531                 count);
8532             break;
8533         }
8534         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
8535             count_VkPhysicalDeviceInlineUniformBlockProperties(
8536                 featureBits, rootType,
8537                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
8538                     structExtension),
8539                 count);
8540             break;
8541         }
8542         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
8543             count_VkWriteDescriptorSetInlineUniformBlock(
8544                 featureBits, rootType,
8545                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension),
8546                 count);
8547             break;
8548         }
8549         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
8550             count_VkDescriptorPoolInlineUniformBlockCreateInfo(
8551                 featureBits, rootType,
8552                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
8553                     structExtension),
8554                 count);
8555             break;
8556         }
8557         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
8558             count_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
8559                 featureBits, rootType,
8560                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
8561                     structExtension),
8562                 count);
8563             break;
8564         }
8565         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
8566             count_VkPipelineRenderingCreateInfo(
8567                 featureBits, rootType,
8568                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension), count);
8569             break;
8570         }
8571         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
8572             count_VkPhysicalDeviceDynamicRenderingFeatures(
8573                 featureBits, rootType,
8574                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension),
8575                 count);
8576             break;
8577         }
8578         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
8579             count_VkCommandBufferInheritanceRenderingInfo(
8580                 featureBits, rootType,
8581                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension),
8582                 count);
8583             break;
8584         }
8585         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
8586             count_VkPhysicalDeviceShaderIntegerDotProductFeatures(
8587                 featureBits, rootType,
8588                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
8589                     structExtension),
8590                 count);
8591             break;
8592         }
8593         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
8594             count_VkPhysicalDeviceShaderIntegerDotProductProperties(
8595                 featureBits, rootType,
8596                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
8597                     structExtension),
8598                 count);
8599             break;
8600         }
8601         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
8602             count_VkPhysicalDeviceTexelBufferAlignmentProperties(
8603                 featureBits, rootType,
8604                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
8605                     structExtension),
8606                 count);
8607             break;
8608         }
8609         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
8610             count_VkFormatProperties3(featureBits, rootType,
8611                                       reinterpret_cast<const VkFormatProperties3*>(structExtension),
8612                                       count);
8613             break;
8614         }
8615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
8616             count_VkPhysicalDeviceMaintenance4Features(
8617                 featureBits, rootType,
8618                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension),
8619                 count);
8620             break;
8621         }
8622         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
8623             count_VkPhysicalDeviceMaintenance4Properties(
8624                 featureBits, rootType,
8625                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension),
8626                 count);
8627             break;
8628         }
8629 #endif
8630 #ifdef VK_VERSION_1_4
8631         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: {
8632             count_VkPhysicalDeviceVulkan14Features(
8633                 featureBits, rootType,
8634                 reinterpret_cast<const VkPhysicalDeviceVulkan14Features*>(structExtension), count);
8635             break;
8636         }
8637         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: {
8638             count_VkPhysicalDeviceVulkan14Properties(
8639                 featureBits, rootType,
8640                 reinterpret_cast<const VkPhysicalDeviceVulkan14Properties*>(structExtension),
8641                 count);
8642             break;
8643         }
8644         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: {
8645             count_VkDeviceQueueGlobalPriorityCreateInfo(
8646                 featureBits, rootType,
8647                 reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfo*>(structExtension),
8648                 count);
8649             break;
8650         }
8651         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: {
8652             count_VkPhysicalDeviceGlobalPriorityQueryFeatures(
8653                 featureBits, rootType,
8654                 reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeatures*>(
8655                     structExtension),
8656                 count);
8657             break;
8658         }
8659         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: {
8660             count_VkQueueFamilyGlobalPriorityProperties(
8661                 featureBits, rootType,
8662                 reinterpret_cast<const VkQueueFamilyGlobalPriorityProperties*>(structExtension),
8663                 count);
8664             break;
8665         }
8666         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: {
8667             count_VkPhysicalDeviceShaderSubgroupRotateFeatures(
8668                 featureBits, rootType,
8669                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupRotateFeatures*>(
8670                     structExtension),
8671                 count);
8672             break;
8673         }
8674         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: {
8675             count_VkPhysicalDeviceShaderFloatControls2Features(
8676                 featureBits, rootType,
8677                 reinterpret_cast<const VkPhysicalDeviceShaderFloatControls2Features*>(
8678                     structExtension),
8679                 count);
8680             break;
8681         }
8682         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: {
8683             count_VkPhysicalDeviceShaderExpectAssumeFeatures(
8684                 featureBits, rootType,
8685                 reinterpret_cast<const VkPhysicalDeviceShaderExpectAssumeFeatures*>(
8686                     structExtension),
8687                 count);
8688             break;
8689         }
8690         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: {
8691             count_VkPhysicalDeviceLineRasterizationFeatures(
8692                 featureBits, rootType,
8693                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeatures*>(structExtension),
8694                 count);
8695             break;
8696         }
8697         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: {
8698             count_VkPhysicalDeviceLineRasterizationProperties(
8699                 featureBits, rootType,
8700                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationProperties*>(
8701                     structExtension),
8702                 count);
8703             break;
8704         }
8705         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: {
8706             count_VkPipelineRasterizationLineStateCreateInfo(
8707                 featureBits, rootType,
8708                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfo*>(
8709                     structExtension),
8710                 count);
8711             break;
8712         }
8713         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: {
8714             count_VkPhysicalDeviceVertexAttributeDivisorProperties(
8715                 featureBits, rootType,
8716                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorProperties*>(
8717                     structExtension),
8718                 count);
8719             break;
8720         }
8721         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: {
8722             count_VkPipelineVertexInputDivisorStateCreateInfo(
8723                 featureBits, rootType,
8724                 reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfo*>(
8725                     structExtension),
8726                 count);
8727             break;
8728         }
8729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: {
8730             count_VkPhysicalDeviceVertexAttributeDivisorFeatures(
8731                 featureBits, rootType,
8732                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeatures*>(
8733                     structExtension),
8734                 count);
8735             break;
8736         }
8737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: {
8738             count_VkPhysicalDeviceIndexTypeUint8Features(
8739                 featureBits, rootType,
8740                 reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8Features*>(structExtension),
8741                 count);
8742             break;
8743         }
8744         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: {
8745             count_VkPhysicalDeviceMaintenance5Features(
8746                 featureBits, rootType,
8747                 reinterpret_cast<const VkPhysicalDeviceMaintenance5Features*>(structExtension),
8748                 count);
8749             break;
8750         }
8751         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: {
8752             count_VkPhysicalDeviceMaintenance5Properties(
8753                 featureBits, rootType,
8754                 reinterpret_cast<const VkPhysicalDeviceMaintenance5Properties*>(structExtension),
8755                 count);
8756             break;
8757         }
8758         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO: {
8759             count_VkPipelineCreateFlags2CreateInfo(
8760                 featureBits, rootType,
8761                 reinterpret_cast<const VkPipelineCreateFlags2CreateInfo*>(structExtension), count);
8762             break;
8763         }
8764         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO: {
8765             count_VkBufferUsageFlags2CreateInfo(
8766                 featureBits, rootType,
8767                 reinterpret_cast<const VkBufferUsageFlags2CreateInfo*>(structExtension), count);
8768             break;
8769         }
8770         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: {
8771             count_VkPhysicalDevicePushDescriptorProperties(
8772                 featureBits, rootType,
8773                 reinterpret_cast<const VkPhysicalDevicePushDescriptorProperties*>(structExtension),
8774                 count);
8775             break;
8776         }
8777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: {
8778             count_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
8779                 featureBits, rootType,
8780                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingLocalReadFeatures*>(
8781                     structExtension),
8782                 count);
8783             break;
8784         }
8785         case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO: {
8786             count_VkRenderingAttachmentLocationInfo(
8787                 featureBits, rootType,
8788                 reinterpret_cast<const VkRenderingAttachmentLocationInfo*>(structExtension), count);
8789             break;
8790         }
8791         case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO: {
8792             count_VkRenderingInputAttachmentIndexInfo(
8793                 featureBits, rootType,
8794                 reinterpret_cast<const VkRenderingInputAttachmentIndexInfo*>(structExtension),
8795                 count);
8796             break;
8797         }
8798         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: {
8799             count_VkPhysicalDeviceMaintenance6Features(
8800                 featureBits, rootType,
8801                 reinterpret_cast<const VkPhysicalDeviceMaintenance6Features*>(structExtension),
8802                 count);
8803             break;
8804         }
8805         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: {
8806             count_VkPhysicalDeviceMaintenance6Properties(
8807                 featureBits, rootType,
8808                 reinterpret_cast<const VkPhysicalDeviceMaintenance6Properties*>(structExtension),
8809                 count);
8810             break;
8811         }
8812         case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS: {
8813             count_VkBindMemoryStatus(featureBits, rootType,
8814                                      reinterpret_cast<const VkBindMemoryStatus*>(structExtension),
8815                                      count);
8816             break;
8817         }
8818         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: {
8819             count_VkPhysicalDevicePipelineProtectedAccessFeatures(
8820                 featureBits, rootType,
8821                 reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeatures*>(
8822                     structExtension),
8823                 count);
8824             break;
8825         }
8826         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: {
8827             count_VkPhysicalDevicePipelineRobustnessFeatures(
8828                 featureBits, rootType,
8829                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeatures*>(
8830                     structExtension),
8831                 count);
8832             break;
8833         }
8834         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: {
8835             count_VkPhysicalDevicePipelineRobustnessProperties(
8836                 featureBits, rootType,
8837                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessProperties*>(
8838                     structExtension),
8839                 count);
8840             break;
8841         }
8842         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO: {
8843             count_VkPipelineRobustnessCreateInfo(
8844                 featureBits, rootType,
8845                 reinterpret_cast<const VkPipelineRobustnessCreateInfo*>(structExtension), count);
8846             break;
8847         }
8848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: {
8849             count_VkPhysicalDeviceHostImageCopyFeatures(
8850                 featureBits, rootType,
8851                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeatures*>(structExtension),
8852                 count);
8853             break;
8854         }
8855         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: {
8856             count_VkPhysicalDeviceHostImageCopyProperties(
8857                 featureBits, rootType,
8858                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyProperties*>(structExtension),
8859                 count);
8860             break;
8861         }
8862         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE: {
8863             count_VkSubresourceHostMemcpySize(
8864                 featureBits, rootType,
8865                 reinterpret_cast<const VkSubresourceHostMemcpySize*>(structExtension), count);
8866             break;
8867         }
8868         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: {
8869             count_VkHostImageCopyDevicePerformanceQuery(
8870                 featureBits, rootType,
8871                 reinterpret_cast<const VkHostImageCopyDevicePerformanceQuery*>(structExtension),
8872                 count);
8873             break;
8874         }
8875 #endif
8876 #ifdef VK_KHR_incremental_present
8877         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
8878             count_VkPresentRegionsKHR(featureBits, rootType,
8879                                       reinterpret_cast<const VkPresentRegionsKHR*>(structExtension),
8880                                       count);
8881             break;
8882         }
8883 #endif
8884 #ifdef VK_KHR_pipeline_executable_properties
8885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
8886             count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
8887                 featureBits, rootType,
8888                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
8889                     structExtension),
8890                 count);
8891             break;
8892         }
8893 #endif
8894 #ifdef VK_ANDROID_native_buffer
8895         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
8896             count_VkNativeBufferANDROID(
8897                 featureBits, rootType,
8898                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension), count);
8899             break;
8900         }
8901 #endif
8902 #ifdef VK_EXT_transform_feedback
8903         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
8904             count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
8905                 featureBits, rootType,
8906                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
8907                     structExtension),
8908                 count);
8909             break;
8910         }
8911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
8912             count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
8913                 featureBits, rootType,
8914                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
8915                     structExtension),
8916                 count);
8917             break;
8918         }
8919         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
8920             count_VkPipelineRasterizationStateStreamCreateInfoEXT(
8921                 featureBits, rootType,
8922                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
8923                     structExtension),
8924                 count);
8925             break;
8926         }
8927 #endif
8928 #ifdef VK_EXT_depth_clip_enable
8929         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
8930             count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
8931                 featureBits, rootType,
8932                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
8933                     structExtension),
8934                 count);
8935             break;
8936         }
8937         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
8938             count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
8939                 featureBits, rootType,
8940                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
8941                     structExtension),
8942                 count);
8943             break;
8944         }
8945 #endif
8946 #ifdef VK_EXT_image_drm_format_modifier
8947         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
8948             count_VkDrmFormatModifierPropertiesListEXT(
8949                 featureBits, rootType,
8950                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension),
8951                 count);
8952             break;
8953         }
8954         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
8955             count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
8956                 featureBits, rootType,
8957                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
8958                     structExtension),
8959                 count);
8960             break;
8961         }
8962         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
8963             count_VkImageDrmFormatModifierListCreateInfoEXT(
8964                 featureBits, rootType,
8965                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension),
8966                 count);
8967             break;
8968         }
8969         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
8970             count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
8971                 featureBits, rootType,
8972                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
8973                     structExtension),
8974                 count);
8975             break;
8976         }
8977         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
8978             count_VkDrmFormatModifierPropertiesList2EXT(
8979                 featureBits, rootType,
8980                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension),
8981                 count);
8982             break;
8983         }
8984 #endif
8985 #ifdef VK_EXT_vertex_attribute_divisor
8986         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
8987             count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
8988                 featureBits, rootType,
8989                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
8990                     structExtension),
8991                 count);
8992             break;
8993         }
8994 #endif
8995 #ifdef VK_EXT_fragment_density_map
8996         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
8997             switch (rootType) {
8998                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
8999                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
9000                         featureBits, rootType,
9001                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
9002                             structExtension),
9003                         count);
9004                     break;
9005                 }
9006                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
9007                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
9008                         featureBits, rootType,
9009                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
9010                             structExtension),
9011                         count);
9012                     break;
9013                 }
9014                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
9015                     count_VkImportColorBufferGOOGLE(
9016                         featureBits, rootType,
9017                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), count);
9018                     break;
9019                 }
9020                 default: {
9021                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
9022                         featureBits, rootType,
9023                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
9024                             structExtension),
9025                         count);
9026                     break;
9027                 }
9028             }
9029             break;
9030         }
9031         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
9032             switch (rootType) {
9033                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
9034                     count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
9035                         featureBits, rootType,
9036                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
9037                             structExtension),
9038                         count);
9039                     break;
9040                 }
9041                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
9042                     count_VkCreateBlobGOOGLE(
9043                         featureBits, rootType,
9044                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension), count);
9045                     break;
9046                 }
9047                 default: {
9048                     count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
9049                         featureBits, rootType,
9050                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
9051                             structExtension),
9052                         count);
9053                     break;
9054                 }
9055             }
9056             break;
9057         }
9058         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
9059             switch (rootType) {
9060                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
9061                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
9062                         featureBits, rootType,
9063                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
9064                             structExtension),
9065                         count);
9066                     break;
9067                 }
9068                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
9069                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
9070                         featureBits, rootType,
9071                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
9072                             structExtension),
9073                         count);
9074                     break;
9075                 }
9076                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
9077                     count_VkImportBufferGOOGLE(
9078                         featureBits, rootType,
9079                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), count);
9080                     break;
9081                 }
9082                 default: {
9083                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
9084                         featureBits, rootType,
9085                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
9086                             structExtension),
9087                         count);
9088                     break;
9089                 }
9090             }
9091             break;
9092         }
9093         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
9094             count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
9095                 featureBits, rootType,
9096                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
9097                     structExtension),
9098                 count);
9099             break;
9100         }
9101 #endif
9102 #ifdef VK_EXT_provoking_vertex
9103         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
9104             count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
9105                 featureBits, rootType,
9106                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
9107                     structExtension),
9108                 count);
9109             break;
9110         }
9111         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
9112             count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
9113                 featureBits, rootType,
9114                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
9115                     structExtension),
9116                 count);
9117             break;
9118         }
9119         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
9120             count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
9121                 featureBits, rootType,
9122                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
9123                     structExtension),
9124                 count);
9125             break;
9126         }
9127 #endif
9128 #ifdef VK_EXT_extended_dynamic_state
9129         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
9130             count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
9131                 featureBits, rootType,
9132                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
9133                     structExtension),
9134                 count);
9135             break;
9136         }
9137 #endif
9138 #ifdef VK_EXT_texel_buffer_alignment
9139         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
9140             count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
9141                 featureBits, rootType,
9142                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
9143                     structExtension),
9144                 count);
9145             break;
9146         }
9147 #endif
9148 #ifdef VK_EXT_device_memory_report
9149         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
9150             count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
9151                 featureBits, rootType,
9152                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
9153                     structExtension),
9154                 count);
9155             break;
9156         }
9157         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
9158             count_VkDeviceDeviceMemoryReportCreateInfoEXT(
9159                 featureBits, rootType,
9160                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension),
9161                 count);
9162             break;
9163         }
9164 #endif
9165 #ifdef VK_EXT_robustness2
9166         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
9167             count_VkPhysicalDeviceRobustness2FeaturesEXT(
9168                 featureBits, rootType,
9169                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension),
9170                 count);
9171             break;
9172         }
9173         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
9174             count_VkPhysicalDeviceRobustness2PropertiesEXT(
9175                 featureBits, rootType,
9176                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension),
9177                 count);
9178             break;
9179         }
9180 #endif
9181 #ifdef VK_EXT_custom_border_color
9182         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
9183             count_VkSamplerCustomBorderColorCreateInfoEXT(
9184                 featureBits, rootType,
9185                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension),
9186                 count);
9187             break;
9188         }
9189         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
9190             count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
9191                 featureBits, rootType,
9192                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
9193                     structExtension),
9194                 count);
9195             break;
9196         }
9197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
9198             count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
9199                 featureBits, rootType,
9200                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
9201                     structExtension),
9202                 count);
9203             break;
9204         }
9205 #endif
9206 #ifdef VK_EXT_graphics_pipeline_library
9207         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
9208             count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
9209                 featureBits, rootType,
9210                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
9211                     structExtension),
9212                 count);
9213             break;
9214         }
9215         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
9216             count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
9217                 featureBits, rootType,
9218                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
9219                     structExtension),
9220                 count);
9221             break;
9222         }
9223         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
9224             count_VkGraphicsPipelineLibraryCreateInfoEXT(
9225                 featureBits, rootType,
9226                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension),
9227                 count);
9228             break;
9229         }
9230 #endif
9231 #ifdef VK_EXT_ycbcr_2plane_444_formats
9232         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
9233             count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
9234                 featureBits, rootType,
9235                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
9236                     structExtension),
9237                 count);
9238             break;
9239         }
9240 #endif
9241 #ifdef VK_EXT_image_compression_control
9242         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
9243             count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
9244                 featureBits, rootType,
9245                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
9246                     structExtension),
9247                 count);
9248             break;
9249         }
9250         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
9251             count_VkImageCompressionControlEXT(
9252                 featureBits, rootType,
9253                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension), count);
9254             break;
9255         }
9256         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
9257             count_VkImageCompressionPropertiesEXT(
9258                 featureBits, rootType,
9259                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension), count);
9260             break;
9261         }
9262 #endif
9263 #ifdef VK_EXT_4444_formats
9264         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
9265             count_VkPhysicalDevice4444FormatsFeaturesEXT(
9266                 featureBits, rootType,
9267                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension),
9268                 count);
9269             break;
9270         }
9271 #endif
9272 #ifdef VK_EXT_primitive_topology_list_restart
9273         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
9274             count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
9275                 featureBits, rootType,
9276                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
9277                     structExtension),
9278                 count);
9279             break;
9280         }
9281 #endif
9282 #ifdef VK_EXT_extended_dynamic_state2
9283         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
9284             count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
9285                 featureBits, rootType,
9286                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
9287                     structExtension),
9288                 count);
9289             break;
9290         }
9291 #endif
9292 #ifdef VK_EXT_color_write_enable
9293         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
9294             count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
9295                 featureBits, rootType,
9296                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
9297                     structExtension),
9298                 count);
9299             break;
9300         }
9301         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
9302             count_VkPipelineColorWriteCreateInfoEXT(
9303                 featureBits, rootType,
9304                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), count);
9305             break;
9306         }
9307 #endif
9308 #ifdef VK_GOOGLE_gfxstream
9309         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
9310             count_VkImportColorBufferGOOGLE(
9311                 featureBits, rootType,
9312                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), count);
9313             break;
9314         }
9315         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
9316             count_VkImportBufferGOOGLE(
9317                 featureBits, rootType,
9318                 reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), count);
9319             break;
9320         }
9321         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
9322             count_VkCreateBlobGOOGLE(featureBits, rootType,
9323                                      reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension),
9324                                      count);
9325             break;
9326         }
9327 #endif
9328 #ifdef VK_EXT_image_compression_control_swapchain
9329         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
9330             count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
9331                 featureBits, rootType,
9332                 reinterpret_cast<
9333                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
9334                     structExtension),
9335                 count);
9336             break;
9337         }
9338 #endif
9339         default: {
9340             // fatal; the switch is only taken if the extension struct is known
9341             abort();
9342         }
9343     }
9344 }
9345 
9346 }  // namespace vk
9347 }  // namespace gfxstream
9348