1 /* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_DRIVER_STRUCTS_H
9 #define VN_PROTOCOL_DRIVER_STRUCTS_H
10 
11 #include "vn_protocol_driver_handles.h"
12 
13 /*
14  * These structs/unions/commands are not included
15  *
16  *   VkAllocationCallbacks
17  */
18 
19 /* struct VkExtent3D */
20 
21 static inline size_t
vn_sizeof_VkExtent3D(const VkExtent3D * val)22 vn_sizeof_VkExtent3D(const VkExtent3D *val)
23 {
24     size_t size = 0;
25     size += vn_sizeof_uint32_t(&val->width);
26     size += vn_sizeof_uint32_t(&val->height);
27     size += vn_sizeof_uint32_t(&val->depth);
28     return size;
29 }
30 
31 static inline void
vn_encode_VkExtent3D(struct vn_cs_encoder * enc,const VkExtent3D * val)32 vn_encode_VkExtent3D(struct vn_cs_encoder *enc, const VkExtent3D *val)
33 {
34     vn_encode_uint32_t(enc, &val->width);
35     vn_encode_uint32_t(enc, &val->height);
36     vn_encode_uint32_t(enc, &val->depth);
37 }
38 
39 static inline void
vn_decode_VkExtent3D(struct vn_cs_decoder * dec,VkExtent3D * val)40 vn_decode_VkExtent3D(struct vn_cs_decoder *dec, VkExtent3D *val)
41 {
42     vn_decode_uint32_t(dec, &val->width);
43     vn_decode_uint32_t(dec, &val->height);
44     vn_decode_uint32_t(dec, &val->depth);
45 }
46 
47 static inline size_t
vn_sizeof_VkExtent3D_partial(const VkExtent3D * val)48 vn_sizeof_VkExtent3D_partial(const VkExtent3D *val)
49 {
50     size_t size = 0;
51     /* skip val->width */
52     /* skip val->height */
53     /* skip val->depth */
54     return size;
55 }
56 
57 static inline void
vn_encode_VkExtent3D_partial(struct vn_cs_encoder * enc,const VkExtent3D * val)58 vn_encode_VkExtent3D_partial(struct vn_cs_encoder *enc, const VkExtent3D *val)
59 {
60     /* skip val->width */
61     /* skip val->height */
62     /* skip val->depth */
63 }
64 
65 /* struct VkLayerProperties */
66 
67 static inline size_t
vn_sizeof_VkLayerProperties(const VkLayerProperties * val)68 vn_sizeof_VkLayerProperties(const VkLayerProperties *val)
69 {
70     size_t size = 0;
71     size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);
72     size += vn_sizeof_char_array(val->layerName, VK_MAX_EXTENSION_NAME_SIZE);
73     size += vn_sizeof_uint32_t(&val->specVersion);
74     size += vn_sizeof_uint32_t(&val->implementationVersion);
75     size += vn_sizeof_array_size(VK_MAX_DESCRIPTION_SIZE);
76     size += vn_sizeof_char_array(val->description, VK_MAX_DESCRIPTION_SIZE);
77     return size;
78 }
79 
80 static inline void
vn_decode_VkLayerProperties(struct vn_cs_decoder * dec,VkLayerProperties * val)81 vn_decode_VkLayerProperties(struct vn_cs_decoder *dec, VkLayerProperties *val)
82 {
83     {
84         const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
85         vn_decode_char_array(dec, val->layerName, array_size);
86     }
87     vn_decode_uint32_t(dec, &val->specVersion);
88     vn_decode_uint32_t(dec, &val->implementationVersion);
89     {
90         const size_t array_size = vn_decode_array_size(dec, VK_MAX_DESCRIPTION_SIZE);
91         vn_decode_char_array(dec, val->description, array_size);
92     }
93 }
94 
95 static inline size_t
vn_sizeof_VkLayerProperties_partial(const VkLayerProperties * val)96 vn_sizeof_VkLayerProperties_partial(const VkLayerProperties *val)
97 {
98     size_t size = 0;
99     /* skip val->layerName */
100     /* skip val->specVersion */
101     /* skip val->implementationVersion */
102     /* skip val->description */
103     return size;
104 }
105 
106 static inline void
vn_encode_VkLayerProperties_partial(struct vn_cs_encoder * enc,const VkLayerProperties * val)107 vn_encode_VkLayerProperties_partial(struct vn_cs_encoder *enc, const VkLayerProperties *val)
108 {
109     /* skip val->layerName */
110     /* skip val->specVersion */
111     /* skip val->implementationVersion */
112     /* skip val->description */
113 }
114 
115 /* struct VkExtensionProperties */
116 
117 static inline size_t
vn_sizeof_VkExtensionProperties(const VkExtensionProperties * val)118 vn_sizeof_VkExtensionProperties(const VkExtensionProperties *val)
119 {
120     size_t size = 0;
121     size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);
122     size += vn_sizeof_char_array(val->extensionName, VK_MAX_EXTENSION_NAME_SIZE);
123     size += vn_sizeof_uint32_t(&val->specVersion);
124     return size;
125 }
126 
127 static inline void
vn_encode_VkExtensionProperties(struct vn_cs_encoder * enc,const VkExtensionProperties * val)128 vn_encode_VkExtensionProperties(struct vn_cs_encoder *enc, const VkExtensionProperties *val)
129 {
130     vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
131     vn_encode_char_array(enc, val->extensionName, VK_MAX_EXTENSION_NAME_SIZE);
132     vn_encode_uint32_t(enc, &val->specVersion);
133 }
134 
135 static inline void
vn_decode_VkExtensionProperties(struct vn_cs_decoder * dec,VkExtensionProperties * val)136 vn_decode_VkExtensionProperties(struct vn_cs_decoder *dec, VkExtensionProperties *val)
137 {
138     {
139         const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
140         vn_decode_char_array(dec, val->extensionName, array_size);
141     }
142     vn_decode_uint32_t(dec, &val->specVersion);
143 }
144 
145 static inline size_t
vn_sizeof_VkExtensionProperties_partial(const VkExtensionProperties * val)146 vn_sizeof_VkExtensionProperties_partial(const VkExtensionProperties *val)
147 {
148     size_t size = 0;
149     /* skip val->extensionName */
150     /* skip val->specVersion */
151     return size;
152 }
153 
154 static inline void
vn_encode_VkExtensionProperties_partial(struct vn_cs_encoder * enc,const VkExtensionProperties * val)155 vn_encode_VkExtensionProperties_partial(struct vn_cs_encoder *enc, const VkExtensionProperties *val)
156 {
157     /* skip val->extensionName */
158     /* skip val->specVersion */
159 }
160 
161 /* struct VkMemoryRequirements */
162 
163 static inline size_t
vn_sizeof_VkMemoryRequirements(const VkMemoryRequirements * val)164 vn_sizeof_VkMemoryRequirements(const VkMemoryRequirements *val)
165 {
166     size_t size = 0;
167     size += vn_sizeof_VkDeviceSize(&val->size);
168     size += vn_sizeof_VkDeviceSize(&val->alignment);
169     size += vn_sizeof_uint32_t(&val->memoryTypeBits);
170     return size;
171 }
172 
173 static inline void
vn_decode_VkMemoryRequirements(struct vn_cs_decoder * dec,VkMemoryRequirements * val)174 vn_decode_VkMemoryRequirements(struct vn_cs_decoder *dec, VkMemoryRequirements *val)
175 {
176     vn_decode_VkDeviceSize(dec, &val->size);
177     vn_decode_VkDeviceSize(dec, &val->alignment);
178     vn_decode_uint32_t(dec, &val->memoryTypeBits);
179 }
180 
181 static inline size_t
vn_sizeof_VkMemoryRequirements_partial(const VkMemoryRequirements * val)182 vn_sizeof_VkMemoryRequirements_partial(const VkMemoryRequirements *val)
183 {
184     size_t size = 0;
185     /* skip val->size */
186     /* skip val->alignment */
187     /* skip val->memoryTypeBits */
188     return size;
189 }
190 
191 static inline void
vn_encode_VkMemoryRequirements_partial(struct vn_cs_encoder * enc,const VkMemoryRequirements * val)192 vn_encode_VkMemoryRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements *val)
193 {
194     /* skip val->size */
195     /* skip val->alignment */
196     /* skip val->memoryTypeBits */
197 }
198 
199 /* struct VkSparseImageFormatProperties */
200 
201 static inline size_t
vn_sizeof_VkSparseImageFormatProperties(const VkSparseImageFormatProperties * val)202 vn_sizeof_VkSparseImageFormatProperties(const VkSparseImageFormatProperties *val)
203 {
204     size_t size = 0;
205     size += vn_sizeof_VkFlags(&val->aspectMask);
206     size += vn_sizeof_VkExtent3D(&val->imageGranularity);
207     size += vn_sizeof_VkFlags(&val->flags);
208     return size;
209 }
210 
211 static inline void
vn_decode_VkSparseImageFormatProperties(struct vn_cs_decoder * dec,VkSparseImageFormatProperties * val)212 vn_decode_VkSparseImageFormatProperties(struct vn_cs_decoder *dec, VkSparseImageFormatProperties *val)
213 {
214     vn_decode_VkFlags(dec, &val->aspectMask);
215     vn_decode_VkExtent3D(dec, &val->imageGranularity);
216     vn_decode_VkFlags(dec, &val->flags);
217 }
218 
219 static inline size_t
vn_sizeof_VkSparseImageFormatProperties_partial(const VkSparseImageFormatProperties * val)220 vn_sizeof_VkSparseImageFormatProperties_partial(const VkSparseImageFormatProperties *val)
221 {
222     size_t size = 0;
223     /* skip val->aspectMask */
224     size += vn_sizeof_VkExtent3D_partial(&val->imageGranularity);
225     /* skip val->flags */
226     return size;
227 }
228 
229 static inline void
vn_encode_VkSparseImageFormatProperties_partial(struct vn_cs_encoder * enc,const VkSparseImageFormatProperties * val)230 vn_encode_VkSparseImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties *val)
231 {
232     /* skip val->aspectMask */
233     vn_encode_VkExtent3D_partial(enc, &val->imageGranularity);
234     /* skip val->flags */
235 }
236 
237 /* struct VkImageSubresource */
238 
239 static inline size_t
vn_sizeof_VkImageSubresource(const VkImageSubresource * val)240 vn_sizeof_VkImageSubresource(const VkImageSubresource *val)
241 {
242     size_t size = 0;
243     size += vn_sizeof_VkFlags(&val->aspectMask);
244     size += vn_sizeof_uint32_t(&val->mipLevel);
245     size += vn_sizeof_uint32_t(&val->arrayLayer);
246     return size;
247 }
248 
249 static inline void
vn_encode_VkImageSubresource(struct vn_cs_encoder * enc,const VkImageSubresource * val)250 vn_encode_VkImageSubresource(struct vn_cs_encoder *enc, const VkImageSubresource *val)
251 {
252     vn_encode_VkFlags(enc, &val->aspectMask);
253     vn_encode_uint32_t(enc, &val->mipLevel);
254     vn_encode_uint32_t(enc, &val->arrayLayer);
255 }
256 
257 /* struct VkOffset3D */
258 
259 static inline size_t
vn_sizeof_VkOffset3D(const VkOffset3D * val)260 vn_sizeof_VkOffset3D(const VkOffset3D *val)
261 {
262     size_t size = 0;
263     size += vn_sizeof_int32_t(&val->x);
264     size += vn_sizeof_int32_t(&val->y);
265     size += vn_sizeof_int32_t(&val->z);
266     return size;
267 }
268 
269 static inline void
vn_encode_VkOffset3D(struct vn_cs_encoder * enc,const VkOffset3D * val)270 vn_encode_VkOffset3D(struct vn_cs_encoder *enc, const VkOffset3D *val)
271 {
272     vn_encode_int32_t(enc, &val->x);
273     vn_encode_int32_t(enc, &val->y);
274     vn_encode_int32_t(enc, &val->z);
275 }
276 
277 /* struct VkSemaphoreTypeCreateInfo chain */
278 
279 static inline size_t
vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(const void * val)280 vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(const void *val)
281 {
282     /* no known/supported struct */
283     return vn_sizeof_simple_pointer(NULL);
284 }
285 
286 static inline size_t
vn_sizeof_VkSemaphoreTypeCreateInfo_self(const VkSemaphoreTypeCreateInfo * val)287 vn_sizeof_VkSemaphoreTypeCreateInfo_self(const VkSemaphoreTypeCreateInfo *val)
288 {
289     size_t size = 0;
290     /* skip val->{sType,pNext} */
291     size += vn_sizeof_VkSemaphoreType(&val->semaphoreType);
292     size += vn_sizeof_uint64_t(&val->initialValue);
293     return size;
294 }
295 
296 static inline size_t
vn_sizeof_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo * val)297 vn_sizeof_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo *val)
298 {
299     size_t size = 0;
300 
301     size += vn_sizeof_VkStructureType(&val->sType);
302     size += vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(val->pNext);
303     size += vn_sizeof_VkSemaphoreTypeCreateInfo_self(val);
304 
305     return size;
306 }
307 
308 static inline void
vn_encode_VkSemaphoreTypeCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)309 vn_encode_VkSemaphoreTypeCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
310 {
311     /* no known/supported struct */
312     vn_encode_simple_pointer(enc, NULL);
313 }
314 
315 static inline void
vn_encode_VkSemaphoreTypeCreateInfo_self(struct vn_cs_encoder * enc,const VkSemaphoreTypeCreateInfo * val)316 vn_encode_VkSemaphoreTypeCreateInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val)
317 {
318     /* skip val->{sType,pNext} */
319     vn_encode_VkSemaphoreType(enc, &val->semaphoreType);
320     vn_encode_uint64_t(enc, &val->initialValue);
321 }
322 
323 static inline void
vn_encode_VkSemaphoreTypeCreateInfo(struct vn_cs_encoder * enc,const VkSemaphoreTypeCreateInfo * val)324 vn_encode_VkSemaphoreTypeCreateInfo(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val)
325 {
326     assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO);
327     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO });
328     vn_encode_VkSemaphoreTypeCreateInfo_pnext(enc, val->pNext);
329     vn_encode_VkSemaphoreTypeCreateInfo_self(enc, val);
330 }
331 
332 /* struct VkImageFormatListCreateInfo chain */
333 
334 static inline size_t
vn_sizeof_VkImageFormatListCreateInfo_pnext(const void * val)335 vn_sizeof_VkImageFormatListCreateInfo_pnext(const void *val)
336 {
337     /* no known/supported struct */
338     return vn_sizeof_simple_pointer(NULL);
339 }
340 
341 static inline size_t
vn_sizeof_VkImageFormatListCreateInfo_self(const VkImageFormatListCreateInfo * val)342 vn_sizeof_VkImageFormatListCreateInfo_self(const VkImageFormatListCreateInfo *val)
343 {
344     size_t size = 0;
345     /* skip val->{sType,pNext} */
346     size += vn_sizeof_uint32_t(&val->viewFormatCount);
347     if (val->pViewFormats) {
348         size += vn_sizeof_array_size(val->viewFormatCount);
349         size += vn_sizeof_VkFormat_array(val->pViewFormats, val->viewFormatCount);
350     } else {
351         size += vn_sizeof_array_size(0);
352     }
353     return size;
354 }
355 
356 static inline size_t
vn_sizeof_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo * val)357 vn_sizeof_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo *val)
358 {
359     size_t size = 0;
360 
361     size += vn_sizeof_VkStructureType(&val->sType);
362     size += vn_sizeof_VkImageFormatListCreateInfo_pnext(val->pNext);
363     size += vn_sizeof_VkImageFormatListCreateInfo_self(val);
364 
365     return size;
366 }
367 
368 static inline void
vn_encode_VkImageFormatListCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)369 vn_encode_VkImageFormatListCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
370 {
371     /* no known/supported struct */
372     vn_encode_simple_pointer(enc, NULL);
373 }
374 
375 static inline void
vn_encode_VkImageFormatListCreateInfo_self(struct vn_cs_encoder * enc,const VkImageFormatListCreateInfo * val)376 vn_encode_VkImageFormatListCreateInfo_self(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val)
377 {
378     /* skip val->{sType,pNext} */
379     vn_encode_uint32_t(enc, &val->viewFormatCount);
380     if (val->pViewFormats) {
381         vn_encode_array_size(enc, val->viewFormatCount);
382         vn_encode_VkFormat_array(enc, val->pViewFormats, val->viewFormatCount);
383     } else {
384         vn_encode_array_size(enc, 0);
385     }
386 }
387 
388 static inline void
vn_encode_VkImageFormatListCreateInfo(struct vn_cs_encoder * enc,const VkImageFormatListCreateInfo * val)389 vn_encode_VkImageFormatListCreateInfo(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val)
390 {
391     assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO);
392     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO });
393     vn_encode_VkImageFormatListCreateInfo_pnext(enc, val->pNext);
394     vn_encode_VkImageFormatListCreateInfo_self(enc, val);
395 }
396 
397 /* struct VkImageStencilUsageCreateInfo chain */
398 
399 static inline size_t
vn_sizeof_VkImageStencilUsageCreateInfo_pnext(const void * val)400 vn_sizeof_VkImageStencilUsageCreateInfo_pnext(const void *val)
401 {
402     /* no known/supported struct */
403     return vn_sizeof_simple_pointer(NULL);
404 }
405 
406 static inline size_t
vn_sizeof_VkImageStencilUsageCreateInfo_self(const VkImageStencilUsageCreateInfo * val)407 vn_sizeof_VkImageStencilUsageCreateInfo_self(const VkImageStencilUsageCreateInfo *val)
408 {
409     size_t size = 0;
410     /* skip val->{sType,pNext} */
411     size += vn_sizeof_VkFlags(&val->stencilUsage);
412     return size;
413 }
414 
415 static inline size_t
vn_sizeof_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo * val)416 vn_sizeof_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo *val)
417 {
418     size_t size = 0;
419 
420     size += vn_sizeof_VkStructureType(&val->sType);
421     size += vn_sizeof_VkImageStencilUsageCreateInfo_pnext(val->pNext);
422     size += vn_sizeof_VkImageStencilUsageCreateInfo_self(val);
423 
424     return size;
425 }
426 
427 static inline void
vn_encode_VkImageStencilUsageCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)428 vn_encode_VkImageStencilUsageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
429 {
430     /* no known/supported struct */
431     vn_encode_simple_pointer(enc, NULL);
432 }
433 
434 static inline void
vn_encode_VkImageStencilUsageCreateInfo_self(struct vn_cs_encoder * enc,const VkImageStencilUsageCreateInfo * val)435 vn_encode_VkImageStencilUsageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val)
436 {
437     /* skip val->{sType,pNext} */
438     vn_encode_VkFlags(enc, &val->stencilUsage);
439 }
440 
441 static inline void
vn_encode_VkImageStencilUsageCreateInfo(struct vn_cs_encoder * enc,const VkImageStencilUsageCreateInfo * val)442 vn_encode_VkImageStencilUsageCreateInfo(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val)
443 {
444     assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO);
445     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO });
446     vn_encode_VkImageStencilUsageCreateInfo_pnext(enc, val->pNext);
447     vn_encode_VkImageStencilUsageCreateInfo_self(enc, val);
448 }
449 
450 /* struct VkComponentMapping */
451 
452 static inline size_t
vn_sizeof_VkComponentMapping(const VkComponentMapping * val)453 vn_sizeof_VkComponentMapping(const VkComponentMapping *val)
454 {
455     size_t size = 0;
456     size += vn_sizeof_VkComponentSwizzle(&val->r);
457     size += vn_sizeof_VkComponentSwizzle(&val->g);
458     size += vn_sizeof_VkComponentSwizzle(&val->b);
459     size += vn_sizeof_VkComponentSwizzle(&val->a);
460     return size;
461 }
462 
463 static inline void
vn_encode_VkComponentMapping(struct vn_cs_encoder * enc,const VkComponentMapping * val)464 vn_encode_VkComponentMapping(struct vn_cs_encoder *enc, const VkComponentMapping *val)
465 {
466     vn_encode_VkComponentSwizzle(enc, &val->r);
467     vn_encode_VkComponentSwizzle(enc, &val->g);
468     vn_encode_VkComponentSwizzle(enc, &val->b);
469     vn_encode_VkComponentSwizzle(enc, &val->a);
470 }
471 
472 static inline void
vn_decode_VkComponentMapping(struct vn_cs_decoder * dec,VkComponentMapping * val)473 vn_decode_VkComponentMapping(struct vn_cs_decoder *dec, VkComponentMapping *val)
474 {
475     vn_decode_VkComponentSwizzle(dec, &val->r);
476     vn_decode_VkComponentSwizzle(dec, &val->g);
477     vn_decode_VkComponentSwizzle(dec, &val->b);
478     vn_decode_VkComponentSwizzle(dec, &val->a);
479 }
480 
481 static inline size_t
vn_sizeof_VkComponentMapping_partial(const VkComponentMapping * val)482 vn_sizeof_VkComponentMapping_partial(const VkComponentMapping *val)
483 {
484     size_t size = 0;
485     /* skip val->r */
486     /* skip val->g */
487     /* skip val->b */
488     /* skip val->a */
489     return size;
490 }
491 
492 static inline void
vn_encode_VkComponentMapping_partial(struct vn_cs_encoder * enc,const VkComponentMapping * val)493 vn_encode_VkComponentMapping_partial(struct vn_cs_encoder *enc, const VkComponentMapping *val)
494 {
495     /* skip val->r */
496     /* skip val->g */
497     /* skip val->b */
498     /* skip val->a */
499 }
500 
501 /* struct VkImageSubresourceRange */
502 
503 static inline size_t
vn_sizeof_VkImageSubresourceRange(const VkImageSubresourceRange * val)504 vn_sizeof_VkImageSubresourceRange(const VkImageSubresourceRange *val)
505 {
506     size_t size = 0;
507     size += vn_sizeof_VkFlags(&val->aspectMask);
508     size += vn_sizeof_uint32_t(&val->baseMipLevel);
509     size += vn_sizeof_uint32_t(&val->levelCount);
510     size += vn_sizeof_uint32_t(&val->baseArrayLayer);
511     size += vn_sizeof_uint32_t(&val->layerCount);
512     return size;
513 }
514 
515 static inline void
vn_encode_VkImageSubresourceRange(struct vn_cs_encoder * enc,const VkImageSubresourceRange * val)516 vn_encode_VkImageSubresourceRange(struct vn_cs_encoder *enc, const VkImageSubresourceRange *val)
517 {
518     vn_encode_VkFlags(enc, &val->aspectMask);
519     vn_encode_uint32_t(enc, &val->baseMipLevel);
520     vn_encode_uint32_t(enc, &val->levelCount);
521     vn_encode_uint32_t(enc, &val->baseArrayLayer);
522     vn_encode_uint32_t(enc, &val->layerCount);
523 }
524 
525 /* struct VkSamplerYcbcrConversionInfo chain */
526 
527 static inline size_t
vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(const void * val)528 vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(const void *val)
529 {
530     /* no known/supported struct */
531     return vn_sizeof_simple_pointer(NULL);
532 }
533 
534 static inline size_t
vn_sizeof_VkSamplerYcbcrConversionInfo_self(const VkSamplerYcbcrConversionInfo * val)535 vn_sizeof_VkSamplerYcbcrConversionInfo_self(const VkSamplerYcbcrConversionInfo *val)
536 {
537     size_t size = 0;
538     /* skip val->{sType,pNext} */
539     size += vn_sizeof_VkSamplerYcbcrConversion(&val->conversion);
540     return size;
541 }
542 
543 static inline size_t
vn_sizeof_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo * val)544 vn_sizeof_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo *val)
545 {
546     size_t size = 0;
547 
548     size += vn_sizeof_VkStructureType(&val->sType);
549     size += vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(val->pNext);
550     size += vn_sizeof_VkSamplerYcbcrConversionInfo_self(val);
551 
552     return size;
553 }
554 
555 static inline void
vn_encode_VkSamplerYcbcrConversionInfo_pnext(struct vn_cs_encoder * enc,const void * val)556 vn_encode_VkSamplerYcbcrConversionInfo_pnext(struct vn_cs_encoder *enc, const void *val)
557 {
558     /* no known/supported struct */
559     vn_encode_simple_pointer(enc, NULL);
560 }
561 
562 static inline void
vn_encode_VkSamplerYcbcrConversionInfo_self(struct vn_cs_encoder * enc,const VkSamplerYcbcrConversionInfo * val)563 vn_encode_VkSamplerYcbcrConversionInfo_self(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val)
564 {
565     /* skip val->{sType,pNext} */
566     vn_encode_VkSamplerYcbcrConversion(enc, &val->conversion);
567 }
568 
569 static inline void
vn_encode_VkSamplerYcbcrConversionInfo(struct vn_cs_encoder * enc,const VkSamplerYcbcrConversionInfo * val)570 vn_encode_VkSamplerYcbcrConversionInfo(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val)
571 {
572     assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO);
573     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO });
574     vn_encode_VkSamplerYcbcrConversionInfo_pnext(enc, val->pNext);
575     vn_encode_VkSamplerYcbcrConversionInfo_self(enc, val);
576 }
577 
578 /* struct VkViewport */
579 
580 static inline size_t
vn_sizeof_VkViewport(const VkViewport * val)581 vn_sizeof_VkViewport(const VkViewport *val)
582 {
583     size_t size = 0;
584     size += vn_sizeof_float(&val->x);
585     size += vn_sizeof_float(&val->y);
586     size += vn_sizeof_float(&val->width);
587     size += vn_sizeof_float(&val->height);
588     size += vn_sizeof_float(&val->minDepth);
589     size += vn_sizeof_float(&val->maxDepth);
590     return size;
591 }
592 
593 static inline void
vn_encode_VkViewport(struct vn_cs_encoder * enc,const VkViewport * val)594 vn_encode_VkViewport(struct vn_cs_encoder *enc, const VkViewport *val)
595 {
596     vn_encode_float(enc, &val->x);
597     vn_encode_float(enc, &val->y);
598     vn_encode_float(enc, &val->width);
599     vn_encode_float(enc, &val->height);
600     vn_encode_float(enc, &val->minDepth);
601     vn_encode_float(enc, &val->maxDepth);
602 }
603 
604 static inline void
vn_decode_VkViewport(struct vn_cs_decoder * dec,VkViewport * val)605 vn_decode_VkViewport(struct vn_cs_decoder *dec, VkViewport *val)
606 {
607     vn_decode_float(dec, &val->x);
608     vn_decode_float(dec, &val->y);
609     vn_decode_float(dec, &val->width);
610     vn_decode_float(dec, &val->height);
611     vn_decode_float(dec, &val->minDepth);
612     vn_decode_float(dec, &val->maxDepth);
613 }
614 
615 /* struct VkOffset2D */
616 
617 static inline size_t
vn_sizeof_VkOffset2D(const VkOffset2D * val)618 vn_sizeof_VkOffset2D(const VkOffset2D *val)
619 {
620     size_t size = 0;
621     size += vn_sizeof_int32_t(&val->x);
622     size += vn_sizeof_int32_t(&val->y);
623     return size;
624 }
625 
626 static inline void
vn_encode_VkOffset2D(struct vn_cs_encoder * enc,const VkOffset2D * val)627 vn_encode_VkOffset2D(struct vn_cs_encoder *enc, const VkOffset2D *val)
628 {
629     vn_encode_int32_t(enc, &val->x);
630     vn_encode_int32_t(enc, &val->y);
631 }
632 
633 static inline void
vn_decode_VkOffset2D(struct vn_cs_decoder * dec,VkOffset2D * val)634 vn_decode_VkOffset2D(struct vn_cs_decoder *dec, VkOffset2D *val)
635 {
636     vn_decode_int32_t(dec, &val->x);
637     vn_decode_int32_t(dec, &val->y);
638 }
639 
640 static inline size_t
vn_sizeof_VkOffset2D_partial(const VkOffset2D * val)641 vn_sizeof_VkOffset2D_partial(const VkOffset2D *val)
642 {
643     size_t size = 0;
644     /* skip val->x */
645     /* skip val->y */
646     return size;
647 }
648 
649 static inline void
vn_encode_VkOffset2D_partial(struct vn_cs_encoder * enc,const VkOffset2D * val)650 vn_encode_VkOffset2D_partial(struct vn_cs_encoder *enc, const VkOffset2D *val)
651 {
652     /* skip val->x */
653     /* skip val->y */
654 }
655 
656 /* struct VkExtent2D */
657 
658 static inline size_t
vn_sizeof_VkExtent2D(const VkExtent2D * val)659 vn_sizeof_VkExtent2D(const VkExtent2D *val)
660 {
661     size_t size = 0;
662     size += vn_sizeof_uint32_t(&val->width);
663     size += vn_sizeof_uint32_t(&val->height);
664     return size;
665 }
666 
667 static inline void
vn_encode_VkExtent2D(struct vn_cs_encoder * enc,const VkExtent2D * val)668 vn_encode_VkExtent2D(struct vn_cs_encoder *enc, const VkExtent2D *val)
669 {
670     vn_encode_uint32_t(enc, &val->width);
671     vn_encode_uint32_t(enc, &val->height);
672 }
673 
674 static inline void
vn_decode_VkExtent2D(struct vn_cs_decoder * dec,VkExtent2D * val)675 vn_decode_VkExtent2D(struct vn_cs_decoder *dec, VkExtent2D *val)
676 {
677     vn_decode_uint32_t(dec, &val->width);
678     vn_decode_uint32_t(dec, &val->height);
679 }
680 
681 static inline size_t
vn_sizeof_VkExtent2D_partial(const VkExtent2D * val)682 vn_sizeof_VkExtent2D_partial(const VkExtent2D *val)
683 {
684     size_t size = 0;
685     /* skip val->width */
686     /* skip val->height */
687     return size;
688 }
689 
690 static inline void
vn_encode_VkExtent2D_partial(struct vn_cs_encoder * enc,const VkExtent2D * val)691 vn_encode_VkExtent2D_partial(struct vn_cs_encoder *enc, const VkExtent2D *val)
692 {
693     /* skip val->width */
694     /* skip val->height */
695 }
696 
697 /* struct VkRect2D */
698 
699 static inline size_t
vn_sizeof_VkRect2D(const VkRect2D * val)700 vn_sizeof_VkRect2D(const VkRect2D *val)
701 {
702     size_t size = 0;
703     size += vn_sizeof_VkOffset2D(&val->offset);
704     size += vn_sizeof_VkExtent2D(&val->extent);
705     return size;
706 }
707 
708 static inline void
vn_encode_VkRect2D(struct vn_cs_encoder * enc,const VkRect2D * val)709 vn_encode_VkRect2D(struct vn_cs_encoder *enc, const VkRect2D *val)
710 {
711     vn_encode_VkOffset2D(enc, &val->offset);
712     vn_encode_VkExtent2D(enc, &val->extent);
713 }
714 
715 static inline void
vn_decode_VkRect2D(struct vn_cs_decoder * dec,VkRect2D * val)716 vn_decode_VkRect2D(struct vn_cs_decoder *dec, VkRect2D *val)
717 {
718     vn_decode_VkOffset2D(dec, &val->offset);
719     vn_decode_VkExtent2D(dec, &val->extent);
720 }
721 
722 static inline size_t
vn_sizeof_VkRect2D_partial(const VkRect2D * val)723 vn_sizeof_VkRect2D_partial(const VkRect2D *val)
724 {
725     size_t size = 0;
726     size += vn_sizeof_VkOffset2D_partial(&val->offset);
727     size += vn_sizeof_VkExtent2D_partial(&val->extent);
728     return size;
729 }
730 
731 static inline void
vn_encode_VkRect2D_partial(struct vn_cs_encoder * enc,const VkRect2D * val)732 vn_encode_VkRect2D_partial(struct vn_cs_encoder *enc, const VkRect2D *val)
733 {
734     vn_encode_VkOffset2D_partial(enc, &val->offset);
735     vn_encode_VkExtent2D_partial(enc, &val->extent);
736 }
737 
738 /* struct VkMemoryDedicatedRequirements chain */
739 
740 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements_pnext(const void * val)741 vn_sizeof_VkMemoryDedicatedRequirements_pnext(const void *val)
742 {
743     /* no known/supported struct */
744     return vn_sizeof_simple_pointer(NULL);
745 }
746 
747 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements_self(const VkMemoryDedicatedRequirements * val)748 vn_sizeof_VkMemoryDedicatedRequirements_self(const VkMemoryDedicatedRequirements *val)
749 {
750     size_t size = 0;
751     /* skip val->{sType,pNext} */
752     size += vn_sizeof_VkBool32(&val->prefersDedicatedAllocation);
753     size += vn_sizeof_VkBool32(&val->requiresDedicatedAllocation);
754     return size;
755 }
756 
757 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements * val)758 vn_sizeof_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements *val)
759 {
760     size_t size = 0;
761 
762     size += vn_sizeof_VkStructureType(&val->sType);
763     size += vn_sizeof_VkMemoryDedicatedRequirements_pnext(val->pNext);
764     size += vn_sizeof_VkMemoryDedicatedRequirements_self(val);
765 
766     return size;
767 }
768 
769 static inline void
vn_decode_VkMemoryDedicatedRequirements_pnext(struct vn_cs_decoder * dec,const void * val)770 vn_decode_VkMemoryDedicatedRequirements_pnext(struct vn_cs_decoder *dec, const void *val)
771 {
772     /* no known/supported struct */
773     if (vn_decode_simple_pointer(dec))
774         assert(false);
775 }
776 
777 static inline void
vn_decode_VkMemoryDedicatedRequirements_self(struct vn_cs_decoder * dec,VkMemoryDedicatedRequirements * val)778 vn_decode_VkMemoryDedicatedRequirements_self(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)
779 {
780     /* skip val->{sType,pNext} */
781     vn_decode_VkBool32(dec, &val->prefersDedicatedAllocation);
782     vn_decode_VkBool32(dec, &val->requiresDedicatedAllocation);
783 }
784 
785 static inline void
vn_decode_VkMemoryDedicatedRequirements(struct vn_cs_decoder * dec,VkMemoryDedicatedRequirements * val)786 vn_decode_VkMemoryDedicatedRequirements(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)
787 {
788     VkStructureType stype;
789     vn_decode_VkStructureType(dec, &stype);
790     assert(stype == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS);
791 
792     assert(val->sType == stype);
793     vn_decode_VkMemoryDedicatedRequirements_pnext(dec, val->pNext);
794     vn_decode_VkMemoryDedicatedRequirements_self(dec, val);
795 }
796 
797 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(const void * val)798 vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(const void *val)
799 {
800     /* no known/supported struct */
801     return vn_sizeof_simple_pointer(NULL);
802 }
803 
804 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements_self_partial(const VkMemoryDedicatedRequirements * val)805 vn_sizeof_VkMemoryDedicatedRequirements_self_partial(const VkMemoryDedicatedRequirements *val)
806 {
807     size_t size = 0;
808     /* skip val->{sType,pNext} */
809     /* skip val->prefersDedicatedAllocation */
810     /* skip val->requiresDedicatedAllocation */
811     return size;
812 }
813 
814 static inline size_t
vn_sizeof_VkMemoryDedicatedRequirements_partial(const VkMemoryDedicatedRequirements * val)815 vn_sizeof_VkMemoryDedicatedRequirements_partial(const VkMemoryDedicatedRequirements *val)
816 {
817     size_t size = 0;
818 
819     size += vn_sizeof_VkStructureType(&val->sType);
820     size += vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(val->pNext);
821     size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial(val);
822 
823     return size;
824 }
825 
826 static inline void
vn_encode_VkMemoryDedicatedRequirements_pnext_partial(struct vn_cs_encoder * enc,const void * val)827 vn_encode_VkMemoryDedicatedRequirements_pnext_partial(struct vn_cs_encoder *enc, const void *val)
828 {
829     /* no known/supported struct */
830     vn_encode_simple_pointer(enc, NULL);
831 }
832 
833 static inline void
vn_encode_VkMemoryDedicatedRequirements_self_partial(struct vn_cs_encoder * enc,const VkMemoryDedicatedRequirements * val)834 vn_encode_VkMemoryDedicatedRequirements_self_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)
835 {
836     /* skip val->{sType,pNext} */
837     /* skip val->prefersDedicatedAllocation */
838     /* skip val->requiresDedicatedAllocation */
839 }
840 
841 static inline void
vn_encode_VkMemoryDedicatedRequirements_partial(struct vn_cs_encoder * enc,const VkMemoryDedicatedRequirements * val)842 vn_encode_VkMemoryDedicatedRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)
843 {
844     assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS);
845     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS });
846     vn_encode_VkMemoryDedicatedRequirements_pnext_partial(enc, val->pNext);
847     vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, val);
848 }
849 
850 /* struct VkMemoryRequirements2 chain */
851 
852 static inline size_t
vn_sizeof_VkMemoryRequirements2_pnext(const void * val)853 vn_sizeof_VkMemoryRequirements2_pnext(const void *val)
854 {
855     const VkBaseInStructure *pnext = val;
856     size_t size = 0;
857 
858     while (pnext) {
859         switch ((int32_t)pnext->sType) {
860         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
861             size += vn_sizeof_simple_pointer(pnext);
862             size += vn_sizeof_VkStructureType(&pnext->sType);
863             size += vn_sizeof_VkMemoryRequirements2_pnext(pnext->pNext);
864             size += vn_sizeof_VkMemoryDedicatedRequirements_self((const VkMemoryDedicatedRequirements *)pnext);
865             return size;
866         default:
867             /* ignore unknown/unsupported struct */
868             break;
869         }
870         pnext = pnext->pNext;
871     }
872 
873     return vn_sizeof_simple_pointer(NULL);
874 }
875 
876 static inline size_t
vn_sizeof_VkMemoryRequirements2_self(const VkMemoryRequirements2 * val)877 vn_sizeof_VkMemoryRequirements2_self(const VkMemoryRequirements2 *val)
878 {
879     size_t size = 0;
880     /* skip val->{sType,pNext} */
881     size += vn_sizeof_VkMemoryRequirements(&val->memoryRequirements);
882     return size;
883 }
884 
885 static inline size_t
vn_sizeof_VkMemoryRequirements2(const VkMemoryRequirements2 * val)886 vn_sizeof_VkMemoryRequirements2(const VkMemoryRequirements2 *val)
887 {
888     size_t size = 0;
889 
890     size += vn_sizeof_VkStructureType(&val->sType);
891     size += vn_sizeof_VkMemoryRequirements2_pnext(val->pNext);
892     size += vn_sizeof_VkMemoryRequirements2_self(val);
893 
894     return size;
895 }
896 
897 static inline void
vn_decode_VkMemoryRequirements2_pnext(struct vn_cs_decoder * dec,const void * val)898 vn_decode_VkMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val)
899 {
900     VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;
901     VkStructureType stype;
902 
903     if (!vn_decode_simple_pointer(dec))
904         return;
905 
906     vn_decode_VkStructureType(dec, &stype);
907     while (true) {
908         assert(pnext);
909         if (pnext->sType == stype)
910             break;
911     }
912 
913     switch ((int32_t)pnext->sType) {
914     case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
915         vn_decode_VkMemoryRequirements2_pnext(dec, pnext->pNext);
916         vn_decode_VkMemoryDedicatedRequirements_self(dec, (VkMemoryDedicatedRequirements *)pnext);
917         break;
918     default:
919         assert(false);
920         break;
921     }
922 }
923 
924 static inline void
vn_decode_VkMemoryRequirements2_self(struct vn_cs_decoder * dec,VkMemoryRequirements2 * val)925 vn_decode_VkMemoryRequirements2_self(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)
926 {
927     /* skip val->{sType,pNext} */
928     vn_decode_VkMemoryRequirements(dec, &val->memoryRequirements);
929 }
930 
931 static inline void
vn_decode_VkMemoryRequirements2(struct vn_cs_decoder * dec,VkMemoryRequirements2 * val)932 vn_decode_VkMemoryRequirements2(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)
933 {
934     VkStructureType stype;
935     vn_decode_VkStructureType(dec, &stype);
936     assert(stype == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2);
937 
938     assert(val->sType == stype);
939     vn_decode_VkMemoryRequirements2_pnext(dec, val->pNext);
940     vn_decode_VkMemoryRequirements2_self(dec, val);
941 }
942 
943 static inline size_t
vn_sizeof_VkMemoryRequirements2_pnext_partial(const void * val)944 vn_sizeof_VkMemoryRequirements2_pnext_partial(const void *val)
945 {
946     const VkBaseInStructure *pnext = val;
947     size_t size = 0;
948 
949     while (pnext) {
950         switch ((int32_t)pnext->sType) {
951         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
952             size += vn_sizeof_simple_pointer(pnext);
953             size += vn_sizeof_VkStructureType(&pnext->sType);
954             size += vn_sizeof_VkMemoryRequirements2_pnext_partial(pnext->pNext);
955             size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial((const VkMemoryDedicatedRequirements *)pnext);
956             return size;
957         default:
958             /* ignore unknown/unsupported struct */
959             break;
960         }
961         pnext = pnext->pNext;
962     }
963 
964     return vn_sizeof_simple_pointer(NULL);
965 }
966 
967 static inline size_t
vn_sizeof_VkMemoryRequirements2_self_partial(const VkMemoryRequirements2 * val)968 vn_sizeof_VkMemoryRequirements2_self_partial(const VkMemoryRequirements2 *val)
969 {
970     size_t size = 0;
971     /* skip val->{sType,pNext} */
972     size += vn_sizeof_VkMemoryRequirements_partial(&val->memoryRequirements);
973     return size;
974 }
975 
976 static inline size_t
vn_sizeof_VkMemoryRequirements2_partial(const VkMemoryRequirements2 * val)977 vn_sizeof_VkMemoryRequirements2_partial(const VkMemoryRequirements2 *val)
978 {
979     size_t size = 0;
980 
981     size += vn_sizeof_VkStructureType(&val->sType);
982     size += vn_sizeof_VkMemoryRequirements2_pnext_partial(val->pNext);
983     size += vn_sizeof_VkMemoryRequirements2_self_partial(val);
984 
985     return size;
986 }
987 
988 static inline void
vn_encode_VkMemoryRequirements2_pnext_partial(struct vn_cs_encoder * enc,const void * val)989 vn_encode_VkMemoryRequirements2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
990 {
991     const VkBaseInStructure *pnext = val;
992 
993     while (pnext) {
994         switch ((int32_t)pnext->sType) {
995         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
996             vn_encode_simple_pointer(enc, pnext);
997             vn_encode_VkStructureType(enc, &pnext->sType);
998             vn_encode_VkMemoryRequirements2_pnext_partial(enc, pnext->pNext);
999             vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, (const VkMemoryDedicatedRequirements *)pnext);
1000             return;
1001         default:
1002             /* ignore unknown/unsupported struct */
1003             break;
1004         }
1005         pnext = pnext->pNext;
1006     }
1007 
1008     vn_encode_simple_pointer(enc, NULL);
1009 }
1010 
1011 static inline void
vn_encode_VkMemoryRequirements2_self_partial(struct vn_cs_encoder * enc,const VkMemoryRequirements2 * val)1012 vn_encode_VkMemoryRequirements2_self_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)
1013 {
1014     /* skip val->{sType,pNext} */
1015     vn_encode_VkMemoryRequirements_partial(enc, &val->memoryRequirements);
1016 }
1017 
1018 static inline void
vn_encode_VkMemoryRequirements2_partial(struct vn_cs_encoder * enc,const VkMemoryRequirements2 * val)1019 vn_encode_VkMemoryRequirements2_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)
1020 {
1021     assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2);
1022     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 });
1023     vn_encode_VkMemoryRequirements2_pnext_partial(enc, val->pNext);
1024     vn_encode_VkMemoryRequirements2_self_partial(enc, val);
1025 }
1026 
1027 #endif /* VN_PROTOCOL_DRIVER_STRUCTS_H */
1028