xref: /aosp_15_r20/external/mesa3d/src/gfxstream/guest/vulkan_enc/goldfish_vk_counting_guest.cpp (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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_KHR_dynamic_rendering
count_VkRenderingFragmentShadingRateAttachmentInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkRenderingFragmentShadingRateAttachmentInfoKHR * toCount,size_t * count)5711 void count_VkRenderingFragmentShadingRateAttachmentInfoKHR(
5712     uint32_t featureBits, VkStructureType rootType,
5713     const VkRenderingFragmentShadingRateAttachmentInfoKHR* toCount, 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     uint64_t cgen_var_0;
5724     *count += 1 * 8;
5725     *count += sizeof(VkImageLayout);
5726     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->shadingRateAttachmentTexelSize),
5727                      count);
5728 }
5729 
count_VkRenderingFragmentDensityMapAttachmentInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * toCount,size_t * count)5730 void count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
5731     uint32_t featureBits, VkStructureType rootType,
5732     const VkRenderingFragmentDensityMapAttachmentInfoEXT* toCount, size_t* count) {
5733     (void)featureBits;
5734     (void)rootType;
5735     (void)toCount;
5736     (void)count;
5737     *count += sizeof(VkStructureType);
5738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5739         rootType = toCount->sType;
5740     }
5741     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5742     uint64_t cgen_var_0;
5743     *count += 1 * 8;
5744     *count += sizeof(VkImageLayout);
5745 }
5746 
count_VkAttachmentSampleCountInfoAMD(uint32_t featureBits,VkStructureType rootType,const VkAttachmentSampleCountInfoAMD * toCount,size_t * count)5747 void count_VkAttachmentSampleCountInfoAMD(uint32_t featureBits, VkStructureType rootType,
5748                                           const VkAttachmentSampleCountInfoAMD* toCount,
5749                                           size_t* count) {
5750     (void)featureBits;
5751     (void)rootType;
5752     (void)toCount;
5753     (void)count;
5754     *count += sizeof(VkStructureType);
5755     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5756         rootType = toCount->sType;
5757     }
5758     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5759     *count += sizeof(uint32_t);
5760     // WARNING PTR CHECK
5761     *count += 8;
5762     if (toCount->pColorAttachmentSamples) {
5763         if (toCount) {
5764             *count += toCount->colorAttachmentCount * sizeof(const VkSampleCountFlagBits);
5765         }
5766     }
5767     *count += sizeof(VkSampleCountFlagBits);
5768 }
5769 
count_VkMultiviewPerViewAttributesInfoNVX(uint32_t featureBits,VkStructureType rootType,const VkMultiviewPerViewAttributesInfoNVX * toCount,size_t * count)5770 void count_VkMultiviewPerViewAttributesInfoNVX(uint32_t featureBits, VkStructureType rootType,
5771                                                const VkMultiviewPerViewAttributesInfoNVX* toCount,
5772                                                size_t* count) {
5773     (void)featureBits;
5774     (void)rootType;
5775     (void)toCount;
5776     (void)count;
5777     *count += sizeof(VkStructureType);
5778     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5779         rootType = toCount->sType;
5780     }
5781     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5782     *count += sizeof(VkBool32);
5783     *count += sizeof(VkBool32);
5784 }
5785 
5786 #endif
5787 #ifdef VK_KHR_external_semaphore_fd
count_VkImportSemaphoreFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * toCount,size_t * count)5788 void count_VkImportSemaphoreFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
5789                                       const VkImportSemaphoreFdInfoKHR* toCount, size_t* count) {
5790     (void)featureBits;
5791     (void)rootType;
5792     (void)toCount;
5793     (void)count;
5794     *count += sizeof(VkStructureType);
5795     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5796         rootType = toCount->sType;
5797     }
5798     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5799     uint64_t cgen_var_0;
5800     *count += 1 * 8;
5801     *count += sizeof(VkSemaphoreImportFlags);
5802     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
5803     *count += sizeof(int);
5804 }
5805 
count_VkSemaphoreGetFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * toCount,size_t * count)5806 void count_VkSemaphoreGetFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
5807                                    const VkSemaphoreGetFdInfoKHR* toCount, size_t* count) {
5808     (void)featureBits;
5809     (void)rootType;
5810     (void)toCount;
5811     (void)count;
5812     *count += sizeof(VkStructureType);
5813     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5814         rootType = toCount->sType;
5815     }
5816     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5817     uint64_t cgen_var_0;
5818     *count += 1 * 8;
5819     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
5820 }
5821 
5822 #endif
5823 #ifdef VK_KHR_incremental_present
count_VkRectLayerKHR(uint32_t featureBits,VkStructureType rootType,const VkRectLayerKHR * toCount,size_t * count)5824 void count_VkRectLayerKHR(uint32_t featureBits, VkStructureType rootType,
5825                           const VkRectLayerKHR* toCount, size_t* count) {
5826     (void)featureBits;
5827     (void)rootType;
5828     (void)toCount;
5829     (void)count;
5830     count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->offset), count);
5831     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->extent), count);
5832     *count += sizeof(uint32_t);
5833 }
5834 
count_VkPresentRegionKHR(uint32_t featureBits,VkStructureType rootType,const VkPresentRegionKHR * toCount,size_t * count)5835 void count_VkPresentRegionKHR(uint32_t featureBits, VkStructureType rootType,
5836                               const VkPresentRegionKHR* toCount, size_t* count) {
5837     (void)featureBits;
5838     (void)rootType;
5839     (void)toCount;
5840     (void)count;
5841     *count += sizeof(uint32_t);
5842     // WARNING PTR CHECK
5843     *count += 8;
5844     if (toCount->pRectangles) {
5845         if (toCount) {
5846             for (uint32_t i = 0; i < (uint32_t)toCount->rectangleCount; ++i) {
5847                 count_VkRectLayerKHR(featureBits, rootType,
5848                                      (const VkRectLayerKHR*)(toCount->pRectangles + i), count);
5849             }
5850         }
5851     }
5852 }
5853 
count_VkPresentRegionsKHR(uint32_t featureBits,VkStructureType rootType,const VkPresentRegionsKHR * toCount,size_t * count)5854 void count_VkPresentRegionsKHR(uint32_t featureBits, VkStructureType rootType,
5855                                const VkPresentRegionsKHR* toCount, size_t* count) {
5856     (void)featureBits;
5857     (void)rootType;
5858     (void)toCount;
5859     (void)count;
5860     *count += sizeof(VkStructureType);
5861     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5862         rootType = toCount->sType;
5863     }
5864     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5865     *count += sizeof(uint32_t);
5866     // WARNING PTR CHECK
5867     *count += 8;
5868     if (toCount->pRegions) {
5869         if (toCount) {
5870             for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i) {
5871                 count_VkPresentRegionKHR(featureBits, rootType,
5872                                          (const VkPresentRegionKHR*)(toCount->pRegions + i), count);
5873             }
5874         }
5875     }
5876 }
5877 
5878 #endif
5879 #ifdef VK_KHR_external_fence_fd
count_VkImportFenceFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkImportFenceFdInfoKHR * toCount,size_t * count)5880 void count_VkImportFenceFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
5881                                   const VkImportFenceFdInfoKHR* toCount, size_t* count) {
5882     (void)featureBits;
5883     (void)rootType;
5884     (void)toCount;
5885     (void)count;
5886     *count += sizeof(VkStructureType);
5887     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5888         rootType = toCount->sType;
5889     }
5890     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5891     uint64_t cgen_var_0;
5892     *count += 1 * 8;
5893     *count += sizeof(VkFenceImportFlags);
5894     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
5895     *count += sizeof(int);
5896 }
5897 
count_VkFenceGetFdInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkFenceGetFdInfoKHR * toCount,size_t * count)5898 void count_VkFenceGetFdInfoKHR(uint32_t featureBits, VkStructureType rootType,
5899                                const VkFenceGetFdInfoKHR* toCount, size_t* count) {
5900     (void)featureBits;
5901     (void)rootType;
5902     (void)toCount;
5903     (void)count;
5904     *count += sizeof(VkStructureType);
5905     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5906         rootType = toCount->sType;
5907     }
5908     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5909     uint64_t cgen_var_0;
5910     *count += 1 * 8;
5911     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
5912 }
5913 
5914 #endif
5915 #ifdef VK_KHR_pipeline_executable_properties
count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * toCount,size_t * count)5916 void count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
5917     uint32_t featureBits, VkStructureType rootType,
5918     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toCount, size_t* count) {
5919     (void)featureBits;
5920     (void)rootType;
5921     (void)toCount;
5922     (void)count;
5923     *count += sizeof(VkStructureType);
5924     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5925         rootType = toCount->sType;
5926     }
5927     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5928     *count += sizeof(VkBool32);
5929 }
5930 
count_VkPipelineInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineInfoKHR * toCount,size_t * count)5931 void count_VkPipelineInfoKHR(uint32_t featureBits, VkStructureType rootType,
5932                              const VkPipelineInfoKHR* toCount, size_t* count) {
5933     (void)featureBits;
5934     (void)rootType;
5935     (void)toCount;
5936     (void)count;
5937     *count += sizeof(VkStructureType);
5938     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5939         rootType = toCount->sType;
5940     }
5941     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5942     uint64_t cgen_var_0;
5943     *count += 1 * 8;
5944 }
5945 
count_VkPipelineExecutablePropertiesKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * toCount,size_t * count)5946 void count_VkPipelineExecutablePropertiesKHR(uint32_t featureBits, VkStructureType rootType,
5947                                              const VkPipelineExecutablePropertiesKHR* toCount,
5948                                              size_t* count) {
5949     (void)featureBits;
5950     (void)rootType;
5951     (void)toCount;
5952     (void)count;
5953     *count += sizeof(VkStructureType);
5954     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5955         rootType = toCount->sType;
5956     }
5957     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5958     *count += sizeof(VkShaderStageFlags);
5959     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
5960     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
5961     *count += sizeof(uint32_t);
5962 }
5963 
count_VkPipelineExecutableInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableInfoKHR * toCount,size_t * count)5964 void count_VkPipelineExecutableInfoKHR(uint32_t featureBits, VkStructureType rootType,
5965                                        const VkPipelineExecutableInfoKHR* toCount, size_t* count) {
5966     (void)featureBits;
5967     (void)rootType;
5968     (void)toCount;
5969     (void)count;
5970     *count += sizeof(VkStructureType);
5971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5972         rootType = toCount->sType;
5973     }
5974     count_extension_struct(featureBits, rootType, toCount->pNext, count);
5975     uint64_t cgen_var_0;
5976     *count += 1 * 8;
5977     *count += sizeof(uint32_t);
5978 }
5979 
count_VkPipelineExecutableStatisticValueKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * toCount,size_t * count)5980 void count_VkPipelineExecutableStatisticValueKHR(
5981     uint32_t featureBits, VkStructureType rootType,
5982     const VkPipelineExecutableStatisticValueKHR* toCount, size_t* count) {
5983     (void)featureBits;
5984     (void)rootType;
5985     (void)toCount;
5986     (void)count;
5987     *count += sizeof(VkBool32);
5988 }
5989 
count_VkPipelineExecutableStatisticKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * toCount,size_t * count)5990 void count_VkPipelineExecutableStatisticKHR(uint32_t featureBits, VkStructureType rootType,
5991                                             const VkPipelineExecutableStatisticKHR* toCount,
5992                                             size_t* count) {
5993     (void)featureBits;
5994     (void)rootType;
5995     (void)toCount;
5996     (void)count;
5997     *count += sizeof(VkStructureType);
5998     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5999         rootType = toCount->sType;
6000     }
6001     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6002     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6003     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6004     *count += sizeof(VkPipelineExecutableStatisticFormatKHR);
6005     count_VkPipelineExecutableStatisticValueKHR(
6006         featureBits, rootType, (VkPipelineExecutableStatisticValueKHR*)(&toCount->value), count);
6007 }
6008 
count_VkPipelineExecutableInternalRepresentationKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * toCount,size_t * count)6009 void count_VkPipelineExecutableInternalRepresentationKHR(
6010     uint32_t featureBits, VkStructureType rootType,
6011     const VkPipelineExecutableInternalRepresentationKHR* 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 += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6022     *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6023     *count += sizeof(VkBool32);
6024     *count += 8;
6025     // WARNING PTR CHECK
6026     *count += 8;
6027     if (toCount->pData) {
6028         if (toCount) {
6029             *count += toCount->dataSize * sizeof(uint8_t);
6030         }
6031     }
6032 }
6033 
6034 #endif
6035 #ifdef VK_KHR_synchronization2
count_VkQueueFamilyCheckpointProperties2NV(uint32_t featureBits,VkStructureType rootType,const VkQueueFamilyCheckpointProperties2NV * toCount,size_t * count)6036 void count_VkQueueFamilyCheckpointProperties2NV(uint32_t featureBits, VkStructureType rootType,
6037                                                 const VkQueueFamilyCheckpointProperties2NV* toCount,
6038                                                 size_t* count) {
6039     (void)featureBits;
6040     (void)rootType;
6041     (void)toCount;
6042     (void)count;
6043     *count += sizeof(VkStructureType);
6044     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6045         rootType = toCount->sType;
6046     }
6047     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6048     *count += sizeof(VkPipelineStageFlags2);
6049 }
6050 
count_VkCheckpointData2NV(uint32_t featureBits,VkStructureType rootType,const VkCheckpointData2NV * toCount,size_t * count)6051 void count_VkCheckpointData2NV(uint32_t featureBits, VkStructureType rootType,
6052                                const VkCheckpointData2NV* toCount, size_t* count) {
6053     (void)featureBits;
6054     (void)rootType;
6055     (void)toCount;
6056     (void)count;
6057     *count += sizeof(VkStructureType);
6058     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6059         rootType = toCount->sType;
6060     }
6061     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6062     *count += sizeof(VkPipelineStageFlags2);
6063     // WARNING PTR CHECK
6064     *count += 8;
6065     if (toCount->pCheckpointMarker) {
6066         *count += sizeof(uint8_t);
6067     }
6068 }
6069 
6070 #endif
6071 #ifdef VK_KHR_maintenance5
count_VkPhysicalDeviceMaintenance5FeaturesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance5FeaturesKHR * toCount,size_t * count)6072 void count_VkPhysicalDeviceMaintenance5FeaturesKHR(
6073     uint32_t featureBits, VkStructureType rootType,
6074     const VkPhysicalDeviceMaintenance5FeaturesKHR* toCount, size_t* count) {
6075     (void)featureBits;
6076     (void)rootType;
6077     (void)toCount;
6078     (void)count;
6079     *count += sizeof(VkStructureType);
6080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6081         rootType = toCount->sType;
6082     }
6083     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6084     *count += sizeof(VkBool32);
6085 }
6086 
count_VkPhysicalDeviceMaintenance5PropertiesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceMaintenance5PropertiesKHR * toCount,size_t * count)6087 void count_VkPhysicalDeviceMaintenance5PropertiesKHR(
6088     uint32_t featureBits, VkStructureType rootType,
6089     const VkPhysicalDeviceMaintenance5PropertiesKHR* toCount, size_t* count) {
6090     (void)featureBits;
6091     (void)rootType;
6092     (void)toCount;
6093     (void)count;
6094     *count += sizeof(VkStructureType);
6095     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6096         rootType = toCount->sType;
6097     }
6098     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6099     *count += sizeof(VkBool32);
6100     *count += sizeof(VkBool32);
6101     *count += sizeof(VkBool32);
6102     *count += sizeof(VkBool32);
6103     *count += sizeof(VkBool32);
6104     *count += sizeof(VkBool32);
6105 }
6106 
count_VkRenderingAreaInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkRenderingAreaInfoKHR * toCount,size_t * count)6107 void count_VkRenderingAreaInfoKHR(uint32_t featureBits, VkStructureType rootType,
6108                                   const VkRenderingAreaInfoKHR* toCount, size_t* count) {
6109     (void)featureBits;
6110     (void)rootType;
6111     (void)toCount;
6112     (void)count;
6113     *count += sizeof(VkStructureType);
6114     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6115         rootType = toCount->sType;
6116     }
6117     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6118     *count += sizeof(uint32_t);
6119     *count += sizeof(uint32_t);
6120     // WARNING PTR CHECK
6121     *count += 8;
6122     if (toCount->pColorAttachmentFormats) {
6123         if (toCount) {
6124             *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
6125         }
6126     }
6127     *count += sizeof(VkFormat);
6128     *count += sizeof(VkFormat);
6129 }
6130 
count_VkImageSubresource2KHR(uint32_t featureBits,VkStructureType rootType,const VkImageSubresource2KHR * toCount,size_t * count)6131 void count_VkImageSubresource2KHR(uint32_t featureBits, VkStructureType rootType,
6132                                   const VkImageSubresource2KHR* toCount, size_t* count) {
6133     (void)featureBits;
6134     (void)rootType;
6135     (void)toCount;
6136     (void)count;
6137     *count += sizeof(VkStructureType);
6138     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6139         rootType = toCount->sType;
6140     }
6141     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6142     count_VkImageSubresource(featureBits, rootType,
6143                              (VkImageSubresource*)(&toCount->imageSubresource), count);
6144 }
6145 
count_VkDeviceImageSubresourceInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkDeviceImageSubresourceInfoKHR * toCount,size_t * count)6146 void count_VkDeviceImageSubresourceInfoKHR(uint32_t featureBits, VkStructureType rootType,
6147                                            const VkDeviceImageSubresourceInfoKHR* toCount,
6148                                            size_t* count) {
6149     (void)featureBits;
6150     (void)rootType;
6151     (void)toCount;
6152     (void)count;
6153     *count += sizeof(VkStructureType);
6154     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6155         rootType = toCount->sType;
6156     }
6157     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6158     count_VkImageCreateInfo(featureBits, rootType, (const VkImageCreateInfo*)(toCount->pCreateInfo),
6159                             count);
6160     count_VkImageSubresource2KHR(featureBits, rootType,
6161                                  (const VkImageSubresource2KHR*)(toCount->pSubresource), count);
6162 }
6163 
count_VkSubresourceLayout2KHR(uint32_t featureBits,VkStructureType rootType,const VkSubresourceLayout2KHR * toCount,size_t * count)6164 void count_VkSubresourceLayout2KHR(uint32_t featureBits, VkStructureType rootType,
6165                                    const VkSubresourceLayout2KHR* toCount, size_t* count) {
6166     (void)featureBits;
6167     (void)rootType;
6168     (void)toCount;
6169     (void)count;
6170     *count += sizeof(VkStructureType);
6171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6172         rootType = toCount->sType;
6173     }
6174     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6175     count_VkSubresourceLayout(featureBits, rootType,
6176                               (VkSubresourceLayout*)(&toCount->subresourceLayout), count);
6177 }
6178 
count_VkPipelineCreateFlags2CreateInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineCreateFlags2CreateInfoKHR * toCount,size_t * count)6179 void count_VkPipelineCreateFlags2CreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
6180                                                const VkPipelineCreateFlags2CreateInfoKHR* toCount,
6181                                                size_t* count) {
6182     (void)featureBits;
6183     (void)rootType;
6184     (void)toCount;
6185     (void)count;
6186     *count += sizeof(VkStructureType);
6187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6188         rootType = toCount->sType;
6189     }
6190     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6191     *count += sizeof(VkPipelineCreateFlags2KHR);
6192 }
6193 
count_VkBufferUsageFlags2CreateInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkBufferUsageFlags2CreateInfoKHR * toCount,size_t * count)6194 void count_VkBufferUsageFlags2CreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
6195                                             const VkBufferUsageFlags2CreateInfoKHR* toCount,
6196                                             size_t* count) {
6197     (void)featureBits;
6198     (void)rootType;
6199     (void)toCount;
6200     (void)count;
6201     *count += sizeof(VkStructureType);
6202     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6203         rootType = toCount->sType;
6204     }
6205     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6206     *count += sizeof(VkBufferUsageFlags2KHR);
6207 }
6208 
6209 #endif
6210 #ifdef VK_KHR_line_rasterization
count_VkPhysicalDeviceLineRasterizationFeaturesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeaturesKHR * toCount,size_t * count)6211 void count_VkPhysicalDeviceLineRasterizationFeaturesKHR(
6212     uint32_t featureBits, VkStructureType rootType,
6213     const VkPhysicalDeviceLineRasterizationFeaturesKHR* toCount, size_t* count) {
6214     (void)featureBits;
6215     (void)rootType;
6216     (void)toCount;
6217     (void)count;
6218     *count += sizeof(VkStructureType);
6219     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6220         rootType = toCount->sType;
6221     }
6222     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6223     *count += sizeof(VkBool32);
6224     *count += sizeof(VkBool32);
6225     *count += sizeof(VkBool32);
6226     *count += sizeof(VkBool32);
6227     *count += sizeof(VkBool32);
6228     *count += sizeof(VkBool32);
6229 }
6230 
count_VkPhysicalDeviceLineRasterizationPropertiesKHR(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationPropertiesKHR * toCount,size_t * count)6231 void count_VkPhysicalDeviceLineRasterizationPropertiesKHR(
6232     uint32_t featureBits, VkStructureType rootType,
6233     const VkPhysicalDeviceLineRasterizationPropertiesKHR* toCount, size_t* count) {
6234     (void)featureBits;
6235     (void)rootType;
6236     (void)toCount;
6237     (void)count;
6238     *count += sizeof(VkStructureType);
6239     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6240         rootType = toCount->sType;
6241     }
6242     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6243     *count += sizeof(uint32_t);
6244 }
6245 
count_VkPipelineRasterizationLineStateCreateInfoKHR(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfoKHR * toCount,size_t * count)6246 void count_VkPipelineRasterizationLineStateCreateInfoKHR(
6247     uint32_t featureBits, VkStructureType rootType,
6248     const VkPipelineRasterizationLineStateCreateInfoKHR* toCount, size_t* count) {
6249     (void)featureBits;
6250     (void)rootType;
6251     (void)toCount;
6252     (void)count;
6253     *count += sizeof(VkStructureType);
6254     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6255         rootType = toCount->sType;
6256     }
6257     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6258     *count += sizeof(VkLineRasterizationModeKHR);
6259     *count += sizeof(VkBool32);
6260     *count += sizeof(uint32_t);
6261     *count += sizeof(uint16_t);
6262 }
6263 
6264 #endif
6265 #ifdef VK_ANDROID_native_buffer
count_VkNativeBufferUsage2ANDROID(uint32_t featureBits,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * toCount,size_t * count)6266 void count_VkNativeBufferUsage2ANDROID(uint32_t featureBits, VkStructureType rootType,
6267                                        const VkNativeBufferUsage2ANDROID* toCount, size_t* count) {
6268     (void)featureBits;
6269     (void)rootType;
6270     (void)toCount;
6271     (void)count;
6272     *count += sizeof(uint64_t);
6273     *count += sizeof(uint64_t);
6274 }
6275 
count_VkNativeBufferANDROID(uint32_t featureBits,VkStructureType rootType,const VkNativeBufferANDROID * toCount,size_t * count)6276 void count_VkNativeBufferANDROID(uint32_t featureBits, VkStructureType rootType,
6277                                  const VkNativeBufferANDROID* toCount, size_t* count) {
6278     (void)featureBits;
6279     (void)rootType;
6280     (void)toCount;
6281     (void)count;
6282     *count += sizeof(VkStructureType);
6283     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6284         rootType = toCount->sType;
6285     }
6286     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6287     // WARNING PTR CHECK
6288     *count += 8;
6289     if (toCount->handle) {
6290         *count += sizeof(const uint32_t);
6291     }
6292     *count += sizeof(int);
6293     *count += sizeof(int);
6294     *count += sizeof(int);
6295     count_VkNativeBufferUsage2ANDROID(featureBits, rootType,
6296                                       (VkNativeBufferUsage2ANDROID*)(&toCount->usage2), count);
6297 }
6298 
count_VkSwapchainImageCreateInfoANDROID(uint32_t featureBits,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * toCount,size_t * count)6299 void count_VkSwapchainImageCreateInfoANDROID(uint32_t featureBits, VkStructureType rootType,
6300                                              const VkSwapchainImageCreateInfoANDROID* toCount,
6301                                              size_t* count) {
6302     (void)featureBits;
6303     (void)rootType;
6304     (void)toCount;
6305     (void)count;
6306     *count += sizeof(VkStructureType);
6307     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6308         rootType = toCount->sType;
6309     }
6310     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6311     *count += sizeof(VkSwapchainImageUsageFlagsANDROID);
6312 }
6313 
count_VkPhysicalDevicePresentationPropertiesANDROID(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * toCount,size_t * count)6314 void count_VkPhysicalDevicePresentationPropertiesANDROID(
6315     uint32_t featureBits, VkStructureType rootType,
6316     const VkPhysicalDevicePresentationPropertiesANDROID* toCount, size_t* count) {
6317     (void)featureBits;
6318     (void)rootType;
6319     (void)toCount;
6320     (void)count;
6321     *count += sizeof(VkStructureType);
6322     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6323         rootType = toCount->sType;
6324     }
6325     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6326     *count += sizeof(VkBool32);
6327 }
6328 
6329 #endif
6330 #ifdef VK_EXT_transform_feedback
count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * toCount,size_t * count)6331 void count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
6332     uint32_t featureBits, VkStructureType rootType,
6333     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* toCount, size_t* count) {
6334     (void)featureBits;
6335     (void)rootType;
6336     (void)toCount;
6337     (void)count;
6338     *count += sizeof(VkStructureType);
6339     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6340         rootType = toCount->sType;
6341     }
6342     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6343     *count += sizeof(VkBool32);
6344     *count += sizeof(VkBool32);
6345 }
6346 
count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * toCount,size_t * count)6347 void count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
6348     uint32_t featureBits, VkStructureType rootType,
6349     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* toCount, size_t* count) {
6350     (void)featureBits;
6351     (void)rootType;
6352     (void)toCount;
6353     (void)count;
6354     *count += sizeof(VkStructureType);
6355     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6356         rootType = toCount->sType;
6357     }
6358     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6359     *count += sizeof(uint32_t);
6360     *count += sizeof(uint32_t);
6361     *count += sizeof(VkDeviceSize);
6362     *count += sizeof(uint32_t);
6363     *count += sizeof(uint32_t);
6364     *count += sizeof(uint32_t);
6365     *count += sizeof(VkBool32);
6366     *count += sizeof(VkBool32);
6367     *count += sizeof(VkBool32);
6368     *count += sizeof(VkBool32);
6369 }
6370 
count_VkPipelineRasterizationStateStreamCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * toCount,size_t * count)6371 void count_VkPipelineRasterizationStateStreamCreateInfoEXT(
6372     uint32_t featureBits, VkStructureType rootType,
6373     const VkPipelineRasterizationStateStreamCreateInfoEXT* toCount, size_t* count) {
6374     (void)featureBits;
6375     (void)rootType;
6376     (void)toCount;
6377     (void)count;
6378     *count += sizeof(VkStructureType);
6379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6380         rootType = toCount->sType;
6381     }
6382     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6383     *count += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
6384     *count += sizeof(uint32_t);
6385 }
6386 
6387 #endif
6388 #ifdef VK_EXT_depth_clip_enable
count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * toCount,size_t * count)6389 void count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
6390     uint32_t featureBits, VkStructureType rootType,
6391     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* toCount, size_t* count) {
6392     (void)featureBits;
6393     (void)rootType;
6394     (void)toCount;
6395     (void)count;
6396     *count += sizeof(VkStructureType);
6397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6398         rootType = toCount->sType;
6399     }
6400     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6401     *count += sizeof(VkBool32);
6402 }
6403 
count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * toCount,size_t * count)6404 void count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
6405     uint32_t featureBits, VkStructureType rootType,
6406     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* toCount, size_t* count) {
6407     (void)featureBits;
6408     (void)rootType;
6409     (void)toCount;
6410     (void)count;
6411     *count += sizeof(VkStructureType);
6412     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6413         rootType = toCount->sType;
6414     }
6415     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6416     *count += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
6417     *count += sizeof(VkBool32);
6418 }
6419 
6420 #endif
6421 #ifdef VK_EXT_image_drm_format_modifier
count_VkDrmFormatModifierPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * toCount,size_t * count)6422 void count_VkDrmFormatModifierPropertiesEXT(uint32_t featureBits, VkStructureType rootType,
6423                                             const VkDrmFormatModifierPropertiesEXT* toCount,
6424                                             size_t* count) {
6425     (void)featureBits;
6426     (void)rootType;
6427     (void)toCount;
6428     (void)count;
6429     *count += sizeof(uint64_t);
6430     *count += sizeof(uint32_t);
6431     *count += sizeof(VkFormatFeatureFlags);
6432 }
6433 
count_VkDrmFormatModifierPropertiesListEXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * toCount,size_t * count)6434 void count_VkDrmFormatModifierPropertiesListEXT(uint32_t featureBits, VkStructureType rootType,
6435                                                 const VkDrmFormatModifierPropertiesListEXT* toCount,
6436                                                 size_t* count) {
6437     (void)featureBits;
6438     (void)rootType;
6439     (void)toCount;
6440     (void)count;
6441     *count += sizeof(VkStructureType);
6442     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6443         rootType = toCount->sType;
6444     }
6445     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6446     *count += sizeof(uint32_t);
6447     // WARNING PTR CHECK
6448     *count += 8;
6449     if (toCount->pDrmFormatModifierProperties) {
6450         if (toCount) {
6451             for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i) {
6452                 count_VkDrmFormatModifierPropertiesEXT(
6453                     featureBits, rootType,
6454                     (VkDrmFormatModifierPropertiesEXT*)(toCount->pDrmFormatModifierProperties + i),
6455                     count);
6456             }
6457         }
6458     }
6459 }
6460 
count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * toCount,size_t * count)6461 void count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
6462     uint32_t featureBits, VkStructureType rootType,
6463     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toCount, size_t* count) {
6464     (void)featureBits;
6465     (void)rootType;
6466     (void)toCount;
6467     (void)count;
6468     *count += sizeof(VkStructureType);
6469     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6470         rootType = toCount->sType;
6471     }
6472     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6473     *count += sizeof(uint64_t);
6474     *count += sizeof(VkSharingMode);
6475     *count += sizeof(uint32_t);
6476     // WARNING PTR CHECK
6477     *count += 8;
6478     if (toCount->pQueueFamilyIndices) {
6479         if (toCount) {
6480             *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
6481         }
6482     }
6483 }
6484 
count_VkImageDrmFormatModifierListCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * toCount,size_t * count)6485 void count_VkImageDrmFormatModifierListCreateInfoEXT(
6486     uint32_t featureBits, VkStructureType rootType,
6487     const VkImageDrmFormatModifierListCreateInfoEXT* toCount, size_t* count) {
6488     (void)featureBits;
6489     (void)rootType;
6490     (void)toCount;
6491     (void)count;
6492     *count += sizeof(VkStructureType);
6493     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6494         rootType = toCount->sType;
6495     }
6496     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6497     *count += sizeof(uint32_t);
6498     if (toCount) {
6499         *count += toCount->drmFormatModifierCount * sizeof(const uint64_t);
6500     }
6501 }
6502 
count_VkImageDrmFormatModifierExplicitCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * toCount,size_t * count)6503 void count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
6504     uint32_t featureBits, VkStructureType rootType,
6505     const VkImageDrmFormatModifierExplicitCreateInfoEXT* toCount, size_t* count) {
6506     (void)featureBits;
6507     (void)rootType;
6508     (void)toCount;
6509     (void)count;
6510     *count += sizeof(VkStructureType);
6511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6512         rootType = toCount->sType;
6513     }
6514     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6515     *count += sizeof(uint64_t);
6516     *count += sizeof(uint32_t);
6517     if (toCount) {
6518         for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierPlaneCount; ++i) {
6519             count_VkSubresourceLayout(featureBits, rootType,
6520                                       (const VkSubresourceLayout*)(toCount->pPlaneLayouts + i),
6521                                       count);
6522         }
6523     }
6524 }
6525 
count_VkImageDrmFormatModifierPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * toCount,size_t * count)6526 void count_VkImageDrmFormatModifierPropertiesEXT(
6527     uint32_t featureBits, VkStructureType rootType,
6528     const VkImageDrmFormatModifierPropertiesEXT* toCount, size_t* count) {
6529     (void)featureBits;
6530     (void)rootType;
6531     (void)toCount;
6532     (void)count;
6533     *count += sizeof(VkStructureType);
6534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6535         rootType = toCount->sType;
6536     }
6537     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6538     *count += sizeof(uint64_t);
6539 }
6540 
count_VkDrmFormatModifierProperties2EXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * toCount,size_t * count)6541 void count_VkDrmFormatModifierProperties2EXT(uint32_t featureBits, VkStructureType rootType,
6542                                              const VkDrmFormatModifierProperties2EXT* toCount,
6543                                              size_t* count) {
6544     (void)featureBits;
6545     (void)rootType;
6546     (void)toCount;
6547     (void)count;
6548     *count += sizeof(uint64_t);
6549     *count += sizeof(uint32_t);
6550     *count += sizeof(VkFormatFeatureFlags2);
6551 }
6552 
count_VkDrmFormatModifierPropertiesList2EXT(uint32_t featureBits,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * toCount,size_t * count)6553 void count_VkDrmFormatModifierPropertiesList2EXT(
6554     uint32_t featureBits, VkStructureType rootType,
6555     const VkDrmFormatModifierPropertiesList2EXT* toCount, size_t* count) {
6556     (void)featureBits;
6557     (void)rootType;
6558     (void)toCount;
6559     (void)count;
6560     *count += sizeof(VkStructureType);
6561     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6562         rootType = toCount->sType;
6563     }
6564     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6565     *count += sizeof(uint32_t);
6566     // WARNING PTR CHECK
6567     *count += 8;
6568     if (toCount->pDrmFormatModifierProperties) {
6569         if (toCount) {
6570             for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i) {
6571                 count_VkDrmFormatModifierProperties2EXT(
6572                     featureBits, rootType,
6573                     (VkDrmFormatModifierProperties2EXT*)(toCount->pDrmFormatModifierProperties + i),
6574                     count);
6575             }
6576         }
6577     }
6578 }
6579 
6580 #endif
6581 #ifdef VK_EXT_vertex_attribute_divisor
count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * toCount,size_t * count)6582 void count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
6583     uint32_t featureBits, VkStructureType rootType,
6584     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* toCount, size_t* count) {
6585     (void)featureBits;
6586     (void)rootType;
6587     (void)toCount;
6588     (void)count;
6589     *count += sizeof(VkStructureType);
6590     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6591         rootType = toCount->sType;
6592     }
6593     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6594     *count += sizeof(uint32_t);
6595 }
6596 
6597 #endif
6598 #ifdef VK_EXT_fragment_density_map
count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * toCount,size_t * count)6599 void count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
6600     uint32_t featureBits, VkStructureType rootType,
6601     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* toCount, size_t* count) {
6602     (void)featureBits;
6603     (void)rootType;
6604     (void)toCount;
6605     (void)count;
6606     *count += sizeof(VkStructureType);
6607     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6608         rootType = toCount->sType;
6609     }
6610     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6611     *count += sizeof(VkBool32);
6612     *count += sizeof(VkBool32);
6613     *count += sizeof(VkBool32);
6614 }
6615 
count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * toCount,size_t * count)6616 void count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
6617     uint32_t featureBits, VkStructureType rootType,
6618     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* toCount, size_t* count) {
6619     (void)featureBits;
6620     (void)rootType;
6621     (void)toCount;
6622     (void)count;
6623     *count += sizeof(VkStructureType);
6624     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6625         rootType = toCount->sType;
6626     }
6627     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6628     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->minFragmentDensityTexelSize),
6629                      count);
6630     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxFragmentDensityTexelSize),
6631                      count);
6632     *count += sizeof(VkBool32);
6633 }
6634 
count_VkRenderPassFragmentDensityMapCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * toCount,size_t * count)6635 void count_VkRenderPassFragmentDensityMapCreateInfoEXT(
6636     uint32_t featureBits, VkStructureType rootType,
6637     const VkRenderPassFragmentDensityMapCreateInfoEXT* toCount, size_t* count) {
6638     (void)featureBits;
6639     (void)rootType;
6640     (void)toCount;
6641     (void)count;
6642     *count += sizeof(VkStructureType);
6643     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6644         rootType = toCount->sType;
6645     }
6646     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6647     count_VkAttachmentReference(featureBits, rootType,
6648                                 (VkAttachmentReference*)(&toCount->fragmentDensityMapAttachment),
6649                                 count);
6650 }
6651 
6652 #endif
6653 #ifdef VK_EXT_provoking_vertex
count_VkPhysicalDeviceProvokingVertexFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * toCount,size_t * count)6654 void count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
6655     uint32_t featureBits, VkStructureType rootType,
6656     const VkPhysicalDeviceProvokingVertexFeaturesEXT* toCount, size_t* count) {
6657     (void)featureBits;
6658     (void)rootType;
6659     (void)toCount;
6660     (void)count;
6661     *count += sizeof(VkStructureType);
6662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6663         rootType = toCount->sType;
6664     }
6665     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6666     *count += sizeof(VkBool32);
6667     *count += sizeof(VkBool32);
6668 }
6669 
count_VkPhysicalDeviceProvokingVertexPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * toCount,size_t * count)6670 void count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
6671     uint32_t featureBits, VkStructureType rootType,
6672     const VkPhysicalDeviceProvokingVertexPropertiesEXT* toCount, size_t* count) {
6673     (void)featureBits;
6674     (void)rootType;
6675     (void)toCount;
6676     (void)count;
6677     *count += sizeof(VkStructureType);
6678     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6679         rootType = toCount->sType;
6680     }
6681     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6682     *count += sizeof(VkBool32);
6683     *count += sizeof(VkBool32);
6684 }
6685 
count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * toCount,size_t * count)6686 void count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
6687     uint32_t featureBits, VkStructureType rootType,
6688     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toCount, size_t* count) {
6689     (void)featureBits;
6690     (void)rootType;
6691     (void)toCount;
6692     (void)count;
6693     *count += sizeof(VkStructureType);
6694     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6695         rootType = toCount->sType;
6696     }
6697     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6698     *count += sizeof(VkProvokingVertexModeEXT);
6699 }
6700 
6701 #endif
6702 #ifdef VK_EXT_extended_dynamic_state
count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * toCount,size_t * count)6703 void count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
6704     uint32_t featureBits, VkStructureType rootType,
6705     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toCount, size_t* count) {
6706     (void)featureBits;
6707     (void)rootType;
6708     (void)toCount;
6709     (void)count;
6710     *count += sizeof(VkStructureType);
6711     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6712         rootType = toCount->sType;
6713     }
6714     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6715     *count += sizeof(VkBool32);
6716 }
6717 
6718 #endif
6719 #ifdef VK_EXT_host_image_copy
count_VkPhysicalDeviceHostImageCopyFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyFeaturesEXT * toCount,size_t * count)6720 void count_VkPhysicalDeviceHostImageCopyFeaturesEXT(
6721     uint32_t featureBits, VkStructureType rootType,
6722     const VkPhysicalDeviceHostImageCopyFeaturesEXT* toCount, size_t* count) {
6723     (void)featureBits;
6724     (void)rootType;
6725     (void)toCount;
6726     (void)count;
6727     *count += sizeof(VkStructureType);
6728     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6729         rootType = toCount->sType;
6730     }
6731     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6732     *count += sizeof(VkBool32);
6733 }
6734 
count_VkPhysicalDeviceHostImageCopyPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyPropertiesEXT * toCount,size_t * count)6735 void count_VkPhysicalDeviceHostImageCopyPropertiesEXT(
6736     uint32_t featureBits, VkStructureType rootType,
6737     const VkPhysicalDeviceHostImageCopyPropertiesEXT* toCount, size_t* count) {
6738     (void)featureBits;
6739     (void)rootType;
6740     (void)toCount;
6741     (void)count;
6742     *count += sizeof(VkStructureType);
6743     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6744         rootType = toCount->sType;
6745     }
6746     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6747     *count += sizeof(uint32_t);
6748     // WARNING PTR CHECK
6749     *count += 8;
6750     if (toCount->pCopySrcLayouts) {
6751         if (toCount) {
6752             *count += toCount->copySrcLayoutCount * sizeof(VkImageLayout);
6753         }
6754     }
6755     *count += sizeof(uint32_t);
6756     // WARNING PTR CHECK
6757     *count += 8;
6758     if (toCount->pCopyDstLayouts) {
6759         if (toCount) {
6760             *count += toCount->copyDstLayoutCount * sizeof(VkImageLayout);
6761         }
6762     }
6763     *count += VK_UUID_SIZE * sizeof(uint8_t);
6764     *count += sizeof(VkBool32);
6765 }
6766 
count_VkMemoryToImageCopyEXT(uint32_t featureBits,VkStructureType rootType,const VkMemoryToImageCopyEXT * toCount,size_t * count)6767 void count_VkMemoryToImageCopyEXT(uint32_t featureBits, VkStructureType rootType,
6768                                   const VkMemoryToImageCopyEXT* toCount, size_t* count) {
6769     (void)featureBits;
6770     (void)rootType;
6771     (void)toCount;
6772     (void)count;
6773     *count += sizeof(VkStructureType);
6774     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6775         rootType = toCount->sType;
6776     }
6777     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6778     *count += sizeof(const uint8_t);
6779     *count += sizeof(uint32_t);
6780     *count += sizeof(uint32_t);
6781     count_VkImageSubresourceLayers(featureBits, rootType,
6782                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
6783     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
6784     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
6785 }
6786 
count_VkImageToMemoryCopyEXT(uint32_t featureBits,VkStructureType rootType,const VkImageToMemoryCopyEXT * toCount,size_t * count)6787 void count_VkImageToMemoryCopyEXT(uint32_t featureBits, VkStructureType rootType,
6788                                   const VkImageToMemoryCopyEXT* toCount, size_t* count) {
6789     (void)featureBits;
6790     (void)rootType;
6791     (void)toCount;
6792     (void)count;
6793     *count += sizeof(VkStructureType);
6794     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6795         rootType = toCount->sType;
6796     }
6797     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6798     *count += sizeof(uint8_t);
6799     *count += sizeof(uint32_t);
6800     *count += sizeof(uint32_t);
6801     count_VkImageSubresourceLayers(featureBits, rootType,
6802                                    (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
6803     count_VkOffset3D(featureBits, rootType, (VkOffset3D*)(&toCount->imageOffset), count);
6804     count_VkExtent3D(featureBits, rootType, (VkExtent3D*)(&toCount->imageExtent), count);
6805 }
6806 
count_VkCopyMemoryToImageInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkCopyMemoryToImageInfoEXT * toCount,size_t * count)6807 void count_VkCopyMemoryToImageInfoEXT(uint32_t featureBits, VkStructureType rootType,
6808                                       const VkCopyMemoryToImageInfoEXT* toCount, size_t* count) {
6809     (void)featureBits;
6810     (void)rootType;
6811     (void)toCount;
6812     (void)count;
6813     *count += sizeof(VkStructureType);
6814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6815         rootType = toCount->sType;
6816     }
6817     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6818     *count += sizeof(VkHostImageCopyFlagsEXT);
6819     uint64_t cgen_var_0;
6820     *count += 1 * 8;
6821     *count += sizeof(VkImageLayout);
6822     *count += sizeof(uint32_t);
6823     if (toCount) {
6824         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6825             count_VkMemoryToImageCopyEXT(featureBits, rootType,
6826                                          (const VkMemoryToImageCopyEXT*)(toCount->pRegions + i),
6827                                          count);
6828         }
6829     }
6830 }
6831 
count_VkCopyImageToMemoryInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkCopyImageToMemoryInfoEXT * toCount,size_t * count)6832 void count_VkCopyImageToMemoryInfoEXT(uint32_t featureBits, VkStructureType rootType,
6833                                       const VkCopyImageToMemoryInfoEXT* toCount, size_t* count) {
6834     (void)featureBits;
6835     (void)rootType;
6836     (void)toCount;
6837     (void)count;
6838     *count += sizeof(VkStructureType);
6839     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6840         rootType = toCount->sType;
6841     }
6842     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6843     *count += sizeof(VkHostImageCopyFlagsEXT);
6844     uint64_t cgen_var_0;
6845     *count += 1 * 8;
6846     *count += sizeof(VkImageLayout);
6847     *count += sizeof(uint32_t);
6848     if (toCount) {
6849         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6850             count_VkImageToMemoryCopyEXT(featureBits, rootType,
6851                                          (const VkImageToMemoryCopyEXT*)(toCount->pRegions + i),
6852                                          count);
6853         }
6854     }
6855 }
6856 
count_VkCopyImageToImageInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkCopyImageToImageInfoEXT * toCount,size_t * count)6857 void count_VkCopyImageToImageInfoEXT(uint32_t featureBits, VkStructureType rootType,
6858                                      const VkCopyImageToImageInfoEXT* toCount, size_t* count) {
6859     (void)featureBits;
6860     (void)rootType;
6861     (void)toCount;
6862     (void)count;
6863     *count += sizeof(VkStructureType);
6864     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6865         rootType = toCount->sType;
6866     }
6867     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6868     *count += sizeof(VkHostImageCopyFlagsEXT);
6869     uint64_t cgen_var_0;
6870     *count += 1 * 8;
6871     *count += sizeof(VkImageLayout);
6872     uint64_t cgen_var_1;
6873     *count += 1 * 8;
6874     *count += sizeof(VkImageLayout);
6875     *count += sizeof(uint32_t);
6876     if (toCount) {
6877         for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i) {
6878             count_VkImageCopy2(featureBits, rootType, (const VkImageCopy2*)(toCount->pRegions + i),
6879                                count);
6880         }
6881     }
6882 }
6883 
count_VkHostImageLayoutTransitionInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkHostImageLayoutTransitionInfoEXT * toCount,size_t * count)6884 void count_VkHostImageLayoutTransitionInfoEXT(uint32_t featureBits, VkStructureType rootType,
6885                                               const VkHostImageLayoutTransitionInfoEXT* toCount,
6886                                               size_t* count) {
6887     (void)featureBits;
6888     (void)rootType;
6889     (void)toCount;
6890     (void)count;
6891     *count += sizeof(VkStructureType);
6892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6893         rootType = toCount->sType;
6894     }
6895     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6896     uint64_t cgen_var_0;
6897     *count += 1 * 8;
6898     *count += sizeof(VkImageLayout);
6899     *count += sizeof(VkImageLayout);
6900     count_VkImageSubresourceRange(featureBits, rootType,
6901                                   (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
6902 }
6903 
count_VkSubresourceHostMemcpySizeEXT(uint32_t featureBits,VkStructureType rootType,const VkSubresourceHostMemcpySizeEXT * toCount,size_t * count)6904 void count_VkSubresourceHostMemcpySizeEXT(uint32_t featureBits, VkStructureType rootType,
6905                                           const VkSubresourceHostMemcpySizeEXT* toCount,
6906                                           size_t* count) {
6907     (void)featureBits;
6908     (void)rootType;
6909     (void)toCount;
6910     (void)count;
6911     *count += sizeof(VkStructureType);
6912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6913         rootType = toCount->sType;
6914     }
6915     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6916     *count += sizeof(VkDeviceSize);
6917 }
6918 
count_VkHostImageCopyDevicePerformanceQueryEXT(uint32_t featureBits,VkStructureType rootType,const VkHostImageCopyDevicePerformanceQueryEXT * toCount,size_t * count)6919 void count_VkHostImageCopyDevicePerformanceQueryEXT(
6920     uint32_t featureBits, VkStructureType rootType,
6921     const VkHostImageCopyDevicePerformanceQueryEXT* toCount, size_t* count) {
6922     (void)featureBits;
6923     (void)rootType;
6924     (void)toCount;
6925     (void)count;
6926     *count += sizeof(VkStructureType);
6927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6928         rootType = toCount->sType;
6929     }
6930     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6931     *count += sizeof(VkBool32);
6932     *count += sizeof(VkBool32);
6933 }
6934 
6935 #endif
6936 #ifdef VK_EXT_texel_buffer_alignment
count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * toCount,size_t * count)6937 void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
6938     uint32_t featureBits, VkStructureType rootType,
6939     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toCount, size_t* count) {
6940     (void)featureBits;
6941     (void)rootType;
6942     (void)toCount;
6943     (void)count;
6944     *count += sizeof(VkStructureType);
6945     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6946         rootType = toCount->sType;
6947     }
6948     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6949     *count += sizeof(VkBool32);
6950 }
6951 
6952 #endif
6953 #ifdef VK_EXT_device_memory_report
count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * toCount,size_t * count)6954 void count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
6955     uint32_t featureBits, VkStructureType rootType,
6956     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toCount, size_t* count) {
6957     (void)featureBits;
6958     (void)rootType;
6959     (void)toCount;
6960     (void)count;
6961     *count += sizeof(VkStructureType);
6962     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6963         rootType = toCount->sType;
6964     }
6965     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6966     *count += sizeof(VkBool32);
6967 }
6968 
count_VkDeviceMemoryReportCallbackDataEXT(uint32_t featureBits,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * toCount,size_t * count)6969 void count_VkDeviceMemoryReportCallbackDataEXT(uint32_t featureBits, VkStructureType rootType,
6970                                                const VkDeviceMemoryReportCallbackDataEXT* toCount,
6971                                                size_t* count) {
6972     (void)featureBits;
6973     (void)rootType;
6974     (void)toCount;
6975     (void)count;
6976     *count += sizeof(VkStructureType);
6977     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6978         rootType = toCount->sType;
6979     }
6980     count_extension_struct(featureBits, rootType, toCount->pNext, count);
6981     *count += sizeof(VkDeviceMemoryReportFlagsEXT);
6982     *count += sizeof(VkDeviceMemoryReportEventTypeEXT);
6983     *count += sizeof(uint64_t);
6984     *count += sizeof(VkDeviceSize);
6985     *count += sizeof(VkObjectType);
6986     *count += sizeof(uint64_t);
6987     *count += sizeof(uint32_t);
6988 }
6989 
count_VkDeviceDeviceMemoryReportCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * toCount,size_t * count)6990 void count_VkDeviceDeviceMemoryReportCreateInfoEXT(
6991     uint32_t featureBits, VkStructureType rootType,
6992     const VkDeviceDeviceMemoryReportCreateInfoEXT* toCount, size_t* count) {
6993     (void)featureBits;
6994     (void)rootType;
6995     (void)toCount;
6996     (void)count;
6997     *count += sizeof(VkStructureType);
6998     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6999         rootType = toCount->sType;
7000     }
7001     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7002     *count += sizeof(VkDeviceMemoryReportFlagsEXT);
7003     *count += 8;
7004     *count += sizeof(uint8_t);
7005 }
7006 
7007 #endif
7008 #ifdef VK_EXT_robustness2
count_VkPhysicalDeviceRobustness2FeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * toCount,size_t * count)7009 void count_VkPhysicalDeviceRobustness2FeaturesEXT(
7010     uint32_t featureBits, VkStructureType rootType,
7011     const VkPhysicalDeviceRobustness2FeaturesEXT* toCount, size_t* count) {
7012     (void)featureBits;
7013     (void)rootType;
7014     (void)toCount;
7015     (void)count;
7016     *count += sizeof(VkStructureType);
7017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7018         rootType = toCount->sType;
7019     }
7020     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7021     *count += sizeof(VkBool32);
7022     *count += sizeof(VkBool32);
7023     *count += sizeof(VkBool32);
7024 }
7025 
count_VkPhysicalDeviceRobustness2PropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * toCount,size_t * count)7026 void count_VkPhysicalDeviceRobustness2PropertiesEXT(
7027     uint32_t featureBits, VkStructureType rootType,
7028     const VkPhysicalDeviceRobustness2PropertiesEXT* toCount, size_t* count) {
7029     (void)featureBits;
7030     (void)rootType;
7031     (void)toCount;
7032     (void)count;
7033     *count += sizeof(VkStructureType);
7034     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7035         rootType = toCount->sType;
7036     }
7037     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7038     *count += sizeof(VkDeviceSize);
7039     *count += sizeof(VkDeviceSize);
7040 }
7041 
7042 #endif
7043 #ifdef VK_EXT_custom_border_color
count_VkSamplerCustomBorderColorCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * toCount,size_t * count)7044 void count_VkSamplerCustomBorderColorCreateInfoEXT(
7045     uint32_t featureBits, VkStructureType rootType,
7046     const VkSamplerCustomBorderColorCreateInfoEXT* toCount, size_t* count) {
7047     (void)featureBits;
7048     (void)rootType;
7049     (void)toCount;
7050     (void)count;
7051     *count += sizeof(VkStructureType);
7052     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7053         rootType = toCount->sType;
7054     }
7055     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7056     count_VkClearColorValue(featureBits, rootType,
7057                             (VkClearColorValue*)(&toCount->customBorderColor), count);
7058     *count += sizeof(VkFormat);
7059 }
7060 
count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * toCount,size_t * count)7061 void count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
7062     uint32_t featureBits, VkStructureType rootType,
7063     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* toCount, size_t* count) {
7064     (void)featureBits;
7065     (void)rootType;
7066     (void)toCount;
7067     (void)count;
7068     *count += sizeof(VkStructureType);
7069     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7070         rootType = toCount->sType;
7071     }
7072     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7073     *count += sizeof(uint32_t);
7074 }
7075 
count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * toCount,size_t * count)7076 void count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
7077     uint32_t featureBits, VkStructureType rootType,
7078     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* toCount, size_t* count) {
7079     (void)featureBits;
7080     (void)rootType;
7081     (void)toCount;
7082     (void)count;
7083     *count += sizeof(VkStructureType);
7084     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7085         rootType = toCount->sType;
7086     }
7087     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7088     *count += sizeof(VkBool32);
7089     *count += sizeof(VkBool32);
7090 }
7091 
7092 #endif
7093 #ifdef VK_EXT_graphics_pipeline_library
count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * toCount,size_t * count)7094 void count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
7095     uint32_t featureBits, VkStructureType rootType,
7096     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* toCount, size_t* count) {
7097     (void)featureBits;
7098     (void)rootType;
7099     (void)toCount;
7100     (void)count;
7101     *count += sizeof(VkStructureType);
7102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7103         rootType = toCount->sType;
7104     }
7105     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7106     *count += sizeof(VkBool32);
7107 }
7108 
count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * toCount,size_t * count)7109 void count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
7110     uint32_t featureBits, VkStructureType rootType,
7111     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* toCount, size_t* count) {
7112     (void)featureBits;
7113     (void)rootType;
7114     (void)toCount;
7115     (void)count;
7116     *count += sizeof(VkStructureType);
7117     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7118         rootType = toCount->sType;
7119     }
7120     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7121     *count += sizeof(VkBool32);
7122     *count += sizeof(VkBool32);
7123 }
7124 
count_VkGraphicsPipelineLibraryCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * toCount,size_t * count)7125 void count_VkGraphicsPipelineLibraryCreateInfoEXT(
7126     uint32_t featureBits, VkStructureType rootType,
7127     const VkGraphicsPipelineLibraryCreateInfoEXT* toCount, size_t* count) {
7128     (void)featureBits;
7129     (void)rootType;
7130     (void)toCount;
7131     (void)count;
7132     *count += sizeof(VkStructureType);
7133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7134         rootType = toCount->sType;
7135     }
7136     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7137     *count += sizeof(VkGraphicsPipelineLibraryFlagsEXT);
7138 }
7139 
7140 #endif
7141 #ifdef VK_EXT_ycbcr_2plane_444_formats
count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * toCount,size_t * count)7142 void count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
7143     uint32_t featureBits, VkStructureType rootType,
7144     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toCount, size_t* count) {
7145     (void)featureBits;
7146     (void)rootType;
7147     (void)toCount;
7148     (void)count;
7149     *count += sizeof(VkStructureType);
7150     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7151         rootType = toCount->sType;
7152     }
7153     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7154     *count += sizeof(VkBool32);
7155 }
7156 
7157 #endif
7158 #ifdef VK_EXT_image_compression_control
count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * toCount,size_t * count)7159 void count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
7160     uint32_t featureBits, VkStructureType rootType,
7161     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* toCount, size_t* count) {
7162     (void)featureBits;
7163     (void)rootType;
7164     (void)toCount;
7165     (void)count;
7166     *count += sizeof(VkStructureType);
7167     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7168         rootType = toCount->sType;
7169     }
7170     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7171     *count += sizeof(VkBool32);
7172 }
7173 
count_VkImageCompressionControlEXT(uint32_t featureBits,VkStructureType rootType,const VkImageCompressionControlEXT * toCount,size_t * count)7174 void count_VkImageCompressionControlEXT(uint32_t featureBits, VkStructureType rootType,
7175                                         const VkImageCompressionControlEXT* toCount,
7176                                         size_t* count) {
7177     (void)featureBits;
7178     (void)rootType;
7179     (void)toCount;
7180     (void)count;
7181     *count += sizeof(VkStructureType);
7182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7183         rootType = toCount->sType;
7184     }
7185     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7186     *count += sizeof(VkImageCompressionFlagsEXT);
7187     *count += sizeof(uint32_t);
7188     // WARNING PTR CHECK
7189     *count += 8;
7190     if (toCount->pFixedRateFlags) {
7191         if (toCount) {
7192             *count +=
7193                 toCount->compressionControlPlaneCount * sizeof(VkImageCompressionFixedRateFlagsEXT);
7194         }
7195     }
7196 }
7197 
count_VkImageCompressionPropertiesEXT(uint32_t featureBits,VkStructureType rootType,const VkImageCompressionPropertiesEXT * toCount,size_t * count)7198 void count_VkImageCompressionPropertiesEXT(uint32_t featureBits, VkStructureType rootType,
7199                                            const VkImageCompressionPropertiesEXT* toCount,
7200                                            size_t* count) {
7201     (void)featureBits;
7202     (void)rootType;
7203     (void)toCount;
7204     (void)count;
7205     *count += sizeof(VkStructureType);
7206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7207         rootType = toCount->sType;
7208     }
7209     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7210     *count += sizeof(VkImageCompressionFlagsEXT);
7211     *count += sizeof(VkImageCompressionFixedRateFlagsEXT);
7212 }
7213 
7214 #endif
7215 #ifdef VK_EXT_4444_formats
count_VkPhysicalDevice4444FormatsFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * toCount,size_t * count)7216 void count_VkPhysicalDevice4444FormatsFeaturesEXT(
7217     uint32_t featureBits, VkStructureType rootType,
7218     const VkPhysicalDevice4444FormatsFeaturesEXT* toCount, size_t* count) {
7219     (void)featureBits;
7220     (void)rootType;
7221     (void)toCount;
7222     (void)count;
7223     *count += sizeof(VkStructureType);
7224     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7225         rootType = toCount->sType;
7226     }
7227     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7228     *count += sizeof(VkBool32);
7229     *count += sizeof(VkBool32);
7230 }
7231 
7232 #endif
7233 #ifdef VK_EXT_primitive_topology_list_restart
count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * toCount,size_t * count)7234 void count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
7235     uint32_t featureBits, VkStructureType rootType,
7236     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toCount, size_t* count) {
7237     (void)featureBits;
7238     (void)rootType;
7239     (void)toCount;
7240     (void)count;
7241     *count += sizeof(VkStructureType);
7242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7243         rootType = toCount->sType;
7244     }
7245     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7246     *count += sizeof(VkBool32);
7247     *count += sizeof(VkBool32);
7248 }
7249 
7250 #endif
7251 #ifdef VK_EXT_extended_dynamic_state2
count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * toCount,size_t * count)7252 void count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
7253     uint32_t featureBits, VkStructureType rootType,
7254     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toCount, size_t* count) {
7255     (void)featureBits;
7256     (void)rootType;
7257     (void)toCount;
7258     (void)count;
7259     *count += sizeof(VkStructureType);
7260     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7261         rootType = toCount->sType;
7262     }
7263     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7264     *count += sizeof(VkBool32);
7265     *count += sizeof(VkBool32);
7266     *count += sizeof(VkBool32);
7267 }
7268 
7269 #endif
7270 #ifdef VK_EXT_color_write_enable
count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * toCount,size_t * count)7271 void count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
7272     uint32_t featureBits, VkStructureType rootType,
7273     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* toCount, size_t* count) {
7274     (void)featureBits;
7275     (void)rootType;
7276     (void)toCount;
7277     (void)count;
7278     *count += sizeof(VkStructureType);
7279     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7280         rootType = toCount->sType;
7281     }
7282     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7283     *count += sizeof(VkBool32);
7284 }
7285 
count_VkPipelineColorWriteCreateInfoEXT(uint32_t featureBits,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * toCount,size_t * count)7286 void count_VkPipelineColorWriteCreateInfoEXT(uint32_t featureBits, VkStructureType rootType,
7287                                              const VkPipelineColorWriteCreateInfoEXT* toCount,
7288                                              size_t* count) {
7289     (void)featureBits;
7290     (void)rootType;
7291     (void)toCount;
7292     (void)count;
7293     *count += sizeof(VkStructureType);
7294     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7295         rootType = toCount->sType;
7296     }
7297     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7298     *count += sizeof(uint32_t);
7299     if (toCount) {
7300         *count += toCount->attachmentCount * sizeof(const VkBool32);
7301     }
7302 }
7303 
7304 #endif
7305 #ifdef VK_GOOGLE_gfxstream
count_VkImportColorBufferGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkImportColorBufferGOOGLE * toCount,size_t * count)7306 void count_VkImportColorBufferGOOGLE(uint32_t featureBits, VkStructureType rootType,
7307                                      const VkImportColorBufferGOOGLE* toCount, size_t* count) {
7308     (void)featureBits;
7309     (void)rootType;
7310     (void)toCount;
7311     (void)count;
7312     *count += sizeof(VkStructureType);
7313     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7314         rootType = toCount->sType;
7315     }
7316     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7317     *count += sizeof(uint32_t);
7318 }
7319 
count_VkImportBufferGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkImportBufferGOOGLE * toCount,size_t * count)7320 void count_VkImportBufferGOOGLE(uint32_t featureBits, VkStructureType rootType,
7321                                 const VkImportBufferGOOGLE* toCount, size_t* count) {
7322     (void)featureBits;
7323     (void)rootType;
7324     (void)toCount;
7325     (void)count;
7326     *count += sizeof(VkStructureType);
7327     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7328         rootType = toCount->sType;
7329     }
7330     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7331     *count += sizeof(uint32_t);
7332 }
7333 
count_VkCreateBlobGOOGLE(uint32_t featureBits,VkStructureType rootType,const VkCreateBlobGOOGLE * toCount,size_t * count)7334 void count_VkCreateBlobGOOGLE(uint32_t featureBits, VkStructureType rootType,
7335                               const VkCreateBlobGOOGLE* toCount, size_t* count) {
7336     (void)featureBits;
7337     (void)rootType;
7338     (void)toCount;
7339     (void)count;
7340     *count += sizeof(VkStructureType);
7341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7342         rootType = toCount->sType;
7343     }
7344     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7345     *count += sizeof(uint32_t);
7346     *count += sizeof(uint32_t);
7347     *count += sizeof(uint64_t);
7348 }
7349 
7350 #endif
7351 #ifdef VK_EXT_image_compression_control_swapchain
count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(uint32_t featureBits,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * toCount,size_t * count)7352 void count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
7353     uint32_t featureBits, VkStructureType rootType,
7354     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* toCount, size_t* count) {
7355     (void)featureBits;
7356     (void)rootType;
7357     (void)toCount;
7358     (void)count;
7359     *count += sizeof(VkStructureType);
7360     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7361         rootType = toCount->sType;
7362     }
7363     count_extension_struct(featureBits, rootType, toCount->pNext, count);
7364     *count += sizeof(VkBool32);
7365 }
7366 
7367 #endif
count_extension_struct(uint32_t featureBits,VkStructureType rootType,const void * structExtension,size_t * count)7368 void count_extension_struct(uint32_t featureBits, VkStructureType rootType,
7369                             const void* structExtension, size_t* count) {
7370     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
7371     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
7372         featureBits, rootType, structExtension);
7373     if (!currExtSize && structExtension) {
7374         // unknown struct extension; skip and call on its pNext field
7375         count_extension_struct(featureBits, rootType, (void*)structAccess->pNext, count);
7376         return;
7377     } else {
7378         // known or null extension struct
7379         *count += sizeof(uint32_t);
7380         if (!currExtSize) {
7381             // exit if this was a null extension struct (size == 0 in this branch)
7382             return;
7383         }
7384     }
7385     *count += sizeof(VkStructureType);
7386     if (!structExtension) {
7387         return;
7388     }
7389     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
7390     switch (structType) {
7391 #ifdef VK_VERSION_1_0
7392         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
7393             count_VkShaderModuleCreateInfo(
7394                 featureBits, rootType,
7395                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension), count);
7396             break;
7397         }
7398         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
7399             count_VkPipelineLayoutCreateInfo(
7400                 featureBits, rootType,
7401                 reinterpret_cast<const VkPipelineLayoutCreateInfo*>(structExtension), count);
7402             break;
7403         }
7404 #endif
7405 #ifdef VK_VERSION_1_1
7406         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
7407             count_VkPhysicalDeviceSubgroupProperties(
7408                 featureBits, rootType,
7409                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension),
7410                 count);
7411             break;
7412         }
7413         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
7414             count_VkPhysicalDevice16BitStorageFeatures(
7415                 featureBits, rootType,
7416                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension),
7417                 count);
7418             break;
7419         }
7420         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
7421             count_VkMemoryDedicatedRequirements(
7422                 featureBits, rootType,
7423                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension), count);
7424             break;
7425         }
7426         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
7427             count_VkMemoryDedicatedAllocateInfo(
7428                 featureBits, rootType,
7429                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension), count);
7430             break;
7431         }
7432         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
7433             count_VkMemoryAllocateFlagsInfo(
7434                 featureBits, rootType,
7435                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension), count);
7436             break;
7437         }
7438         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
7439             count_VkDeviceGroupRenderPassBeginInfo(
7440                 featureBits, rootType,
7441                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension), count);
7442             break;
7443         }
7444         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
7445             count_VkDeviceGroupCommandBufferBeginInfo(
7446                 featureBits, rootType,
7447                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension),
7448                 count);
7449             break;
7450         }
7451         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
7452             count_VkDeviceGroupSubmitInfo(
7453                 featureBits, rootType,
7454                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension), count);
7455             break;
7456         }
7457         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
7458             count_VkDeviceGroupBindSparseInfo(
7459                 featureBits, rootType,
7460                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension), count);
7461             break;
7462         }
7463         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
7464             count_VkBindBufferMemoryDeviceGroupInfo(
7465                 featureBits, rootType,
7466                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension), count);
7467             break;
7468         }
7469         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
7470             count_VkBindImageMemoryDeviceGroupInfo(
7471                 featureBits, rootType,
7472                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension), count);
7473             break;
7474         }
7475         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
7476             count_VkDeviceGroupDeviceCreateInfo(
7477                 featureBits, rootType,
7478                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension), count);
7479             break;
7480         }
7481         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
7482             count_VkPhysicalDeviceFeatures2(
7483                 featureBits, rootType,
7484                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension), count);
7485             break;
7486         }
7487         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
7488             count_VkPhysicalDevicePointClippingProperties(
7489                 featureBits, rootType,
7490                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension),
7491                 count);
7492             break;
7493         }
7494         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
7495             count_VkRenderPassInputAttachmentAspectCreateInfo(
7496                 featureBits, rootType,
7497                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
7498                     structExtension),
7499                 count);
7500             break;
7501         }
7502         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
7503             count_VkImageViewUsageCreateInfo(
7504                 featureBits, rootType,
7505                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension), count);
7506             break;
7507         }
7508         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
7509             count_VkPipelineTessellationDomainOriginStateCreateInfo(
7510                 featureBits, rootType,
7511                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
7512                     structExtension),
7513                 count);
7514             break;
7515         }
7516         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
7517             count_VkRenderPassMultiviewCreateInfo(
7518                 featureBits, rootType,
7519                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension), count);
7520             break;
7521         }
7522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
7523             count_VkPhysicalDeviceMultiviewFeatures(
7524                 featureBits, rootType,
7525                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension), count);
7526             break;
7527         }
7528         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
7529             count_VkPhysicalDeviceMultiviewProperties(
7530                 featureBits, rootType,
7531                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension),
7532                 count);
7533             break;
7534         }
7535         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
7536             count_VkPhysicalDeviceVariablePointersFeatures(
7537                 featureBits, rootType,
7538                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension),
7539                 count);
7540             break;
7541         }
7542         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
7543             count_VkPhysicalDeviceProtectedMemoryFeatures(
7544                 featureBits, rootType,
7545                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension),
7546                 count);
7547             break;
7548         }
7549         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
7550             count_VkPhysicalDeviceProtectedMemoryProperties(
7551                 featureBits, rootType,
7552                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension),
7553                 count);
7554             break;
7555         }
7556         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
7557             count_VkProtectedSubmitInfo(
7558                 featureBits, rootType,
7559                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension), count);
7560             break;
7561         }
7562         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
7563             count_VkSamplerYcbcrConversionInfo(
7564                 featureBits, rootType,
7565                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension), count);
7566             break;
7567         }
7568         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
7569             count_VkBindImagePlaneMemoryInfo(
7570                 featureBits, rootType,
7571                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension), count);
7572             break;
7573         }
7574         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
7575             count_VkImagePlaneMemoryRequirementsInfo(
7576                 featureBits, rootType,
7577                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension),
7578                 count);
7579             break;
7580         }
7581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
7582             count_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
7583                 featureBits, rootType,
7584                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
7585                     structExtension),
7586                 count);
7587             break;
7588         }
7589         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
7590             count_VkSamplerYcbcrConversionImageFormatProperties(
7591                 featureBits, rootType,
7592                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
7593                     structExtension),
7594                 count);
7595             break;
7596         }
7597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
7598             count_VkPhysicalDeviceExternalImageFormatInfo(
7599                 featureBits, rootType,
7600                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension),
7601                 count);
7602             break;
7603         }
7604         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
7605             count_VkExternalImageFormatProperties(
7606                 featureBits, rootType,
7607                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension), count);
7608             break;
7609         }
7610         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
7611             count_VkPhysicalDeviceIDProperties(
7612                 featureBits, rootType,
7613                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension), count);
7614             break;
7615         }
7616         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
7617             count_VkExternalMemoryImageCreateInfo(
7618                 featureBits, rootType,
7619                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension), count);
7620             break;
7621         }
7622         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
7623             count_VkExternalMemoryBufferCreateInfo(
7624                 featureBits, rootType,
7625                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension), count);
7626             break;
7627         }
7628         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
7629             count_VkExportMemoryAllocateInfo(
7630                 featureBits, rootType,
7631                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension), count);
7632             break;
7633         }
7634         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
7635             count_VkExportFenceCreateInfo(
7636                 featureBits, rootType,
7637                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension), count);
7638             break;
7639         }
7640         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
7641             count_VkExportSemaphoreCreateInfo(
7642                 featureBits, rootType,
7643                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension), count);
7644             break;
7645         }
7646         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
7647             count_VkPhysicalDeviceMaintenance3Properties(
7648                 featureBits, rootType,
7649                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension),
7650                 count);
7651             break;
7652         }
7653         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
7654             count_VkPhysicalDeviceShaderDrawParametersFeatures(
7655                 featureBits, rootType,
7656                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
7657                     structExtension),
7658                 count);
7659             break;
7660         }
7661 #endif
7662 #ifdef VK_VERSION_1_2
7663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
7664             count_VkPhysicalDeviceVulkan11Features(
7665                 featureBits, rootType,
7666                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), count);
7667             break;
7668         }
7669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
7670             count_VkPhysicalDeviceVulkan11Properties(
7671                 featureBits, rootType,
7672                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension),
7673                 count);
7674             break;
7675         }
7676         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
7677             count_VkPhysicalDeviceVulkan12Features(
7678                 featureBits, rootType,
7679                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), count);
7680             break;
7681         }
7682         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
7683             count_VkPhysicalDeviceVulkan12Properties(
7684                 featureBits, rootType,
7685                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension),
7686                 count);
7687             break;
7688         }
7689         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
7690             count_VkImageFormatListCreateInfo(
7691                 featureBits, rootType,
7692                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), count);
7693             break;
7694         }
7695         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
7696             count_VkPhysicalDevice8BitStorageFeatures(
7697                 featureBits, rootType,
7698                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension),
7699                 count);
7700             break;
7701         }
7702         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
7703             count_VkPhysicalDeviceDriverProperties(
7704                 featureBits, rootType,
7705                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), count);
7706             break;
7707         }
7708         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
7709             count_VkPhysicalDeviceShaderAtomicInt64Features(
7710                 featureBits, rootType,
7711                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension),
7712                 count);
7713             break;
7714         }
7715         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
7716             count_VkPhysicalDeviceShaderFloat16Int8Features(
7717                 featureBits, rootType,
7718                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension),
7719                 count);
7720             break;
7721         }
7722         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
7723             count_VkPhysicalDeviceFloatControlsProperties(
7724                 featureBits, rootType,
7725                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension),
7726                 count);
7727             break;
7728         }
7729         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
7730             count_VkDescriptorSetLayoutBindingFlagsCreateInfo(
7731                 featureBits, rootType,
7732                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
7733                     structExtension),
7734                 count);
7735             break;
7736         }
7737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
7738             count_VkPhysicalDeviceDescriptorIndexingFeatures(
7739                 featureBits, rootType,
7740                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
7741                     structExtension),
7742                 count);
7743             break;
7744         }
7745         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
7746             count_VkPhysicalDeviceDescriptorIndexingProperties(
7747                 featureBits, rootType,
7748                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
7749                     structExtension),
7750                 count);
7751             break;
7752         }
7753         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
7754             count_VkDescriptorSetVariableDescriptorCountAllocateInfo(
7755                 featureBits, rootType,
7756                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
7757                     structExtension),
7758                 count);
7759             break;
7760         }
7761         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
7762             count_VkDescriptorSetVariableDescriptorCountLayoutSupport(
7763                 featureBits, rootType,
7764                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
7765                     structExtension),
7766                 count);
7767             break;
7768         }
7769         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
7770             count_VkSubpassDescriptionDepthStencilResolve(
7771                 featureBits, rootType,
7772                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension),
7773                 count);
7774             break;
7775         }
7776         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
7777             count_VkPhysicalDeviceDepthStencilResolveProperties(
7778                 featureBits, rootType,
7779                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
7780                     structExtension),
7781                 count);
7782             break;
7783         }
7784         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
7785             count_VkPhysicalDeviceScalarBlockLayoutFeatures(
7786                 featureBits, rootType,
7787                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension),
7788                 count);
7789             break;
7790         }
7791         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
7792             count_VkImageStencilUsageCreateInfo(
7793                 featureBits, rootType,
7794                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), count);
7795             break;
7796         }
7797         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
7798             count_VkSamplerReductionModeCreateInfo(
7799                 featureBits, rootType,
7800                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), count);
7801             break;
7802         }
7803         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
7804             count_VkPhysicalDeviceSamplerFilterMinmaxProperties(
7805                 featureBits, rootType,
7806                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
7807                     structExtension),
7808                 count);
7809             break;
7810         }
7811         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
7812             count_VkPhysicalDeviceVulkanMemoryModelFeatures(
7813                 featureBits, rootType,
7814                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension),
7815                 count);
7816             break;
7817         }
7818         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
7819             count_VkPhysicalDeviceImagelessFramebufferFeatures(
7820                 featureBits, rootType,
7821                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
7822                     structExtension),
7823                 count);
7824             break;
7825         }
7826         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
7827             count_VkFramebufferAttachmentsCreateInfo(
7828                 featureBits, rootType,
7829                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension),
7830                 count);
7831             break;
7832         }
7833         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
7834             count_VkRenderPassAttachmentBeginInfo(
7835                 featureBits, rootType,
7836                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), count);
7837             break;
7838         }
7839         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
7840             count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
7841                 featureBits, rootType,
7842                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
7843                     structExtension),
7844                 count);
7845             break;
7846         }
7847         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
7848             count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
7849                 featureBits, rootType,
7850                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
7851                     structExtension),
7852                 count);
7853             break;
7854         }
7855         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
7856             count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
7857                 featureBits, rootType,
7858                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
7859                     structExtension),
7860                 count);
7861             break;
7862         }
7863         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
7864             count_VkAttachmentReferenceStencilLayout(
7865                 featureBits, rootType,
7866                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension),
7867                 count);
7868             break;
7869         }
7870         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
7871             count_VkAttachmentDescriptionStencilLayout(
7872                 featureBits, rootType,
7873                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension),
7874                 count);
7875             break;
7876         }
7877         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
7878             count_VkPhysicalDeviceHostQueryResetFeatures(
7879                 featureBits, rootType,
7880                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension),
7881                 count);
7882             break;
7883         }
7884         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
7885             count_VkPhysicalDeviceTimelineSemaphoreFeatures(
7886                 featureBits, rootType,
7887                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension),
7888                 count);
7889             break;
7890         }
7891         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
7892             count_VkPhysicalDeviceTimelineSemaphoreProperties(
7893                 featureBits, rootType,
7894                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
7895                     structExtension),
7896                 count);
7897             break;
7898         }
7899         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
7900             count_VkSemaphoreTypeCreateInfo(
7901                 featureBits, rootType,
7902                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), count);
7903             break;
7904         }
7905         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
7906             count_VkTimelineSemaphoreSubmitInfo(
7907                 featureBits, rootType,
7908                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), count);
7909             break;
7910         }
7911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
7912             count_VkPhysicalDeviceBufferDeviceAddressFeatures(
7913                 featureBits, rootType,
7914                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
7915                     structExtension),
7916                 count);
7917             break;
7918         }
7919         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
7920             count_VkBufferOpaqueCaptureAddressCreateInfo(
7921                 featureBits, rootType,
7922                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension),
7923                 count);
7924             break;
7925         }
7926         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
7927             count_VkMemoryOpaqueCaptureAddressAllocateInfo(
7928                 featureBits, rootType,
7929                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension),
7930                 count);
7931             break;
7932         }
7933 #endif
7934 #ifdef VK_VERSION_1_3
7935         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
7936             count_VkPhysicalDeviceVulkan13Features(
7937                 featureBits, rootType,
7938                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension), count);
7939             break;
7940         }
7941         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
7942             count_VkPhysicalDeviceVulkan13Properties(
7943                 featureBits, rootType,
7944                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension),
7945                 count);
7946             break;
7947         }
7948         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
7949             count_VkPipelineCreationFeedbackCreateInfo(
7950                 featureBits, rootType,
7951                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension),
7952                 count);
7953             break;
7954         }
7955         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
7956             count_VkPhysicalDeviceShaderTerminateInvocationFeatures(
7957                 featureBits, rootType,
7958                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
7959                     structExtension),
7960                 count);
7961             break;
7962         }
7963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
7964             count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
7965                 featureBits, rootType,
7966                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
7967                     structExtension),
7968                 count);
7969             break;
7970         }
7971         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
7972             count_VkPhysicalDevicePrivateDataFeatures(
7973                 featureBits, rootType,
7974                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension),
7975                 count);
7976             break;
7977         }
7978         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
7979             count_VkDevicePrivateDataCreateInfo(
7980                 featureBits, rootType,
7981                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension), count);
7982             break;
7983         }
7984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
7985             count_VkPhysicalDevicePipelineCreationCacheControlFeatures(
7986                 featureBits, rootType,
7987                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
7988                     structExtension),
7989                 count);
7990             break;
7991         }
7992         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
7993             count_VkMemoryBarrier2(featureBits, rootType,
7994                                    reinterpret_cast<const VkMemoryBarrier2*>(structExtension),
7995                                    count);
7996             break;
7997         }
7998         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
7999             count_VkPhysicalDeviceSynchronization2Features(
8000                 featureBits, rootType,
8001                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension),
8002                 count);
8003             break;
8004         }
8005         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
8006             count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
8007                 featureBits, rootType,
8008                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
8009                     structExtension),
8010                 count);
8011             break;
8012         }
8013         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
8014             count_VkPhysicalDeviceImageRobustnessFeatures(
8015                 featureBits, rootType,
8016                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension),
8017                 count);
8018             break;
8019         }
8020         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
8021             count_VkPhysicalDeviceSubgroupSizeControlFeatures(
8022                 featureBits, rootType,
8023                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
8024                     structExtension),
8025                 count);
8026             break;
8027         }
8028         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
8029             count_VkPhysicalDeviceSubgroupSizeControlProperties(
8030                 featureBits, rootType,
8031                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
8032                     structExtension),
8033                 count);
8034             break;
8035         }
8036         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
8037             count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
8038                 featureBits, rootType,
8039                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
8040                     structExtension),
8041                 count);
8042             break;
8043         }
8044         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
8045             count_VkPhysicalDeviceInlineUniformBlockFeatures(
8046                 featureBits, rootType,
8047                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
8048                     structExtension),
8049                 count);
8050             break;
8051         }
8052         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
8053             count_VkPhysicalDeviceInlineUniformBlockProperties(
8054                 featureBits, rootType,
8055                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
8056                     structExtension),
8057                 count);
8058             break;
8059         }
8060         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
8061             count_VkWriteDescriptorSetInlineUniformBlock(
8062                 featureBits, rootType,
8063                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension),
8064                 count);
8065             break;
8066         }
8067         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
8068             count_VkDescriptorPoolInlineUniformBlockCreateInfo(
8069                 featureBits, rootType,
8070                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
8071                     structExtension),
8072                 count);
8073             break;
8074         }
8075         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
8076             count_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
8077                 featureBits, rootType,
8078                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
8079                     structExtension),
8080                 count);
8081             break;
8082         }
8083         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
8084             count_VkPipelineRenderingCreateInfo(
8085                 featureBits, rootType,
8086                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension), count);
8087             break;
8088         }
8089         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
8090             count_VkPhysicalDeviceDynamicRenderingFeatures(
8091                 featureBits, rootType,
8092                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension),
8093                 count);
8094             break;
8095         }
8096         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
8097             count_VkCommandBufferInheritanceRenderingInfo(
8098                 featureBits, rootType,
8099                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension),
8100                 count);
8101             break;
8102         }
8103         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
8104             count_VkPhysicalDeviceShaderIntegerDotProductFeatures(
8105                 featureBits, rootType,
8106                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
8107                     structExtension),
8108                 count);
8109             break;
8110         }
8111         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
8112             count_VkPhysicalDeviceShaderIntegerDotProductProperties(
8113                 featureBits, rootType,
8114                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
8115                     structExtension),
8116                 count);
8117             break;
8118         }
8119         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
8120             count_VkPhysicalDeviceTexelBufferAlignmentProperties(
8121                 featureBits, rootType,
8122                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
8123                     structExtension),
8124                 count);
8125             break;
8126         }
8127         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
8128             count_VkFormatProperties3(featureBits, rootType,
8129                                       reinterpret_cast<const VkFormatProperties3*>(structExtension),
8130                                       count);
8131             break;
8132         }
8133         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
8134             count_VkPhysicalDeviceMaintenance4Features(
8135                 featureBits, rootType,
8136                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension),
8137                 count);
8138             break;
8139         }
8140         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
8141             count_VkPhysicalDeviceMaintenance4Properties(
8142                 featureBits, rootType,
8143                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension),
8144                 count);
8145             break;
8146         }
8147 #endif
8148 #ifdef VK_KHR_dynamic_rendering
8149         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
8150             count_VkRenderingFragmentShadingRateAttachmentInfoKHR(
8151                 featureBits, rootType,
8152                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
8153                     structExtension),
8154                 count);
8155             break;
8156         }
8157         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
8158             count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
8159                 featureBits, rootType,
8160                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
8161                     structExtension),
8162                 count);
8163             break;
8164         }
8165         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
8166             count_VkAttachmentSampleCountInfoAMD(
8167                 featureBits, rootType,
8168                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension), count);
8169             break;
8170         }
8171         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
8172             count_VkMultiviewPerViewAttributesInfoNVX(
8173                 featureBits, rootType,
8174                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension),
8175                 count);
8176             break;
8177         }
8178 #endif
8179 #ifdef VK_KHR_incremental_present
8180         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
8181             count_VkPresentRegionsKHR(featureBits, rootType,
8182                                       reinterpret_cast<const VkPresentRegionsKHR*>(structExtension),
8183                                       count);
8184             break;
8185         }
8186 #endif
8187 #ifdef VK_KHR_pipeline_executable_properties
8188         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
8189             count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
8190                 featureBits, rootType,
8191                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
8192                     structExtension),
8193                 count);
8194             break;
8195         }
8196 #endif
8197 #ifdef VK_KHR_synchronization2
8198         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
8199             count_VkQueueFamilyCheckpointProperties2NV(
8200                 featureBits, rootType,
8201                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension),
8202                 count);
8203             break;
8204         }
8205 #endif
8206 #ifdef VK_KHR_maintenance5
8207         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
8208             count_VkPhysicalDeviceMaintenance5FeaturesKHR(
8209                 featureBits, rootType,
8210                 reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension),
8211                 count);
8212             break;
8213         }
8214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
8215             count_VkPhysicalDeviceMaintenance5PropertiesKHR(
8216                 featureBits, rootType,
8217                 reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension),
8218                 count);
8219             break;
8220         }
8221         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
8222             count_VkPipelineCreateFlags2CreateInfoKHR(
8223                 featureBits, rootType,
8224                 reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR*>(structExtension),
8225                 count);
8226             break;
8227         }
8228         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
8229             count_VkBufferUsageFlags2CreateInfoKHR(
8230                 featureBits, rootType,
8231                 reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR*>(structExtension), count);
8232             break;
8233         }
8234 #endif
8235 #ifdef VK_KHR_line_rasterization
8236         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
8237             count_VkPhysicalDeviceLineRasterizationFeaturesKHR(
8238                 featureBits, rootType,
8239                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesKHR*>(
8240                     structExtension),
8241                 count);
8242             break;
8243         }
8244         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
8245             count_VkPhysicalDeviceLineRasterizationPropertiesKHR(
8246                 featureBits, rootType,
8247                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesKHR*>(
8248                     structExtension),
8249                 count);
8250             break;
8251         }
8252         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
8253             count_VkPipelineRasterizationLineStateCreateInfoKHR(
8254                 featureBits, rootType,
8255                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoKHR*>(
8256                     structExtension),
8257                 count);
8258             break;
8259         }
8260 #endif
8261 #ifdef VK_ANDROID_native_buffer
8262         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
8263             count_VkNativeBufferANDROID(
8264                 featureBits, rootType,
8265                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension), count);
8266             break;
8267         }
8268 #endif
8269 #ifdef VK_EXT_transform_feedback
8270         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
8271             count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
8272                 featureBits, rootType,
8273                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
8274                     structExtension),
8275                 count);
8276             break;
8277         }
8278         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
8279             count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
8280                 featureBits, rootType,
8281                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
8282                     structExtension),
8283                 count);
8284             break;
8285         }
8286         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
8287             count_VkPipelineRasterizationStateStreamCreateInfoEXT(
8288                 featureBits, rootType,
8289                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
8290                     structExtension),
8291                 count);
8292             break;
8293         }
8294 #endif
8295 #ifdef VK_EXT_depth_clip_enable
8296         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
8297             count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
8298                 featureBits, rootType,
8299                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
8300                     structExtension),
8301                 count);
8302             break;
8303         }
8304         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
8305             count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
8306                 featureBits, rootType,
8307                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
8308                     structExtension),
8309                 count);
8310             break;
8311         }
8312 #endif
8313 #ifdef VK_EXT_image_drm_format_modifier
8314         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
8315             count_VkDrmFormatModifierPropertiesListEXT(
8316                 featureBits, rootType,
8317                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension),
8318                 count);
8319             break;
8320         }
8321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
8322             count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
8323                 featureBits, rootType,
8324                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
8325                     structExtension),
8326                 count);
8327             break;
8328         }
8329         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
8330             count_VkImageDrmFormatModifierListCreateInfoEXT(
8331                 featureBits, rootType,
8332                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension),
8333                 count);
8334             break;
8335         }
8336         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
8337             count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
8338                 featureBits, rootType,
8339                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
8340                     structExtension),
8341                 count);
8342             break;
8343         }
8344         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
8345             count_VkDrmFormatModifierPropertiesList2EXT(
8346                 featureBits, rootType,
8347                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension),
8348                 count);
8349             break;
8350         }
8351 #endif
8352 #ifdef VK_EXT_vertex_attribute_divisor
8353         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
8354             count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
8355                 featureBits, rootType,
8356                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
8357                     structExtension),
8358                 count);
8359             break;
8360         }
8361 #endif
8362 #ifdef VK_EXT_fragment_density_map
8363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
8364             switch (rootType) {
8365                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
8366                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
8367                         featureBits, rootType,
8368                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
8369                             structExtension),
8370                         count);
8371                     break;
8372                 }
8373                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
8374                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
8375                         featureBits, rootType,
8376                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
8377                             structExtension),
8378                         count);
8379                     break;
8380                 }
8381                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
8382                     count_VkImportColorBufferGOOGLE(
8383                         featureBits, rootType,
8384                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), count);
8385                     break;
8386                 }
8387                 default: {
8388                     count_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
8389                         featureBits, rootType,
8390                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
8391                             structExtension),
8392                         count);
8393                     break;
8394                 }
8395             }
8396             break;
8397         }
8398         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
8399             switch (rootType) {
8400                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
8401                     count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
8402                         featureBits, rootType,
8403                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
8404                             structExtension),
8405                         count);
8406                     break;
8407                 }
8408                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
8409                     count_VkCreateBlobGOOGLE(
8410                         featureBits, rootType,
8411                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension), count);
8412                     break;
8413                 }
8414                 default: {
8415                     count_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
8416                         featureBits, rootType,
8417                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
8418                             structExtension),
8419                         count);
8420                     break;
8421                 }
8422             }
8423             break;
8424         }
8425         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
8426             switch (rootType) {
8427                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
8428                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
8429                         featureBits, rootType,
8430                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
8431                             structExtension),
8432                         count);
8433                     break;
8434                 }
8435                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
8436                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
8437                         featureBits, rootType,
8438                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
8439                             structExtension),
8440                         count);
8441                     break;
8442                 }
8443                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
8444                     count_VkImportBufferGOOGLE(
8445                         featureBits, rootType,
8446                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), count);
8447                     break;
8448                 }
8449                 default: {
8450                     count_VkRenderPassFragmentDensityMapCreateInfoEXT(
8451                         featureBits, rootType,
8452                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
8453                             structExtension),
8454                         count);
8455                     break;
8456                 }
8457             }
8458             break;
8459         }
8460 #endif
8461 #ifdef VK_EXT_provoking_vertex
8462         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
8463             count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
8464                 featureBits, rootType,
8465                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
8466                     structExtension),
8467                 count);
8468             break;
8469         }
8470         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
8471             count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
8472                 featureBits, rootType,
8473                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
8474                     structExtension),
8475                 count);
8476             break;
8477         }
8478         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
8479             count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
8480                 featureBits, rootType,
8481                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
8482                     structExtension),
8483                 count);
8484             break;
8485         }
8486 #endif
8487 #ifdef VK_EXT_extended_dynamic_state
8488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
8489             count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
8490                 featureBits, rootType,
8491                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
8492                     structExtension),
8493                 count);
8494             break;
8495         }
8496 #endif
8497 #ifdef VK_EXT_host_image_copy
8498         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
8499             count_VkPhysicalDeviceHostImageCopyFeaturesEXT(
8500                 featureBits, rootType,
8501                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension),
8502                 count);
8503             break;
8504         }
8505         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
8506             count_VkPhysicalDeviceHostImageCopyPropertiesEXT(
8507                 featureBits, rootType,
8508                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT*>(
8509                     structExtension),
8510                 count);
8511             break;
8512         }
8513         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
8514             count_VkSubresourceHostMemcpySizeEXT(
8515                 featureBits, rootType,
8516                 reinterpret_cast<const VkSubresourceHostMemcpySizeEXT*>(structExtension), count);
8517             break;
8518         }
8519         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
8520             count_VkHostImageCopyDevicePerformanceQueryEXT(
8521                 featureBits, rootType,
8522                 reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension),
8523                 count);
8524             break;
8525         }
8526 #endif
8527 #ifdef VK_EXT_texel_buffer_alignment
8528         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
8529             count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
8530                 featureBits, rootType,
8531                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
8532                     structExtension),
8533                 count);
8534             break;
8535         }
8536 #endif
8537 #ifdef VK_EXT_device_memory_report
8538         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
8539             count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
8540                 featureBits, rootType,
8541                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
8542                     structExtension),
8543                 count);
8544             break;
8545         }
8546         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
8547             count_VkDeviceDeviceMemoryReportCreateInfoEXT(
8548                 featureBits, rootType,
8549                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension),
8550                 count);
8551             break;
8552         }
8553 #endif
8554 #ifdef VK_EXT_robustness2
8555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
8556             count_VkPhysicalDeviceRobustness2FeaturesEXT(
8557                 featureBits, rootType,
8558                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension),
8559                 count);
8560             break;
8561         }
8562         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
8563             count_VkPhysicalDeviceRobustness2PropertiesEXT(
8564                 featureBits, rootType,
8565                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension),
8566                 count);
8567             break;
8568         }
8569 #endif
8570 #ifdef VK_EXT_custom_border_color
8571         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
8572             count_VkSamplerCustomBorderColorCreateInfoEXT(
8573                 featureBits, rootType,
8574                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension),
8575                 count);
8576             break;
8577         }
8578         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
8579             count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
8580                 featureBits, rootType,
8581                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
8582                     structExtension),
8583                 count);
8584             break;
8585         }
8586         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
8587             count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
8588                 featureBits, rootType,
8589                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
8590                     structExtension),
8591                 count);
8592             break;
8593         }
8594 #endif
8595 #ifdef VK_EXT_graphics_pipeline_library
8596         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
8597             count_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
8598                 featureBits, rootType,
8599                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
8600                     structExtension),
8601                 count);
8602             break;
8603         }
8604         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
8605             count_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
8606                 featureBits, rootType,
8607                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
8608                     structExtension),
8609                 count);
8610             break;
8611         }
8612         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
8613             count_VkGraphicsPipelineLibraryCreateInfoEXT(
8614                 featureBits, rootType,
8615                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension),
8616                 count);
8617             break;
8618         }
8619 #endif
8620 #ifdef VK_EXT_ycbcr_2plane_444_formats
8621         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
8622             count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
8623                 featureBits, rootType,
8624                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
8625                     structExtension),
8626                 count);
8627             break;
8628         }
8629 #endif
8630 #ifdef VK_EXT_image_compression_control
8631         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
8632             count_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
8633                 featureBits, rootType,
8634                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
8635                     structExtension),
8636                 count);
8637             break;
8638         }
8639         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
8640             count_VkImageCompressionControlEXT(
8641                 featureBits, rootType,
8642                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension), count);
8643             break;
8644         }
8645         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
8646             count_VkImageCompressionPropertiesEXT(
8647                 featureBits, rootType,
8648                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension), count);
8649             break;
8650         }
8651 #endif
8652 #ifdef VK_EXT_4444_formats
8653         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
8654             count_VkPhysicalDevice4444FormatsFeaturesEXT(
8655                 featureBits, rootType,
8656                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension),
8657                 count);
8658             break;
8659         }
8660 #endif
8661 #ifdef VK_EXT_primitive_topology_list_restart
8662         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
8663             count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
8664                 featureBits, rootType,
8665                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
8666                     structExtension),
8667                 count);
8668             break;
8669         }
8670 #endif
8671 #ifdef VK_EXT_extended_dynamic_state2
8672         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
8673             count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
8674                 featureBits, rootType,
8675                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
8676                     structExtension),
8677                 count);
8678             break;
8679         }
8680 #endif
8681 #ifdef VK_EXT_color_write_enable
8682         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
8683             count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
8684                 featureBits, rootType,
8685                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
8686                     structExtension),
8687                 count);
8688             break;
8689         }
8690         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
8691             count_VkPipelineColorWriteCreateInfoEXT(
8692                 featureBits, rootType,
8693                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), count);
8694             break;
8695         }
8696 #endif
8697 #ifdef VK_GOOGLE_gfxstream
8698         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
8699             count_VkImportColorBufferGOOGLE(
8700                 featureBits, rootType,
8701                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), count);
8702             break;
8703         }
8704         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
8705             count_VkImportBufferGOOGLE(
8706                 featureBits, rootType,
8707                 reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), count);
8708             break;
8709         }
8710         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
8711             count_VkCreateBlobGOOGLE(featureBits, rootType,
8712                                      reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension),
8713                                      count);
8714             break;
8715         }
8716 #endif
8717 #ifdef VK_EXT_image_compression_control_swapchain
8718         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
8719             count_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
8720                 featureBits, rootType,
8721                 reinterpret_cast<
8722                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
8723                     structExtension),
8724                 count);
8725             break;
8726         }
8727 #endif
8728         default: {
8729             // fatal; the switch is only taken if the extension struct is known
8730             abort();
8731         }
8732     }
8733 }
8734 
8735 }  // namespace vk
8736 }  // namespace gfxstream
8737