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_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder * enc,const void * val)243 vn_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder *enc, const void *val)
244 {
245 /* no known/supported struct */
246 vn_encode_simple_pointer(enc, NULL);
247 }
248
249 static inline void
vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(struct vn_cs_encoder * enc,const VkBindBufferMemoryDeviceGroupInfo * val)250 vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(struct vn_cs_encoder *enc, const VkBindBufferMemoryDeviceGroupInfo *val)
251 {
252 /* skip val->{sType,pNext} */
253 vn_encode_uint32_t(enc, &val->deviceIndexCount);
254 if (val->pDeviceIndices) {
255 vn_encode_array_size(enc, val->deviceIndexCount);
256 vn_encode_uint32_t_array(enc, val->pDeviceIndices, val->deviceIndexCount);
257 } else {
258 vn_encode_array_size(enc, 0);
259 }
260 }
261
262 static inline void
vn_encode_VkBindBufferMemoryDeviceGroupInfo(struct vn_cs_encoder * enc,const VkBindBufferMemoryDeviceGroupInfo * val)263 vn_encode_VkBindBufferMemoryDeviceGroupInfo(struct vn_cs_encoder *enc, const VkBindBufferMemoryDeviceGroupInfo *val)
264 {
265 assert(val->sType == VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO);
266 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO });
267 vn_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(enc, val->pNext);
268 vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(enc, val);
269 }
270
271 static inline void *
vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(struct vn_cs_decoder * dec)272 vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(struct vn_cs_decoder *dec)
273 {
274 /* no known/supported struct */
275 if (vn_decode_simple_pointer(dec))
276 vn_cs_decoder_set_fatal(dec);
277 return NULL;
278 }
279
280 static inline void
vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryDeviceGroupInfo * val)281 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryDeviceGroupInfo *val)
282 {
283 /* skip val->{sType,pNext} */
284 vn_decode_uint32_t(dec, &val->deviceIndexCount);
285 if (vn_peek_array_size(dec)) {
286 const size_t array_size = vn_decode_array_size(dec, val->deviceIndexCount);
287 val->pDeviceIndices = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDeviceIndices) * array_size);
288 if (!val->pDeviceIndices) return;
289 vn_decode_uint32_t_array(dec, (uint32_t *)val->pDeviceIndices, array_size);
290 } else {
291 vn_decode_array_size(dec, val->deviceIndexCount);
292 val->pDeviceIndices = NULL;
293 }
294 }
295
296 static inline void
vn_decode_VkBindBufferMemoryDeviceGroupInfo_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryDeviceGroupInfo * val)297 vn_decode_VkBindBufferMemoryDeviceGroupInfo_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryDeviceGroupInfo *val)
298 {
299 VkStructureType stype;
300 vn_decode_VkStructureType(dec, &stype);
301 if (stype != VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO)
302 vn_cs_decoder_set_fatal(dec);
303
304 val->sType = stype;
305 val->pNext = vn_decode_VkBindBufferMemoryDeviceGroupInfo_pnext_temp(dec);
306 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(dec, val);
307 }
308
309 static inline void
vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self(VkBindBufferMemoryDeviceGroupInfo * val)310 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self(VkBindBufferMemoryDeviceGroupInfo *val)
311 {
312 /* skip val->sType */
313 /* skip val->pNext */
314 /* skip val->deviceIndexCount */
315 /* skip val->pDeviceIndices */
316 }
317
318 static inline void
vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle(VkBindBufferMemoryDeviceGroupInfo * val)319 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle(VkBindBufferMemoryDeviceGroupInfo *val)
320 {
321 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
322
323 do {
324 switch ((int32_t)pnext->sType) {
325 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
326 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self((VkBindBufferMemoryDeviceGroupInfo *)pnext);
327 break;
328 default:
329 /* ignore unknown/unsupported struct */
330 break;
331 }
332 pnext = pnext->pNext;
333 } while (pnext);
334 }
335
336 /* struct VkBindBufferMemoryInfo chain */
337
338 static inline void
vn_encode_VkBindBufferMemoryInfo_pnext(struct vn_cs_encoder * enc,const void * val)339 vn_encode_VkBindBufferMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val)
340 {
341 const VkBaseInStructure *pnext = val;
342
343 while (pnext) {
344 switch ((int32_t)pnext->sType) {
345 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
346 vn_encode_simple_pointer(enc, pnext);
347 vn_encode_VkStructureType(enc, &pnext->sType);
348 vn_encode_VkBindBufferMemoryInfo_pnext(enc, pnext->pNext);
349 vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(enc, (const VkBindBufferMemoryDeviceGroupInfo *)pnext);
350 return;
351 default:
352 /* ignore unknown/unsupported struct */
353 break;
354 }
355 pnext = pnext->pNext;
356 }
357
358 vn_encode_simple_pointer(enc, NULL);
359 }
360
361 static inline void
vn_encode_VkBindBufferMemoryInfo_self(struct vn_cs_encoder * enc,const VkBindBufferMemoryInfo * val)362 vn_encode_VkBindBufferMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindBufferMemoryInfo *val)
363 {
364 /* skip val->{sType,pNext} */
365 vn_encode_VkBuffer(enc, &val->buffer);
366 vn_encode_VkDeviceMemory(enc, &val->memory);
367 vn_encode_VkDeviceSize(enc, &val->memoryOffset);
368 }
369
370 static inline void
vn_encode_VkBindBufferMemoryInfo(struct vn_cs_encoder * enc,const VkBindBufferMemoryInfo * val)371 vn_encode_VkBindBufferMemoryInfo(struct vn_cs_encoder *enc, const VkBindBufferMemoryInfo *val)
372 {
373 assert(val->sType == VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO);
374 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO });
375 vn_encode_VkBindBufferMemoryInfo_pnext(enc, val->pNext);
376 vn_encode_VkBindBufferMemoryInfo_self(enc, val);
377 }
378
379 static inline void *
vn_decode_VkBindBufferMemoryInfo_pnext_temp(struct vn_cs_decoder * dec)380 vn_decode_VkBindBufferMemoryInfo_pnext_temp(struct vn_cs_decoder *dec)
381 {
382 VkBaseOutStructure *pnext;
383 VkStructureType stype;
384
385 if (!vn_decode_simple_pointer(dec))
386 return NULL;
387
388 vn_decode_VkStructureType(dec, &stype);
389 switch ((int32_t)stype) {
390 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
391 pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkBindBufferMemoryDeviceGroupInfo));
392 if (pnext) {
393 pnext->sType = stype;
394 pnext->pNext = vn_decode_VkBindBufferMemoryInfo_pnext_temp(dec);
395 vn_decode_VkBindBufferMemoryDeviceGroupInfo_self_temp(dec, (VkBindBufferMemoryDeviceGroupInfo *)pnext);
396 }
397 break;
398 default:
399 /* unexpected struct */
400 pnext = NULL;
401 vn_cs_decoder_set_fatal(dec);
402 break;
403 }
404
405 return pnext;
406 }
407
408 static inline void
vn_decode_VkBindBufferMemoryInfo_self_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryInfo * val)409 vn_decode_VkBindBufferMemoryInfo_self_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryInfo *val)
410 {
411 /* skip val->{sType,pNext} */
412 vn_decode_VkBuffer_lookup(dec, &val->buffer);
413 vn_decode_VkDeviceMemory_lookup(dec, &val->memory);
414 vn_decode_VkDeviceSize(dec, &val->memoryOffset);
415 }
416
417 static inline void
vn_decode_VkBindBufferMemoryInfo_temp(struct vn_cs_decoder * dec,VkBindBufferMemoryInfo * val)418 vn_decode_VkBindBufferMemoryInfo_temp(struct vn_cs_decoder *dec, VkBindBufferMemoryInfo *val)
419 {
420 VkStructureType stype;
421 vn_decode_VkStructureType(dec, &stype);
422 if (stype != VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO)
423 vn_cs_decoder_set_fatal(dec);
424
425 val->sType = stype;
426 val->pNext = vn_decode_VkBindBufferMemoryInfo_pnext_temp(dec);
427 vn_decode_VkBindBufferMemoryInfo_self_temp(dec, val);
428 }
429
430 static inline void
vn_replace_VkBindBufferMemoryInfo_handle_self(VkBindBufferMemoryInfo * val)431 vn_replace_VkBindBufferMemoryInfo_handle_self(VkBindBufferMemoryInfo *val)
432 {
433 /* skip val->sType */
434 /* skip val->pNext */
435 vn_replace_VkBuffer_handle(&val->buffer);
436 vn_replace_VkDeviceMemory_handle(&val->memory);
437 /* skip val->memoryOffset */
438 }
439
440 static inline void
vn_replace_VkBindBufferMemoryInfo_handle(VkBindBufferMemoryInfo * val)441 vn_replace_VkBindBufferMemoryInfo_handle(VkBindBufferMemoryInfo *val)
442 {
443 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
444
445 do {
446 switch ((int32_t)pnext->sType) {
447 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:
448 vn_replace_VkBindBufferMemoryInfo_handle_self((VkBindBufferMemoryInfo *)pnext);
449 break;
450 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
451 vn_replace_VkBindBufferMemoryDeviceGroupInfo_handle_self((VkBindBufferMemoryDeviceGroupInfo *)pnext);
452 break;
453 default:
454 /* ignore unknown/unsupported struct */
455 break;
456 }
457 pnext = pnext->pNext;
458 } while (pnext);
459 }
460
461 /* struct VkBufferMemoryRequirementsInfo2 chain */
462
463 static inline void *
vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(struct vn_cs_decoder * dec)464 vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(struct vn_cs_decoder *dec)
465 {
466 /* no known/supported struct */
467 if (vn_decode_simple_pointer(dec))
468 vn_cs_decoder_set_fatal(dec);
469 return NULL;
470 }
471
472 static inline void
vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(struct vn_cs_decoder * dec,VkBufferMemoryRequirementsInfo2 * val)473 vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(struct vn_cs_decoder *dec, VkBufferMemoryRequirementsInfo2 *val)
474 {
475 /* skip val->{sType,pNext} */
476 vn_decode_VkBuffer_lookup(dec, &val->buffer);
477 }
478
479 static inline void
vn_decode_VkBufferMemoryRequirementsInfo2_temp(struct vn_cs_decoder * dec,VkBufferMemoryRequirementsInfo2 * val)480 vn_decode_VkBufferMemoryRequirementsInfo2_temp(struct vn_cs_decoder *dec, VkBufferMemoryRequirementsInfo2 *val)
481 {
482 VkStructureType stype;
483 vn_decode_VkStructureType(dec, &stype);
484 if (stype != VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2)
485 vn_cs_decoder_set_fatal(dec);
486
487 val->sType = stype;
488 val->pNext = vn_decode_VkBufferMemoryRequirementsInfo2_pnext_temp(dec);
489 vn_decode_VkBufferMemoryRequirementsInfo2_self_temp(dec, val);
490 }
491
492 static inline void
vn_replace_VkBufferMemoryRequirementsInfo2_handle_self(VkBufferMemoryRequirementsInfo2 * val)493 vn_replace_VkBufferMemoryRequirementsInfo2_handle_self(VkBufferMemoryRequirementsInfo2 *val)
494 {
495 /* skip val->sType */
496 /* skip val->pNext */
497 vn_replace_VkBuffer_handle(&val->buffer);
498 }
499
500 static inline void
vn_replace_VkBufferMemoryRequirementsInfo2_handle(VkBufferMemoryRequirementsInfo2 * val)501 vn_replace_VkBufferMemoryRequirementsInfo2_handle(VkBufferMemoryRequirementsInfo2 *val)
502 {
503 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
504
505 do {
506 switch ((int32_t)pnext->sType) {
507 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:
508 vn_replace_VkBufferMemoryRequirementsInfo2_handle_self((VkBufferMemoryRequirementsInfo2 *)pnext);
509 break;
510 default:
511 /* ignore unknown/unsupported struct */
512 break;
513 }
514 pnext = pnext->pNext;
515 } while (pnext);
516 }
517
518 /* struct VkBufferDeviceAddressInfo chain */
519
520 static inline void
vn_encode_VkBufferDeviceAddressInfo_pnext(struct vn_cs_encoder * enc,const void * val)521 vn_encode_VkBufferDeviceAddressInfo_pnext(struct vn_cs_encoder *enc, const void *val)
522 {
523 /* no known/supported struct */
524 vn_encode_simple_pointer(enc, NULL);
525 }
526
527 static inline void
vn_encode_VkBufferDeviceAddressInfo_self(struct vn_cs_encoder * enc,const VkBufferDeviceAddressInfo * val)528 vn_encode_VkBufferDeviceAddressInfo_self(struct vn_cs_encoder *enc, const VkBufferDeviceAddressInfo *val)
529 {
530 /* skip val->{sType,pNext} */
531 vn_encode_VkBuffer(enc, &val->buffer);
532 }
533
534 static inline void
vn_encode_VkBufferDeviceAddressInfo(struct vn_cs_encoder * enc,const VkBufferDeviceAddressInfo * val)535 vn_encode_VkBufferDeviceAddressInfo(struct vn_cs_encoder *enc, const VkBufferDeviceAddressInfo *val)
536 {
537 assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO);
538 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO });
539 vn_encode_VkBufferDeviceAddressInfo_pnext(enc, val->pNext);
540 vn_encode_VkBufferDeviceAddressInfo_self(enc, val);
541 }
542
543 static inline void *
vn_decode_VkBufferDeviceAddressInfo_pnext_temp(struct vn_cs_decoder * dec)544 vn_decode_VkBufferDeviceAddressInfo_pnext_temp(struct vn_cs_decoder *dec)
545 {
546 /* no known/supported struct */
547 if (vn_decode_simple_pointer(dec))
548 vn_cs_decoder_set_fatal(dec);
549 return NULL;
550 }
551
552 static inline void
vn_decode_VkBufferDeviceAddressInfo_self_temp(struct vn_cs_decoder * dec,VkBufferDeviceAddressInfo * val)553 vn_decode_VkBufferDeviceAddressInfo_self_temp(struct vn_cs_decoder *dec, VkBufferDeviceAddressInfo *val)
554 {
555 /* skip val->{sType,pNext} */
556 vn_decode_VkBuffer_lookup(dec, &val->buffer);
557 }
558
559 static inline void
vn_decode_VkBufferDeviceAddressInfo_temp(struct vn_cs_decoder * dec,VkBufferDeviceAddressInfo * val)560 vn_decode_VkBufferDeviceAddressInfo_temp(struct vn_cs_decoder *dec, VkBufferDeviceAddressInfo *val)
561 {
562 VkStructureType stype;
563 vn_decode_VkStructureType(dec, &stype);
564 if (stype != VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO)
565 vn_cs_decoder_set_fatal(dec);
566
567 val->sType = stype;
568 val->pNext = vn_decode_VkBufferDeviceAddressInfo_pnext_temp(dec);
569 vn_decode_VkBufferDeviceAddressInfo_self_temp(dec, val);
570 }
571
572 static inline void
vn_replace_VkBufferDeviceAddressInfo_handle_self(VkBufferDeviceAddressInfo * val)573 vn_replace_VkBufferDeviceAddressInfo_handle_self(VkBufferDeviceAddressInfo *val)
574 {
575 /* skip val->sType */
576 /* skip val->pNext */
577 vn_replace_VkBuffer_handle(&val->buffer);
578 }
579
580 static inline void
vn_replace_VkBufferDeviceAddressInfo_handle(VkBufferDeviceAddressInfo * val)581 vn_replace_VkBufferDeviceAddressInfo_handle(VkBufferDeviceAddressInfo *val)
582 {
583 struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
584
585 do {
586 switch ((int32_t)pnext->sType) {
587 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:
588 vn_replace_VkBufferDeviceAddressInfo_handle_self((VkBufferDeviceAddressInfo *)pnext);
589 break;
590 default:
591 /* ignore unknown/unsupported struct */
592 break;
593 }
594 pnext = pnext->pNext;
595 } while (pnext);
596 }
597
vn_decode_vkGetBufferMemoryRequirements_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferMemoryRequirements * args)598 static inline void vn_decode_vkGetBufferMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferMemoryRequirements *args)
599 {
600 vn_decode_VkDevice_lookup(dec, &args->device);
601 vn_decode_VkBuffer_lookup(dec, &args->buffer);
602 if (vn_decode_simple_pointer(dec)) {
603 args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements));
604 if (!args->pMemoryRequirements) return;
605 vn_decode_VkMemoryRequirements_partial_temp(dec, args->pMemoryRequirements);
606 } else {
607 args->pMemoryRequirements = NULL;
608 vn_cs_decoder_set_fatal(dec);
609 }
610 }
611
vn_replace_vkGetBufferMemoryRequirements_args_handle(struct vn_command_vkGetBufferMemoryRequirements * args)612 static inline void vn_replace_vkGetBufferMemoryRequirements_args_handle(struct vn_command_vkGetBufferMemoryRequirements *args)
613 {
614 vn_replace_VkDevice_handle(&args->device);
615 vn_replace_VkBuffer_handle(&args->buffer);
616 /* skip args->pMemoryRequirements */
617 }
618
vn_encode_vkGetBufferMemoryRequirements_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferMemoryRequirements * args)619 static inline void vn_encode_vkGetBufferMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferMemoryRequirements *args)
620 {
621 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT});
622
623 /* skip args->device */
624 /* skip args->buffer */
625 if (vn_encode_simple_pointer(enc, args->pMemoryRequirements))
626 vn_encode_VkMemoryRequirements(enc, args->pMemoryRequirements);
627 }
628
vn_decode_vkBindBufferMemory_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkBindBufferMemory * args)629 static inline void vn_decode_vkBindBufferMemory_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBindBufferMemory *args)
630 {
631 vn_decode_VkDevice_lookup(dec, &args->device);
632 vn_decode_VkBuffer_lookup(dec, &args->buffer);
633 vn_decode_VkDeviceMemory_lookup(dec, &args->memory);
634 vn_decode_VkDeviceSize(dec, &args->memoryOffset);
635 }
636
vn_replace_vkBindBufferMemory_args_handle(struct vn_command_vkBindBufferMemory * args)637 static inline void vn_replace_vkBindBufferMemory_args_handle(struct vn_command_vkBindBufferMemory *args)
638 {
639 vn_replace_VkDevice_handle(&args->device);
640 vn_replace_VkBuffer_handle(&args->buffer);
641 vn_replace_VkDeviceMemory_handle(&args->memory);
642 /* skip args->memoryOffset */
643 }
644
vn_encode_vkBindBufferMemory_reply(struct vn_cs_encoder * enc,const struct vn_command_vkBindBufferMemory * args)645 static inline void vn_encode_vkBindBufferMemory_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBindBufferMemory *args)
646 {
647 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBindBufferMemory_EXT});
648
649 vn_encode_VkResult(enc, &args->ret);
650 /* skip args->device */
651 /* skip args->buffer */
652 /* skip args->memory */
653 /* skip args->memoryOffset */
654 }
655
vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateBuffer * args)656 static inline void vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateBuffer *args)
657 {
658 vn_decode_VkDevice_lookup(dec, &args->device);
659 if (vn_decode_simple_pointer(dec)) {
660 args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
661 if (!args->pCreateInfo) return;
662 vn_decode_VkBufferCreateInfo_temp(dec, (VkBufferCreateInfo *)args->pCreateInfo);
663 } else {
664 args->pCreateInfo = NULL;
665 vn_cs_decoder_set_fatal(dec);
666 }
667 if (vn_decode_simple_pointer(dec)) {
668 vn_cs_decoder_set_fatal(dec);
669 } else {
670 args->pAllocator = NULL;
671 }
672 if (vn_decode_simple_pointer(dec)) {
673 args->pBuffer = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffer));
674 if (!args->pBuffer) return;
675 vn_decode_VkBuffer(dec, args->pBuffer);
676 } else {
677 args->pBuffer = NULL;
678 vn_cs_decoder_set_fatal(dec);
679 }
680 }
681
vn_replace_vkCreateBuffer_args_handle(struct vn_command_vkCreateBuffer * args)682 static inline void vn_replace_vkCreateBuffer_args_handle(struct vn_command_vkCreateBuffer *args)
683 {
684 vn_replace_VkDevice_handle(&args->device);
685 if (args->pCreateInfo)
686 vn_replace_VkBufferCreateInfo_handle((VkBufferCreateInfo *)args->pCreateInfo);
687 /* skip args->pAllocator */
688 /* skip args->pBuffer */
689 }
690
vn_encode_vkCreateBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateBuffer * args)691 static inline void vn_encode_vkCreateBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateBuffer *args)
692 {
693 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateBuffer_EXT});
694
695 vn_encode_VkResult(enc, &args->ret);
696 /* skip args->device */
697 /* skip args->pCreateInfo */
698 /* skip args->pAllocator */
699 if (vn_encode_simple_pointer(enc, args->pBuffer))
700 vn_encode_VkBuffer(enc, args->pBuffer);
701 }
702
vn_decode_vkDestroyBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyBuffer * args)703 static inline void vn_decode_vkDestroyBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyBuffer *args)
704 {
705 vn_decode_VkDevice_lookup(dec, &args->device);
706 vn_decode_VkBuffer_lookup(dec, &args->buffer);
707 if (vn_decode_simple_pointer(dec)) {
708 vn_cs_decoder_set_fatal(dec);
709 } else {
710 args->pAllocator = NULL;
711 }
712 }
713
vn_replace_vkDestroyBuffer_args_handle(struct vn_command_vkDestroyBuffer * args)714 static inline void vn_replace_vkDestroyBuffer_args_handle(struct vn_command_vkDestroyBuffer *args)
715 {
716 vn_replace_VkDevice_handle(&args->device);
717 vn_replace_VkBuffer_handle(&args->buffer);
718 /* skip args->pAllocator */
719 }
720
vn_encode_vkDestroyBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyBuffer * args)721 static inline void vn_encode_vkDestroyBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyBuffer *args)
722 {
723 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyBuffer_EXT});
724
725 /* skip args->device */
726 /* skip args->buffer */
727 /* skip args->pAllocator */
728 }
729
vn_decode_vkBindBufferMemory2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkBindBufferMemory2 * args)730 static inline void vn_decode_vkBindBufferMemory2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBindBufferMemory2 *args)
731 {
732 vn_decode_VkDevice_lookup(dec, &args->device);
733 vn_decode_uint32_t(dec, &args->bindInfoCount);
734 if (vn_peek_array_size(dec)) {
735 const uint32_t iter_count = vn_decode_array_size(dec, args->bindInfoCount);
736 args->pBindInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBindInfos) * iter_count);
737 if (!args->pBindInfos) return;
738 for (uint32_t i = 0; i < iter_count; i++)
739 vn_decode_VkBindBufferMemoryInfo_temp(dec, &((VkBindBufferMemoryInfo *)args->pBindInfos)[i]);
740 } else {
741 vn_decode_array_size(dec, args->bindInfoCount);
742 args->pBindInfos = NULL;
743 }
744 }
745
vn_replace_vkBindBufferMemory2_args_handle(struct vn_command_vkBindBufferMemory2 * args)746 static inline void vn_replace_vkBindBufferMemory2_args_handle(struct vn_command_vkBindBufferMemory2 *args)
747 {
748 vn_replace_VkDevice_handle(&args->device);
749 /* skip args->bindInfoCount */
750 if (args->pBindInfos) {
751 for (uint32_t i = 0; i < args->bindInfoCount; i++)
752 vn_replace_VkBindBufferMemoryInfo_handle(&((VkBindBufferMemoryInfo *)args->pBindInfos)[i]);
753 }
754 }
755
vn_encode_vkBindBufferMemory2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkBindBufferMemory2 * args)756 static inline void vn_encode_vkBindBufferMemory2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBindBufferMemory2 *args)
757 {
758 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBindBufferMemory2_EXT});
759
760 vn_encode_VkResult(enc, &args->ret);
761 /* skip args->device */
762 /* skip args->bindInfoCount */
763 /* skip args->pBindInfos */
764 }
765
vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferMemoryRequirements2 * args)766 static inline void vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferMemoryRequirements2 *args)
767 {
768 vn_decode_VkDevice_lookup(dec, &args->device);
769 if (vn_decode_simple_pointer(dec)) {
770 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
771 if (!args->pInfo) return;
772 vn_decode_VkBufferMemoryRequirementsInfo2_temp(dec, (VkBufferMemoryRequirementsInfo2 *)args->pInfo);
773 } else {
774 args->pInfo = NULL;
775 vn_cs_decoder_set_fatal(dec);
776 }
777 if (vn_decode_simple_pointer(dec)) {
778 args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements));
779 if (!args->pMemoryRequirements) return;
780 vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements);
781 } else {
782 args->pMemoryRequirements = NULL;
783 vn_cs_decoder_set_fatal(dec);
784 }
785 }
786
vn_replace_vkGetBufferMemoryRequirements2_args_handle(struct vn_command_vkGetBufferMemoryRequirements2 * args)787 static inline void vn_replace_vkGetBufferMemoryRequirements2_args_handle(struct vn_command_vkGetBufferMemoryRequirements2 *args)
788 {
789 vn_replace_VkDevice_handle(&args->device);
790 if (args->pInfo)
791 vn_replace_VkBufferMemoryRequirementsInfo2_handle((VkBufferMemoryRequirementsInfo2 *)args->pInfo);
792 /* skip args->pMemoryRequirements */
793 }
794
vn_encode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferMemoryRequirements2 * args)795 static inline void vn_encode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferMemoryRequirements2 *args)
796 {
797 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT});
798
799 /* skip args->device */
800 /* skip args->pInfo */
801 if (vn_encode_simple_pointer(enc, args->pMemoryRequirements))
802 vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements);
803 }
804
vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferOpaqueCaptureAddress * args)805 static inline void vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
806 {
807 vn_decode_VkDevice_lookup(dec, &args->device);
808 if (vn_decode_simple_pointer(dec)) {
809 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
810 if (!args->pInfo) return;
811 vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo);
812 } else {
813 args->pInfo = NULL;
814 vn_cs_decoder_set_fatal(dec);
815 }
816 }
817
vn_replace_vkGetBufferOpaqueCaptureAddress_args_handle(struct vn_command_vkGetBufferOpaqueCaptureAddress * args)818 static inline void vn_replace_vkGetBufferOpaqueCaptureAddress_args_handle(struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
819 {
820 vn_replace_VkDevice_handle(&args->device);
821 if (args->pInfo)
822 vn_replace_VkBufferDeviceAddressInfo_handle((VkBufferDeviceAddressInfo *)args->pInfo);
823 }
824
vn_encode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferOpaqueCaptureAddress * args)825 static inline void vn_encode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferOpaqueCaptureAddress *args)
826 {
827 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT});
828
829 vn_encode_uint64_t(enc, &args->ret);
830 /* skip args->device */
831 /* skip args->pInfo */
832 }
833
vn_decode_vkGetBufferDeviceAddress_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetBufferDeviceAddress * args)834 static inline void vn_decode_vkGetBufferDeviceAddress_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferDeviceAddress *args)
835 {
836 vn_decode_VkDevice_lookup(dec, &args->device);
837 if (vn_decode_simple_pointer(dec)) {
838 args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo));
839 if (!args->pInfo) return;
840 vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo);
841 } else {
842 args->pInfo = NULL;
843 vn_cs_decoder_set_fatal(dec);
844 }
845 }
846
vn_replace_vkGetBufferDeviceAddress_args_handle(struct vn_command_vkGetBufferDeviceAddress * args)847 static inline void vn_replace_vkGetBufferDeviceAddress_args_handle(struct vn_command_vkGetBufferDeviceAddress *args)
848 {
849 vn_replace_VkDevice_handle(&args->device);
850 if (args->pInfo)
851 vn_replace_VkBufferDeviceAddressInfo_handle((VkBufferDeviceAddressInfo *)args->pInfo);
852 }
853
vn_encode_vkGetBufferDeviceAddress_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetBufferDeviceAddress * args)854 static inline void vn_encode_vkGetBufferDeviceAddress_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetBufferDeviceAddress *args)
855 {
856 vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT});
857
858 vn_encode_VkDeviceAddress(enc, &args->ret);
859 /* skip args->device */
860 /* skip args->pInfo */
861 }
862
vn_dispatch_vkGetBufferMemoryRequirements(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)863 static inline void vn_dispatch_vkGetBufferMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
864 {
865 struct vn_command_vkGetBufferMemoryRequirements args;
866
867 if (!ctx->dispatch_vkGetBufferMemoryRequirements) {
868 vn_cs_decoder_set_fatal(ctx->decoder);
869 return;
870 }
871
872 vn_decode_vkGetBufferMemoryRequirements_args_temp(ctx->decoder, &args);
873 if (!args.device) {
874 vn_cs_decoder_set_fatal(ctx->decoder);
875 return;
876 }
877
878 if (!vn_cs_decoder_get_fatal(ctx->decoder))
879 ctx->dispatch_vkGetBufferMemoryRequirements(ctx, &args);
880
881
882 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
883 vn_encode_vkGetBufferMemoryRequirements_reply(ctx->encoder, &args);
884
885 vn_cs_decoder_reset_temp_pool(ctx->decoder);
886 }
887
vn_dispatch_vkBindBufferMemory(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)888 static inline void vn_dispatch_vkBindBufferMemory(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
889 {
890 struct vn_command_vkBindBufferMemory args;
891
892 if (!ctx->dispatch_vkBindBufferMemory) {
893 vn_cs_decoder_set_fatal(ctx->decoder);
894 return;
895 }
896
897 vn_decode_vkBindBufferMemory_args_temp(ctx->decoder, &args);
898 if (!args.device) {
899 vn_cs_decoder_set_fatal(ctx->decoder);
900 return;
901 }
902
903 if (!vn_cs_decoder_get_fatal(ctx->decoder))
904 ctx->dispatch_vkBindBufferMemory(ctx, &args);
905
906 #ifdef DEBUG
907 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
908 vn_dispatch_debug_log(ctx, "vkBindBufferMemory returned %d", args.ret);
909 #endif
910
911 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
912 vn_encode_vkBindBufferMemory_reply(ctx->encoder, &args);
913
914 vn_cs_decoder_reset_temp_pool(ctx->decoder);
915 }
916
vn_dispatch_vkCreateBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)917 static inline void vn_dispatch_vkCreateBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
918 {
919 struct vn_command_vkCreateBuffer args;
920
921 if (!ctx->dispatch_vkCreateBuffer) {
922 vn_cs_decoder_set_fatal(ctx->decoder);
923 return;
924 }
925
926 vn_decode_vkCreateBuffer_args_temp(ctx->decoder, &args);
927 if (!args.device) {
928 vn_cs_decoder_set_fatal(ctx->decoder);
929 return;
930 }
931
932 if (!vn_cs_decoder_get_fatal(ctx->decoder))
933 ctx->dispatch_vkCreateBuffer(ctx, &args);
934
935 #ifdef DEBUG
936 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
937 vn_dispatch_debug_log(ctx, "vkCreateBuffer returned %d", args.ret);
938 #endif
939
940 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
941 vn_encode_vkCreateBuffer_reply(ctx->encoder, &args);
942
943 vn_cs_decoder_reset_temp_pool(ctx->decoder);
944 }
945
vn_dispatch_vkDestroyBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)946 static inline void vn_dispatch_vkDestroyBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
947 {
948 struct vn_command_vkDestroyBuffer args;
949
950 if (!ctx->dispatch_vkDestroyBuffer) {
951 vn_cs_decoder_set_fatal(ctx->decoder);
952 return;
953 }
954
955 vn_decode_vkDestroyBuffer_args_temp(ctx->decoder, &args);
956 if (!args.device) {
957 vn_cs_decoder_set_fatal(ctx->decoder);
958 return;
959 }
960
961 if (!vn_cs_decoder_get_fatal(ctx->decoder))
962 ctx->dispatch_vkDestroyBuffer(ctx, &args);
963
964
965 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
966 vn_encode_vkDestroyBuffer_reply(ctx->encoder, &args);
967
968 vn_cs_decoder_reset_temp_pool(ctx->decoder);
969 }
970
vn_dispatch_vkBindBufferMemory2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)971 static inline void vn_dispatch_vkBindBufferMemory2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
972 {
973 struct vn_command_vkBindBufferMemory2 args;
974
975 if (!ctx->dispatch_vkBindBufferMemory2) {
976 vn_cs_decoder_set_fatal(ctx->decoder);
977 return;
978 }
979
980 vn_decode_vkBindBufferMemory2_args_temp(ctx->decoder, &args);
981 if (!args.device) {
982 vn_cs_decoder_set_fatal(ctx->decoder);
983 return;
984 }
985
986 if (!vn_cs_decoder_get_fatal(ctx->decoder))
987 ctx->dispatch_vkBindBufferMemory2(ctx, &args);
988
989 #ifdef DEBUG
990 if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
991 vn_dispatch_debug_log(ctx, "vkBindBufferMemory2 returned %d", args.ret);
992 #endif
993
994 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
995 vn_encode_vkBindBufferMemory2_reply(ctx->encoder, &args);
996
997 vn_cs_decoder_reset_temp_pool(ctx->decoder);
998 }
999
vn_dispatch_vkGetBufferMemoryRequirements2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1000 static inline void vn_dispatch_vkGetBufferMemoryRequirements2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1001 {
1002 struct vn_command_vkGetBufferMemoryRequirements2 args;
1003
1004 if (!ctx->dispatch_vkGetBufferMemoryRequirements2) {
1005 vn_cs_decoder_set_fatal(ctx->decoder);
1006 return;
1007 }
1008
1009 vn_decode_vkGetBufferMemoryRequirements2_args_temp(ctx->decoder, &args);
1010 if (!args.device) {
1011 vn_cs_decoder_set_fatal(ctx->decoder);
1012 return;
1013 }
1014
1015 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1016 ctx->dispatch_vkGetBufferMemoryRequirements2(ctx, &args);
1017
1018
1019 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1020 vn_encode_vkGetBufferMemoryRequirements2_reply(ctx->encoder, &args);
1021
1022 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1023 }
1024
vn_dispatch_vkGetBufferOpaqueCaptureAddress(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1025 static inline void vn_dispatch_vkGetBufferOpaqueCaptureAddress(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1026 {
1027 struct vn_command_vkGetBufferOpaqueCaptureAddress args;
1028
1029 if (!ctx->dispatch_vkGetBufferOpaqueCaptureAddress) {
1030 vn_cs_decoder_set_fatal(ctx->decoder);
1031 return;
1032 }
1033
1034 vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(ctx->decoder, &args);
1035 if (!args.device) {
1036 vn_cs_decoder_set_fatal(ctx->decoder);
1037 return;
1038 }
1039
1040 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1041 ctx->dispatch_vkGetBufferOpaqueCaptureAddress(ctx, &args);
1042
1043
1044 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1045 vn_encode_vkGetBufferOpaqueCaptureAddress_reply(ctx->encoder, &args);
1046
1047 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1048 }
1049
vn_dispatch_vkGetBufferDeviceAddress(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)1050 static inline void vn_dispatch_vkGetBufferDeviceAddress(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
1051 {
1052 struct vn_command_vkGetBufferDeviceAddress args;
1053
1054 if (!ctx->dispatch_vkGetBufferDeviceAddress) {
1055 vn_cs_decoder_set_fatal(ctx->decoder);
1056 return;
1057 }
1058
1059 vn_decode_vkGetBufferDeviceAddress_args_temp(ctx->decoder, &args);
1060 if (!args.device) {
1061 vn_cs_decoder_set_fatal(ctx->decoder);
1062 return;
1063 }
1064
1065 if (!vn_cs_decoder_get_fatal(ctx->decoder))
1066 ctx->dispatch_vkGetBufferDeviceAddress(ctx, &args);
1067
1068
1069 if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
1070 vn_encode_vkGetBufferDeviceAddress_reply(ctx->encoder, &args);
1071
1072 vn_cs_decoder_reset_temp_pool(ctx->decoder);
1073 }
1074
1075 #pragma GCC diagnostic pop
1076
1077 #endif /* VN_PROTOCOL_RENDERER_BUFFER_H */
1078