1 /* This file is generated by venus-protocol. See vn_protocol_renderer.h. */
2
3 /*
4 * Copyright 2020 Google LLC
5 * SPDX-License-Identifier: MIT
6 */
7
8 #ifndef VN_PROTOCOL_RENDERER_BUFFER_H
9 #define VN_PROTOCOL_RENDERER_BUFFER_H
10
11 #include "vn_protocol_renderer_structs.h"
12
13 #pragma GCC diagnostic push
14 #pragma GCC diagnostic ignored "-Wpointer-arith"
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
16
17 /* struct VkExternalMemoryBufferCreateInfo chain */
18
19 static inline void *
vn_decode_VkExternalMemoryBufferCreateInfo_pnext_temp(struct vn_cs_decoder * dec)20 vn_decode_VkExternalMemoryBufferCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
21 {
22 /* no known/supported struct */
23 if (vn_decode_simple_pointer(dec))
24 vn_cs_decoder_set_fatal(dec);
25 return NULL;
26 }
27
28 static inline void
vn_decode_VkExternalMemoryBufferCreateInfo_self_temp(struct vn_cs_decoder * dec,VkExternalMemoryBufferCreateInfo * val)29 vn_decode_VkExternalMemoryBufferCreateInfo_self_temp(struct vn_cs_decoder *dec, VkExternalMemoryBufferCreateInfo *val)
30 {
31 /* skip val->{sType,pNext} */
32 vn_decode_VkFlags(dec, &val->handleTypes);
33 }
34
35 static inline void
vn_decode_VkExternalMemoryBufferCreateInfo_temp(struct vn_cs_decoder * dec,VkExternalMemoryBufferCreateInfo * val)36 vn_decode_VkExternalMemoryBufferCreateInfo_temp(struct vn_cs_decoder *dec, VkExternalMemoryBufferCreateInfo *val)
37 {
38 VkStructureType stype;
39 vn_decode_VkStructureType(dec, &stype);
40 if (stype != VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO)
41 vn_cs_decoder_set_fatal(dec);
42
43 val->sType = stype;
44 val->pNext = vn_decode_VkExternalMemoryBufferCreateInfo_pnext_temp(dec);
45 vn_decode_VkExternalMemoryBufferCreateInfo_self_temp(dec, val);
46 }
47
48 static inline void
vn_replace_VkExternalMemoryBufferCreateInfo_handle_self(VkExternalMemoryBufferCreateInfo * val)49 vn_replace_VkExternalMemoryBufferCreateInfo_handle_self(VkExternalMemoryBufferCreateInfo *val)
50 {
51 /* skip val->sType */
52 /* skip val->pNext */
53 /* skip val->handleTypes */
54 }
55
56 static inline void
vn_replace_VkExternalMemoryBufferCreateInfo_handle(VkExternalMemoryBufferCreateInfo * val)57 vn_replace_VkExternalMemoryBufferCreateInfo_handle(VkExternalMemoryBufferCreateInfo *val)
58 {
59 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
60
61 do {
62 switch ((int32_t)pnext->sType) {
63 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
64 vn_replace_VkExternalMemoryBufferCreateInfo_handle_self((VkExternalMemoryBufferCreateInfo *)pnext);
65 break;
66 default:
67 /* ignore unknown/unsupported struct */
68 break;
69 }
70 pnext = pnext->pNext;
71 } while (pnext);
72 }
73
74 /* struct VkBufferOpaqueCaptureAddressCreateInfo chain */
75
76 static inline void *
vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_pnext_temp(struct vn_cs_decoder * dec)77 vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
78 {
79 /* no known/supported struct */
80 if (vn_decode_simple_pointer(dec))
81 vn_cs_decoder_set_fatal(dec);
82 return NULL;
83 }
84
85 static inline void
vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_self_temp(struct vn_cs_decoder * dec,VkBufferOpaqueCaptureAddressCreateInfo * val)86 vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_self_temp(struct vn_cs_decoder *dec, VkBufferOpaqueCaptureAddressCreateInfo *val)
87 {
88 /* skip val->{sType,pNext} */
89 vn_decode_uint64_t(dec, &val->opaqueCaptureAddress);
90 }
91
92 static inline void
vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_temp(struct vn_cs_decoder * dec,VkBufferOpaqueCaptureAddressCreateInfo * val)93 vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_temp(struct vn_cs_decoder *dec, VkBufferOpaqueCaptureAddressCreateInfo *val)
94 {
95 VkStructureType stype;
96 vn_decode_VkStructureType(dec, &stype);
97 if (stype != VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO)
98 vn_cs_decoder_set_fatal(dec);
99
100 val->sType = stype;
101 val->pNext = vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_pnext_temp(dec);
102 vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_self_temp(dec, val);
103 }
104
105 static inline void
vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle_self(VkBufferOpaqueCaptureAddressCreateInfo * val)106 vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle_self(VkBufferOpaqueCaptureAddressCreateInfo *val)
107 {
108 /* skip val->sType */
109 /* skip val->pNext */
110 /* skip val->opaqueCaptureAddress */
111 }
112
113 static inline void
vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle(VkBufferOpaqueCaptureAddressCreateInfo * val)114 vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle(VkBufferOpaqueCaptureAddressCreateInfo *val)
115 {
116 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
117
118 do {
119 switch ((int32_t)pnext->sType) {
120 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
121 vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle_self((VkBufferOpaqueCaptureAddressCreateInfo *)pnext);
122 break;
123 default:
124 /* ignore unknown/unsupported struct */
125 break;
126 }
127 pnext = pnext->pNext;
128 } while (pnext);
129 }
130
131 /* struct VkBufferCreateInfo chain */
132
133 static inline void *
vn_decode_VkBufferCreateInfo_pnext_temp(struct vn_cs_decoder * dec)134 vn_decode_VkBufferCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
135 {
136 VkBaseOutStructure *pnext;
137 VkStructureType stype;
138
139 if (!vn_decode_simple_pointer(dec))
140 return NULL;
141
142 vn_decode_VkStructureType(dec, &stype);
143 switch ((int32_t)stype) {
144 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
145 pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkExternalMemoryBufferCreateInfo));
146 if (pnext) {
147 pnext->sType = stype;
148 pnext->pNext = vn_decode_VkBufferCreateInfo_pnext_temp(dec);
149 vn_decode_VkExternalMemoryBufferCreateInfo_self_temp(dec, (VkExternalMemoryBufferCreateInfo *)pnext);
150 }
151 break;
152 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
153 pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkBufferOpaqueCaptureAddressCreateInfo));
154 if (pnext) {
155 pnext->sType = stype;
156 pnext->pNext = vn_decode_VkBufferCreateInfo_pnext_temp(dec);
157 vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_self_temp(dec, (VkBufferOpaqueCaptureAddressCreateInfo *)pnext);
158 }
159 break;
160 default:
161 /* unexpected struct */
162 pnext = NULL;
163 vn_cs_decoder_set_fatal(dec);
164 break;
165 }
166
167 return pnext;
168 }
169
170 static inline void
vn_decode_VkBufferCreateInfo_self_temp(struct vn_cs_decoder * dec,VkBufferCreateInfo * val)171 vn_decode_VkBufferCreateInfo_self_temp(struct vn_cs_decoder *dec, VkBufferCreateInfo *val)
172 {
173 /* skip val->{sType,pNext} */
174 vn_decode_VkFlags(dec, &val->flags);
175 vn_decode_VkDeviceSize(dec, &val->size);
176 vn_decode_VkFlags(dec, &val->usage);
177 vn_decode_VkSharingMode(dec, &val->sharingMode);
178 vn_decode_uint32_t(dec, &val->queueFamilyIndexCount);
179 if (vn_peek_array_size(dec)) {
180 const size_t array_size = vn_decode_array_size(dec, val->queueFamilyIndexCount);
181 val->pQueueFamilyIndices = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pQueueFamilyIndices) * array_size);
182 if (!val->pQueueFamilyIndices) return;
183 vn_decode_uint32_t_array(dec, (uint32_t *)val->pQueueFamilyIndices, array_size);
184 } else {
185 vn_decode_array_size_unchecked(dec);
186 val->pQueueFamilyIndices = NULL;
187 }
188 }
189
190 static inline void
vn_decode_VkBufferCreateInfo_temp(struct vn_cs_decoder * dec,VkBufferCreateInfo * val)191 vn_decode_VkBufferCreateInfo_temp(struct vn_cs_decoder *dec, VkBufferCreateInfo *val)
192 {
193 VkStructureType stype;
194 vn_decode_VkStructureType(dec, &stype);
195 if (stype != VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
196 vn_cs_decoder_set_fatal(dec);
197
198 val->sType = stype;
199 val->pNext = vn_decode_VkBufferCreateInfo_pnext_temp(dec);
200 vn_decode_VkBufferCreateInfo_self_temp(dec, val);
201 }
202
203 static inline void
vn_replace_VkBufferCreateInfo_handle_self(VkBufferCreateInfo * val)204 vn_replace_VkBufferCreateInfo_handle_self(VkBufferCreateInfo *val)
205 {
206 /* skip val->sType */
207 /* skip val->pNext */
208 /* skip val->flags */
209 /* skip val->size */
210 /* skip val->usage */
211 /* skip val->sharingMode */
212 /* skip val->queueFamilyIndexCount */
213 /* skip val->pQueueFamilyIndices */
214 }
215
216 static inline void
vn_replace_VkBufferCreateInfo_handle(VkBufferCreateInfo * val)217 vn_replace_VkBufferCreateInfo_handle(VkBufferCreateInfo *val)
218 {
219 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
220
221 do {
222 switch ((int32_t)pnext->sType) {
223 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:
224 vn_replace_VkBufferCreateInfo_handle_self((VkBufferCreateInfo *)pnext);
225 break;
226 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
227 vn_replace_VkExternalMemoryBufferCreateInfo_handle_self((VkExternalMemoryBufferCreateInfo *)pnext);
228 break;
229 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
230 vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle_self((VkBufferOpaqueCaptureAddressCreateInfo *)pnext);
231 break;
232 default:
233 /* ignore unknown/unsupported struct */
234 break;
235 }
236 pnext = pnext->pNext;
237 } while (pnext);
238 }
239
240 /* struct VkBindBufferMemoryDeviceGroupInfo chain */
241
242 static inline void *
vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(struct vn_cs_decoder * dec)243 vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(struct vn_cs_decoder *dec)
244 {
245 /* no known/supported struct */
246 if (vn_decode_simple_pointer(dec))
247 vn_cs_decoder_set_fatal(dec);
248 return NULL;
249 }
250
251 static inline void
vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryDeviceGroupInfo * val)252 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryDeviceGroupInfo *val)
253 {
254 /* skip val->{sType,pNext} */
255 vn_decode_uint32_t(dec, &val->deviceIndexCount);
256 if (vn_peek_array_size(dec)) {
257 const size_t array_size = vn_decode_array_size(dec, val->deviceIndexCount);
258 val->pDeviceIndices = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDeviceIndices) * array_size);
259 if (!val->pDeviceIndices) return;
260 vn_decode_uint32_t_array(dec, (uint32_t *)val->pDeviceIndices, array_size);
261 } else {
262 vn_decode_array_size(dec, val->deviceIndexCount);
263 val->pDeviceIndices = NULL;
264 }
265 }
266
267 static inline void
vn_decode_VkBindBufferMemoryDeviceGroupInfo_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryDeviceGroupInfo * val)268 vn_decode_VkBindBufferMemoryDeviceGroupInfo_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryDeviceGroupInfo *val)
269 {
270 VkStructureType stype;
271 vn_decode_VkStructureType(dec, &stype);
272 if (stype != VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO)
273 vn_cs_decoder_set_fatal(dec);
274
275 val->sType = stype;
276 val->pNext = vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(dec);
277 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(dec, val);
278 }
279
280 static inline void
vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self(VkBindBufferMemoryDeviceGroupInfo * val)281 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self(VkBindBufferMemoryDeviceGroupInfo *val)
282 {
283 /* skip val->sType */
284 /* skip val->pNext */
285 /* skip val->deviceIndexCount */
286 /* skip val->pDeviceIndices */
287 }
288
289 static inline void
vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle(VkBindBufferMemoryDeviceGroupInfo * val)290 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle(VkBindBufferMemoryDeviceGroupInfo *val)
291 {
292 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
293
294 do {
295 switch ((int32_t)pnext->sType) {
296 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
297 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self((VkBindBufferMemoryDeviceGroupInfo *)pnext);
298 break;
299 default:
300 /* ignore unknown/unsupported struct */
301 break;
302 }
303 pnext = pnext->pNext;
304 } while (pnext);
305 }
306
307 /* struct VkBindBufferMemoryInfo chain */
308
309 static inline void *
vn_decode_VkBindBufferMemoryInfo_pnext_temp(struct vn_cs_decoder * dec)310 vn_decode_VkBindBufferMemoryInfo_pnext_temp(struct vn_cs_decoder *dec)
311 {
312 VkBaseOutStructure *pnext;
313 VkStructureType stype;
314
315 if (!vn_decode_simple_pointer(dec))
316 return NULL;
317
318 vn_decode_VkStructureType(dec, &stype);
319 switch ((int32_t)stype) {
320 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
321 pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkBindBufferMemoryDeviceGroupInfo));
322 if (pnext) {
323 pnext->sType = stype;
324 pnext->pNext = vn_decode_VkBindBufferMemoryInfo_pnext_temp(dec);
325 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(dec, (VkBindBufferMemoryDeviceGroupInfo *)pnext);
326 }
327 break;
328 default:
329 /* unexpected struct */
330 pnext = NULL;
331 vn_cs_decoder_set_fatal(dec);
332 break;
333 }
334
335 return pnext;
336 }
337
338 static inline void
vn_decode_VkBindBufferMemoryInfo_self_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryInfo * val)339 vn_decode_VkBindBufferMemoryInfo_self_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryInfo *val)
340 {
341 /* skip val->{sType,pNext} */
342 vn_decode_VkBuffer_lookup(dec, &val->buffer);
343 vn_decode_VkDeviceMemory_lookup(dec, &val->memory);
344 vn_decode_VkDeviceSize(dec, &val->memoryOffset);
345 }
346
347 static inline void
vn_decode_VkBindBufferMemoryInfo_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryInfo * val)348 vn_decode_VkBindBufferMemoryInfo_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryInfo *val)
349 {
350 VkStructureType stype;
351 vn_decode_VkStructureType(dec, &stype);
352 if (stype != VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO)
353 vn_cs_decoder_set_fatal(dec);
354
355 val->sType = stype;
356 val->pNext = vn_decode_VkBindBufferMemoryInfo_pnext_temp(dec);
357 vn_decode_VkBindBufferMemoryInfo_self_temp(dec, val);
358 }
359
360 static inline void
vn_replace_VkBindBufferMemoryInfo_handle_self(VkBindBufferMemoryInfo * val)361 vn_replace_VkBindBufferMemoryInfo_handle_self(VkBindBufferMemoryInfo *val)
362 {
363 /* skip val->sType */
364 /* skip val->pNext */
365 vn_replace_VkBuffer_handle(&val->buffer);
366 vn_replace_VkDeviceMemory_handle(&val->memory);
367 /* skip val->memoryOffset */
368 }
369
370 static inline void
vn_replace_VkBindBufferMemoryInfo_handle(VkBindBufferMemoryInfo * val)371 vn_replace_VkBindBufferMemoryInfo_handle(VkBindBufferMemoryInfo *val)
372 {
373 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
374
375 do {
376 switch ((int32_t)pnext->sType) {
377 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:
378 vn_replace_VkBindBufferMemoryInfo_handle_self((VkBindBufferMemoryInfo *)pnext);
379 break;
380 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
381 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self((VkBindBufferMemoryDeviceGroupInfo *)pnext);
382 break;
383 default:
384 /* ignore unknown/unsupported struct */
385 break;
386 }
387 pnext = pnext->pNext;
388 } while (pnext);
389 }
390
391 /* struct VkBufferMemoryRequirementsInfo2 chain */
392
393 static inline void *
vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(struct vn_cs_decoder * dec)394 vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(struct vn_cs_decoder *dec)
395 {
396 /* no known/supported struct */
397 if (vn_decode_simple_pointer(dec))
398 vn_cs_decoder_set_fatal(dec);
399 return NULL;
400 }
401
402 static inline void
vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(struct vn_cs_decoder * dec,VkBufferMemoryRequirementsInfo2 * val)403 vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(struct vn_cs_decoder *dec, VkBufferMemoryRequirementsInfo2 *val)
404 {
405 /* skip val->{sType,pNext} */
406 vn_decode_VkBuffer_lookup(dec, &val->buffer);
407 }
408
409 static inline void
vn_decode_VkBufferMemoryRequirementsInfo2_temp(struct vn_cs_decoder * dec,VkBufferMemoryRequirementsInfo2 * val)410 vn_decode_VkBufferMemoryRequirementsInfo2_temp(struct vn_cs_decoder *dec, VkBufferMemoryRequirementsInfo2 *val)
411 {
412 VkStructureType stype;
413 vn_decode_VkStructureType(dec, &stype);
414 if (stype != VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2)
415 vn_cs_decoder_set_fatal(dec);
416
417 val->sType = stype;
418 val->pNext = vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(dec);
419 vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(dec, val);
420 }
421
422 static inline void
vn_replace_VkBufferMemoryRequirementsInfo2_handle_self(VkBufferMemoryRequirementsInfo2 * val)423 vn_replace_VkBufferMemoryRequirementsInfo2_handle_self(VkBufferMemoryRequirementsInfo2 *val)
424 {
425 /* skip val->sType */
426 /* skip val->pNext */
427 vn_replace_VkBuffer_handle(&val->buffer);
428 }
429
430 static inline void
vn_replace_VkBufferMemoryRequirementsInfo2_handle(VkBufferMemoryRequirementsInfo2 * val)431 vn_replace_VkBufferMemoryRequirementsInfo2_handle(VkBufferMemoryRequirementsInfo2 *val)
432 {
433 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
434
435 do {
436 switch ((int32_t)pnext->sType) {
437 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:
438 vn_replace_VkBufferMemoryRequirementsInfo2_handle_self((VkBufferMemoryRequirementsInfo2 *)pnext);
439 break;
440 default:
441 /* ignore unknown/unsupported struct */
442 break;
443 }
444 pnext = pnext->pNext;
445 } while (pnext);
446 }
447
448 /* struct VkDeviceBufferMemoryRequirements chain */
449
450 static inline void *
vn_decode_VkDeviceBufferMemoryRequirements_pnext_temp(struct vn_cs_decoder * dec)451 vn_decode_VkDeviceBufferMemoryRequirements_pnext_temp(struct vn_cs_decoder *dec)
452 {
453 /* no known/supported struct */
454 if (vn_decode_simple_pointer(dec))
455 vn_cs_decoder_set_fatal(dec);
456 return NULL;
457 }
458
459 static inline void
vn_decode_VkDeviceBufferMemoryRequirements_self_temp(struct vn_cs_decoder * dec,VkDeviceBufferMemoryRequirements * val)460 vn_decode_VkDeviceBufferMemoryRequirements_self_temp(struct vn_cs_decoder *dec, VkDeviceBufferMemoryRequirements *val)
461 {
462 /* skip val->{sType,pNext} */
463 if (vn_decode_simple_pointer(dec)) {
464 val->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCreateInfo));
465 if (!val->pCreateInfo) return;
466 vn_decode_VkBufferCreateInfo_temp(dec, (VkBufferCreateInfo *)val->pCreateInfo);
467 } else {
468 val->pCreateInfo = NULL;
469 vn_cs_decoder_set_fatal(dec);
470 }
471 }
472
473 static inline void
vn_decode_VkDeviceBufferMemoryRequirements_temp(struct vn_cs_decoder * dec,VkDeviceBufferMemoryRequirements * val)474 vn_decode_VkDeviceBufferMemoryRequirements_temp(struct vn_cs_decoder *dec, VkDeviceBufferMemoryRequirements *val)
475 {
476 VkStructureType stype;
477 vn_decode_VkStructureType(dec, &stype);
478 if (stype != VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)
479 vn_cs_decoder_set_fatal(dec);
480
481 val->sType = stype;
482 val->pNext = vn_decode_VkDeviceBufferMemoryRequirements_pnext_temp(dec);
483 vn_decode_VkDeviceBufferMemoryRequirements_self_temp(dec, val);
484 }
485
486 static inline void
vn_replace_VkDeviceBufferMemoryRequirements_handle_self(VkDeviceBufferMemoryRequirements * val)487 vn_replace_VkDeviceBufferMemoryRequirements_handle_self(VkDeviceBufferMemoryRequirements *val)
488 {
489 /* skip val->sType */
490 /* skip val->pNext */
491 if (val->pCreateInfo)
492 vn_replace_VkBufferCreateInfo_handle((VkBufferCreateInfo *)val->pCreateInfo);
493 }
494
495 static inline void
vn_replace_VkDeviceBufferMemoryRequirements_handle(VkDeviceBufferMemoryRequirements * val)496 vn_replace_VkDeviceBufferMemoryRequirements_handle(VkDeviceBufferMemoryRequirements *val)
497 {
498 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
499
500 do {
501 switch ((int32_t)pnext->sType) {
502 case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:
503 vn_replace_VkDeviceBufferMemoryRequirements_handle_self((VkDeviceBufferMemoryRequirements *)pnext);
504 break;
505 default:
506 /* ignore unknown/unsupported struct */
507 break;
508 }
509 pnext = pnext->pNext;
510 } while (pnext);
511 }
512
513 /* struct VkBufferDeviceAddressInfo chain */
514
515 static inline void *
vn_decode_VkBufferDeviceAddressInfo_pnext_temp(struct vn_cs_decoder * dec)516 vn_decode_VkBufferDeviceAddressInfo_pnext_temp(struct vn_cs_decoder *dec)
517 {
518 /* no known/supported struct */
519 if (vn_decode_simple_pointer(dec))
520 vn_cs_decoder_set_fatal(dec);
521 return NULL;
522 }
523
524 static inline void
vn_decode_VkBufferDeviceAddressInfo_self_temp(struct vn_cs_decoder * dec,VkBufferDeviceAddressInfo * val)525 vn_decode_VkBufferDeviceAddressInfo_self_temp(struct vn_cs_decoder *dec, VkBufferDeviceAddressInfo *val)
526 {
527 /* skip val->{sType,pNext} */
528 vn_decode_VkBuffer_lookup(dec, &val->buffer);
529 }
530
531 static inline void
vn_decode_VkBufferDeviceAddressInfo_temp(struct vn_cs_decoder * dec,VkBufferDeviceAddressInfo * val)532 vn_decode_VkBufferDeviceAddressInfo_temp(struct vn_cs_decoder *dec, VkBufferDeviceAddressInfo *val)
533 {
534 VkStructureType stype;
535 vn_decode_VkStructureType(dec, &stype);
536 if (stype != VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO)
537 vn_cs_decoder_set_fatal(dec);
538
539 val->sType = stype;
540 val->pNext = vn_decode_VkBufferDeviceAddressInfo_pnext_temp(dec);
541 vn_decode_VkBufferDeviceAddressInfo_self_temp(dec, val);
542 }
543
544 static inline void
vn_replace_VkBufferDeviceAddressInfo_handle_self(VkBufferDeviceAddressInfo * val)545 vn_replace_VkBufferDeviceAddressInfo_handle_self(VkBufferDeviceAddressInfo *val)
546 {
547 /* skip val->sType */
548 /* skip val->pNext */
549 vn_replace_VkBuffer_handle(&val->buffer);
550 }
551
552 static inline void
vn_replace_VkBufferDeviceAddressInfo_handle(VkBufferDeviceAddressInfo * val)553 vn_replace_VkBufferDeviceAddressInfo_handle(VkBufferDeviceAddressInfo *val)
554 {
555 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
556
557 do {
558 switch ((int32_t)pnext->sType) {
559 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:
560 vn_replace_VkBufferDeviceAddressInfo_handle_self((VkBufferDeviceAddressInfo *)pnext);
561 break;
562 default:
563 /* ignore unknown/unsupported struct */
564 break;
565 }
566 pnext = pnext->pNext;
567 } while (pnext);
568 }
569
vn_decode_vkGetBufferMemoryRequirements_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferMemoryRequirements * args)570 static inline void vn_decode_vkGetBufferMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferMemoryRequirements *args)
571 {
572 vn_decode_VkDevice_lookup(dec, &args->device);
573 vn_decode_VkBuffer_lookup(dec, &args->buffer);
574 if (vn_decode_simple_pointer(dec)) {
575 args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements));
576 if (!args->pMemoryRequirements) return;
577 vn_decode_VkMemoryRequirements_partial_temp(dec, args->pMemoryRequirements);
578 } else {
579 args->pMemoryRequirements = NULL;
580 vn_cs_decoder_set_fatal(dec);
581 }
582 }
583
vn_replace_vkGetBufferMemoryRequirements_args_handle(struct vn_command_vkGetBufferMemoryRequirements * args)584 static inline void vn_replace_vkGetBufferMemoryRequirements_args_handle(struct vn_command_vkGetBufferMemoryRequirements *args)
585 {
586 vn_replace_VkDevice_handle(&args->device);
587 vn_replace_VkBuffer_handle(&args->buffer);
588 /* skip args->pMemoryRequirements */
589 }
590
vn_encode_vkGetBufferMemoryRequirements_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferMemoryRequirements * args)591 static inline void vn_encode_vkGetBufferMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferMemoryRequirements *args)
592 {
593 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT});
594
595 /* skip args->device */
596 /* skip args->buffer */
597 if (vn_encode_simple_pointer(enc, args->pMemoryRequirements))
598 vn_encode_VkMemoryRequirements(enc, args->pMemoryRequirements);
599 }
600
vn_decode_vkBindBufferMemory_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkBindBufferMemory * args)601 static inline void vn_decode_vkBindBufferMemory_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBindBufferMemory *args)
602 {
603 vn_decode_VkDevice_lookup(dec, &args->device);
604 vn_decode_VkBuffer_lookup(dec, &args->buffer);
605 vn_decode_VkDeviceMemory_lookup(dec, &args->memory);
606 vn_decode_VkDeviceSize(dec, &args->memoryOffset);
607 }
608
vn_replace_vkBindBufferMemory_args_handle(struct vn_command_vkBindBufferMemory * args)609 static inline void vn_replace_vkBindBufferMemory_args_handle(struct vn_command_vkBindBufferMemory *args)
610 {
611 vn_replace_VkDevice_handle(&args->device);
612 vn_replace_VkBuffer_handle(&args->buffer);
613 vn_replace_VkDeviceMemory_handle(&args->memory);
614 /* skip args->memoryOffset */
615 }
616
vn_encode_vkBindBufferMemory_reply(struct vn_cs_encoder * enc,const struct vn_command_vkBindBufferMemory * args)617 static inline void vn_encode_vkBindBufferMemory_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBindBufferMemory *args)
618 {
619 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBindBufferMemory_EXT});
620
621 vn_encode_VkResult(enc, &args->ret);
622 /* skip args->device */
623 /* skip args->buffer */
624 /* skip args->memory */
625 /* skip args->memoryOffset */
626 }
627
vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateBuffer * args)628 static inline void vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateBuffer *args)
629 {
630 vn_decode_VkDevice_lookup(dec, &args->device);
631 if (vn_decode_simple_pointer(dec)) {
632 args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
633 if (!args->pCreateInfo) return;
634 vn_decode_VkBufferCreateInfo_temp(dec, (VkBufferCreateInfo *)args->pCreateInfo);
635 } else {
636 args->pCreateInfo = NULL;
637 vn_cs_decoder_set_fatal(dec);
638 }
639 if (vn_decode_simple_pointer(dec)) {
640 vn_cs_decoder_set_fatal(dec);
641 } else {
642 args->pAllocator = NULL;
643 }
644 if (vn_decode_simple_pointer(dec)) {
645 args->pBuffer = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffer));
646 if (!args->pBuffer) return;
647 vn_decode_VkBuffer(dec, args->pBuffer);
648 } else {
649 args->pBuffer = NULL;
650 vn_cs_decoder_set_fatal(dec);
651 }
652 }
653
vn_replace_vkCreateBuffer_args_handle(struct vn_command_vkCreateBuffer * args)654 static inline void vn_replace_vkCreateBuffer_args_handle(struct vn_command_vkCreateBuffer *args)
655 {
656 vn_replace_VkDevice_handle(&args->device);
657 if (args->pCreateInfo)
658 vn_replace_VkBufferCreateInfo_handle((VkBufferCreateInfo *)args->pCreateInfo);
659 /* skip args->pAllocator */
660 /* skip args->pBuffer */
661 }
662
vn_encode_vkCreateBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateBuffer * args)663 static inline void vn_encode_vkCreateBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateBuffer *args)
664 {
665 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateBuffer_EXT});
666
667 vn_encode_VkResult(enc, &args->ret);
668 /* skip args->device */
669 /* skip args->pCreateInfo */
670 /* skip args->pAllocator */
671 if (vn_encode_simple_pointer(enc, args->pBuffer))
672 vn_encode_VkBuffer(enc, args->pBuffer);
673 }
674
vn_decode_vkDestroyBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyBuffer * args)675 static inline void vn_decode_vkDestroyBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyBuffer *args)
676 {
677 vn_decode_VkDevice_lookup(dec, &args->device);
678 vn_decode_VkBuffer_lookup(dec, &args->buffer);
679 if (vn_decode_simple_pointer(dec)) {
680 vn_cs_decoder_set_fatal(dec);
681 } else {
682 args->pAllocator = NULL;
683 }
684 }
685
vn_replace_vkDestroyBuffer_args_handle(struct vn_command_vkDestroyBuffer * args)686 static inline void vn_replace_vkDestroyBuffer_args_handle(struct vn_command_vkDestroyBuffer *args)
687 {
688 vn_replace_VkDevice_handle(&args->device);
689 vn_replace_VkBuffer_handle(&args->buffer);
690 /* skip args->pAllocator */
691 }
692
vn_encode_vkDestroyBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyBuffer * args)693 static inline void vn_encode_vkDestroyBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyBuffer *args)
694 {
695 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyBuffer_EXT});
696
697 /* skip args->device */
698 /* skip args->buffer */
699 /* skip args->pAllocator */
700 }
701
vn_decode_vkBindBufferMemory2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkBindBufferMemory2 * args)702 static inline void vn_decode_vkBindBufferMemory2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBindBufferMemory2 *args)
703 {
704 vn_decode_VkDevice_lookup(dec, &args->device);
705 vn_decode_uint32_t(dec, &args->bindInfoCount);
706 if (vn_peek_array_size(dec)) {
707 const uint32_t iter_count = vn_decode_array_size(dec, args->bindInfoCount);
708 args->pBindInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBindInfos) * iter_count);
709 if (!args->pBindInfos) return;
710 for (uint32_t i = 0; i < iter_count; i++)
711 vn_decode_VkBindBufferMemoryInfo_temp(dec, &((VkBindBufferMemoryInfo *)args->pBindInfos)[i]);
712 } else {
713 vn_decode_array_size(dec, args->bindInfoCount);
714 args->pBindInfos = NULL;
715 }
716 }
717
vn_replace_vkBindBufferMemory2_args_handle(struct vn_command_vkBindBufferMemory2 * args)718 static inline void vn_replace_vkBindBufferMemory2_args_handle(struct vn_command_vkBindBufferMemory2 *args)
719 {
720 vn_replace_VkDevice_handle(&args->device);
721 /* skip args->bindInfoCount */
722 if (args->pBindInfos) {
723 for (uint32_t i = 0; i < args->bindInfoCount; i++)
724 vn_replace_VkBindBufferMemoryInfo_handle(&((VkBindBufferMemoryInfo *)args->pBindInfos)[i]);
725 }
726 }
727
vn_encode_vkBindBufferMemory2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkBindBufferMemory2 * args)728 static inline void vn_encode_vkBindBufferMemory2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBindBufferMemory2 *args)
729 {
730 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBindBufferMemory2_EXT});
731
732 vn_encode_VkResult(enc, &args->ret);
733 /* skip args->device */
734 /* skip args->bindInfoCount */
735 /* skip args->pBindInfos */
736 }
737
vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferMemoryRequirements2 * args)738 static inline void vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferMemoryRequirements2 *args)
739 {
740 vn_decode_VkDevice_lookup(dec, &args->device);
741 if (vn_decode_simple_pointer(dec)) {
742 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
743 if (!args->pInfo) return;
744 vn_decode_VkBufferMemoryRequirementsInfo2_temp(dec, (VkBufferMemoryRequirementsInfo2 *)args->pInfo);
745 } else {
746 args->pInfo = NULL;
747 vn_cs_decoder_set_fatal(dec);
748 }
749 if (vn_decode_simple_pointer(dec)) {
750 args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements));
751 if (!args->pMemoryRequirements) return;
752 vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements);
753 } else {
754 args->pMemoryRequirements = NULL;
755 vn_cs_decoder_set_fatal(dec);
756 }
757 }
758
vn_replace_vkGetBufferMemoryRequirements2_args_handle(struct vn_command_vkGetBufferMemoryRequirements2 * args)759 static inline void vn_replace_vkGetBufferMemoryRequirements2_args_handle(struct vn_command_vkGetBufferMemoryRequirements2 *args)
760 {
761 vn_replace_VkDevice_handle(&args->device);
762 if (args->pInfo)
763 vn_replace_VkBufferMemoryRequirementsInfo2_handle((VkBufferMemoryRequirementsInfo2 *)args->pInfo);
764 /* skip args->pMemoryRequirements */
765 }
766
vn_encode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferMemoryRequirements2 * args)767 static inline void vn_encode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferMemoryRequirements2 *args)
768 {
769 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT});
770
771 /* skip args->device */
772 /* skip args->pInfo */
773 if (vn_encode_simple_pointer(enc, args->pMemoryRequirements))
774 vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements);
775 }
776
vn_decode_vkGetDeviceBufferMemoryRequirements_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetDeviceBufferMemoryRequirements * args)777 static inline void vn_decode_vkGetDeviceBufferMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceBufferMemoryRequirements *args)
778 {
779 vn_decode_VkDevice_lookup(dec, &args->device);
780 if (vn_decode_simple_pointer(dec)) {
781 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
782 if (!args->pInfo) return;
783 vn_decode_VkDeviceBufferMemoryRequirements_temp(dec, (VkDeviceBufferMemoryRequirements *)args->pInfo);
784 } else {
785 args->pInfo = NULL;
786 vn_cs_decoder_set_fatal(dec);
787 }
788 if (vn_decode_simple_pointer(dec)) {
789 args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements));
790 if (!args->pMemoryRequirements) return;
791 vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements);
792 } else {
793 args->pMemoryRequirements = NULL;
794 vn_cs_decoder_set_fatal(dec);
795 }
796 }
797
vn_replace_vkGetDeviceBufferMemoryRequirements_args_handle(struct vn_command_vkGetDeviceBufferMemoryRequirements * args)798 static inline void vn_replace_vkGetDeviceBufferMemoryRequirements_args_handle(struct vn_command_vkGetDeviceBufferMemoryRequirements *args)
799 {
800 vn_replace_VkDevice_handle(&args->device);
801 if (args->pInfo)
802 vn_replace_VkDeviceBufferMemoryRequirements_handle((VkDeviceBufferMemoryRequirements *)args->pInfo);
803 /* skip args->pMemoryRequirements */
804 }
805
vn_encode_vkGetDeviceBufferMemoryRequirements_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetDeviceBufferMemoryRequirements * args)806 static inline void vn_encode_vkGetDeviceBufferMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceBufferMemoryRequirements *args)
807 {
808 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT});
809
810 /* skip args->device */
811 /* skip args->pInfo */
812 if (vn_encode_simple_pointer(enc, args->pMemoryRequirements))
813 vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements);
814 }
815
vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferOpaqueCaptureAddress * args)816 static inline void vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
817 {
818 vn_decode_VkDevice_lookup(dec, &args->device);
819 if (vn_decode_simple_pointer(dec)) {
820 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
821 if (!args->pInfo) return;
822 vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo);
823 } else {
824 args->pInfo = NULL;
825 vn_cs_decoder_set_fatal(dec);
826 }
827 }
828
vn_replace_vkGetBufferOpaqueCaptureAddress_args_handle(struct vn_command_vkGetBufferOpaqueCaptureAddress * args)829 static inline void vn_replace_vkGetBufferOpaqueCaptureAddress_args_handle(struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
830 {
831 vn_replace_VkDevice_handle(&args->device);
832 if (args->pInfo)
833 vn_replace_VkBufferDeviceAddressInfo_handle((VkBufferDeviceAddressInfo *)args->pInfo);
834 }
835
vn_encode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferOpaqueCaptureAddress * args)836 static inline void vn_encode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
837 {
838 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT});
839
840 vn_encode_uint64_t(enc, &args->ret);
841 /* skip args->device */
842 /* skip args->pInfo */
843 }
844
vn_decode_vkGetBufferDeviceAddress_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferDeviceAddress * args)845 static inline void vn_decode_vkGetBufferDeviceAddress_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferDeviceAddress *args)
846 {
847 vn_decode_VkDevice_lookup(dec, &args->device);
848 if (vn_decode_simple_pointer(dec)) {
849 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
850 if (!args->pInfo) return;
851 vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo);
852 } else {
853 args->pInfo = NULL;
854 vn_cs_decoder_set_fatal(dec);
855 }
856 }
857
vn_replace_vkGetBufferDeviceAddress_args_handle(struct vn_command_vkGetBufferDeviceAddress * args)858 static inline void vn_replace_vkGetBufferDeviceAddress_args_handle(struct vn_command_vkGetBufferDeviceAddress *args)
859 {
860 vn_replace_VkDevice_handle(&args->device);
861 if (args->pInfo)
862 vn_replace_VkBufferDeviceAddressInfo_handle((VkBufferDeviceAddressInfo *)args->pInfo);
863 }
864
vn_encode_vkGetBufferDeviceAddress_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferDeviceAddress * args)865 static inline void vn_encode_vkGetBufferDeviceAddress_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferDeviceAddress *args)
866 {
867 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT});
868
869 vn_encode_VkDeviceAddress(enc, &args->ret);
870 /* skip args->device */
871 /* skip args->pInfo */
872 }
873
vn_dispatch_vkGetBufferMemoryRequirements(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)874 static inline void vn_dispatch_vkGetBufferMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
875 {
876 struct vn_command_vkGetBufferMemoryRequirements args;
877
878 if (!ctx->dispatch_vkGetBufferMemoryRequirements) {
879 vn_cs_decoder_set_fatal(ctx->decoder);
880 return;
881 }
882
883 vn_decode_vkGetBufferMemoryRequirements_args_temp(ctx->decoder, &args);
884 if (!args.device) {
885 vn_cs_decoder_set_fatal(ctx->decoder);
886 return;
887 }
888
889 if (!vn_cs_decoder_get_fatal(ctx->decoder))
890 ctx->dispatch_vkGetBufferMemoryRequirements(ctx, &args);
891
892
893 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
894 vn_encode_vkGetBufferMemoryRequirements_reply(ctx->encoder, &args);
895
896 vn_cs_decoder_reset_temp_pool(ctx->decoder);
897 }
898
vn_dispatch_vkBindBufferMemory(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)899 static inline void vn_dispatch_vkBindBufferMemory(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
900 {
901 struct vn_command_vkBindBufferMemory args;
902
903 if (!ctx->dispatch_vkBindBufferMemory) {
904 vn_cs_decoder_set_fatal(ctx->decoder);
905 return;
906 }
907
908 vn_decode_vkBindBufferMemory_args_temp(ctx->decoder, &args);
909 if (!args.device) {
910 vn_cs_decoder_set_fatal(ctx->decoder);
911 return;
912 }
913
914 if (!vn_cs_decoder_get_fatal(ctx->decoder))
915 ctx->dispatch_vkBindBufferMemory(ctx, &args);
916
917 #ifdef DEBUG
918 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
919 vn_dispatch_debug_log(ctx, "vkBindBufferMemory returned %d", args.ret);
920 #endif
921
922 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
923 vn_encode_vkBindBufferMemory_reply(ctx->encoder, &args);
924
925 vn_cs_decoder_reset_temp_pool(ctx->decoder);
926 }
927
vn_dispatch_vkCreateBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)928 static inline void vn_dispatch_vkCreateBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
929 {
930 struct vn_command_vkCreateBuffer args;
931
932 if (!ctx->dispatch_vkCreateBuffer) {
933 vn_cs_decoder_set_fatal(ctx->decoder);
934 return;
935 }
936
937 vn_decode_vkCreateBuffer_args_temp(ctx->decoder, &args);
938 if (!args.device) {
939 vn_cs_decoder_set_fatal(ctx->decoder);
940 return;
941 }
942
943 if (!vn_cs_decoder_get_fatal(ctx->decoder))
944 ctx->dispatch_vkCreateBuffer(ctx, &args);
945
946 #ifdef DEBUG
947 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
948 vn_dispatch_debug_log(ctx, "vkCreateBuffer returned %d", args.ret);
949 #endif
950
951 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
952 vn_encode_vkCreateBuffer_reply(ctx->encoder, &args);
953
954 vn_cs_decoder_reset_temp_pool(ctx->decoder);
955 }
956
vn_dispatch_vkDestroyBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)957 static inline void vn_dispatch_vkDestroyBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
958 {
959 struct vn_command_vkDestroyBuffer args;
960
961 if (!ctx->dispatch_vkDestroyBuffer) {
962 vn_cs_decoder_set_fatal(ctx->decoder);
963 return;
964 }
965
966 vn_decode_vkDestroyBuffer_args_temp(ctx->decoder, &args);
967 if (!args.device) {
968 vn_cs_decoder_set_fatal(ctx->decoder);
969 return;
970 }
971
972 if (!vn_cs_decoder_get_fatal(ctx->decoder))
973 ctx->dispatch_vkDestroyBuffer(ctx, &args);
974
975
976 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
977 vn_encode_vkDestroyBuffer_reply(ctx->encoder, &args);
978
979 vn_cs_decoder_reset_temp_pool(ctx->decoder);
980 }
981
vn_dispatch_vkBindBufferMemory2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)982 static inline void vn_dispatch_vkBindBufferMemory2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
983 {
984 struct vn_command_vkBindBufferMemory2 args;
985
986 if (!ctx->dispatch_vkBindBufferMemory2) {
987 vn_cs_decoder_set_fatal(ctx->decoder);
988 return;
989 }
990
991 vn_decode_vkBindBufferMemory2_args_temp(ctx->decoder, &args);
992 if (!args.device) {
993 vn_cs_decoder_set_fatal(ctx->decoder);
994 return;
995 }
996
997 if (!vn_cs_decoder_get_fatal(ctx->decoder))
998 ctx->dispatch_vkBindBufferMemory2(ctx, &args);
999
1000 #ifdef DEBUG
1001 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
1002 vn_dispatch_debug_log(ctx, "vkBindBufferMemory2 returned %d", args.ret);
1003 #endif
1004
1005 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1006 vn_encode_vkBindBufferMemory2_reply(ctx->encoder, &args);
1007
1008 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1009 }
1010
vn_dispatch_vkGetBufferMemoryRequirements2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1011 static inline void vn_dispatch_vkGetBufferMemoryRequirements2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1012 {
1013 struct vn_command_vkGetBufferMemoryRequirements2 args;
1014
1015 if (!ctx->dispatch_vkGetBufferMemoryRequirements2) {
1016 vn_cs_decoder_set_fatal(ctx->decoder);
1017 return;
1018 }
1019
1020 vn_decode_vkGetBufferMemoryRequirements2_args_temp(ctx->decoder, &args);
1021 if (!args.device) {
1022 vn_cs_decoder_set_fatal(ctx->decoder);
1023 return;
1024 }
1025
1026 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1027 ctx->dispatch_vkGetBufferMemoryRequirements2(ctx, &args);
1028
1029
1030 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1031 vn_encode_vkGetBufferMemoryRequirements2_reply(ctx->encoder, &args);
1032
1033 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1034 }
1035
vn_dispatch_vkGetDeviceBufferMemoryRequirements(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1036 static inline void vn_dispatch_vkGetDeviceBufferMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1037 {
1038 struct vn_command_vkGetDeviceBufferMemoryRequirements args;
1039
1040 if (!ctx->dispatch_vkGetDeviceBufferMemoryRequirements) {
1041 vn_cs_decoder_set_fatal(ctx->decoder);
1042 return;
1043 }
1044
1045 vn_decode_vkGetDeviceBufferMemoryRequirements_args_temp(ctx->decoder, &args);
1046 if (!args.device) {
1047 vn_cs_decoder_set_fatal(ctx->decoder);
1048 return;
1049 }
1050
1051 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1052 ctx->dispatch_vkGetDeviceBufferMemoryRequirements(ctx, &args);
1053
1054
1055 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1056 vn_encode_vkGetDeviceBufferMemoryRequirements_reply(ctx->encoder, &args);
1057
1058 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1059 }
1060
vn_dispatch_vkGetBufferOpaqueCaptureAddress(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1061 static inline void vn_dispatch_vkGetBufferOpaqueCaptureAddress(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1062 {
1063 struct vn_command_vkGetBufferOpaqueCaptureAddress args;
1064
1065 if (!ctx->dispatch_vkGetBufferOpaqueCaptureAddress) {
1066 vn_cs_decoder_set_fatal(ctx->decoder);
1067 return;
1068 }
1069
1070 vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(ctx->decoder, &args);
1071 if (!args.device) {
1072 vn_cs_decoder_set_fatal(ctx->decoder);
1073 return;
1074 }
1075
1076 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1077 ctx->dispatch_vkGetBufferOpaqueCaptureAddress(ctx, &args);
1078
1079
1080 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1081 vn_encode_vkGetBufferOpaqueCaptureAddress_reply(ctx->encoder, &args);
1082
1083 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1084 }
1085
vn_dispatch_vkGetBufferDeviceAddress(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1086 static inline void vn_dispatch_vkGetBufferDeviceAddress(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1087 {
1088 struct vn_command_vkGetBufferDeviceAddress args;
1089
1090 if (!ctx->dispatch_vkGetBufferDeviceAddress) {
1091 vn_cs_decoder_set_fatal(ctx->decoder);
1092 return;
1093 }
1094
1095 vn_decode_vkGetBufferDeviceAddress_args_temp(ctx->decoder, &args);
1096 if (!args.device) {
1097 vn_cs_decoder_set_fatal(ctx->decoder);
1098 return;
1099 }
1100
1101 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1102 ctx->dispatch_vkGetBufferDeviceAddress(ctx, &args);
1103
1104
1105 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1106 vn_encode_vkGetBufferDeviceAddress_reply(ctx->encoder, &args);
1107
1108 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1109 }
1110
1111 #pragma GCC diagnostic pop
1112
1113 #endif /* VN_PROTOCOL_RENDERER_BUFFER_H */
1114