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