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