xref: /aosp_15_r20/external/mesa3d/src/virtio/venus-protocol/vn_protocol_driver_buffer.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_DRIVER_BUFFER_H
9 #define VN_PROTOCOL_DRIVER_BUFFER_H
10 
11 #include "vn_ring.h"
12 #include "vn_protocol_driver_structs.h"
13 
14 /* struct VkExternalMemoryBufferCreateInfo chain */
15 
16 static inline size_t
vn_sizeof_VkExternalMemoryBufferCreateInfo_pnext(const void * val)17 vn_sizeof_VkExternalMemoryBufferCreateInfo_pnext(const void *val)
18 {
19     /* no known/supported struct */
20     return vn_sizeof_simple_pointer(NULL);
21 }
22 
23 static inline size_t
vn_sizeof_VkExternalMemoryBufferCreateInfo_self(const VkExternalMemoryBufferCreateInfo * val)24 vn_sizeof_VkExternalMemoryBufferCreateInfo_self(const VkExternalMemoryBufferCreateInfo *val)
25 {
26     size_t size = 0;
27     /* skip val->{sType,pNext} */
28     size += vn_sizeof_VkFlags(&val->handleTypes);
29     return size;
30 }
31 
32 static inline size_t
vn_sizeof_VkExternalMemoryBufferCreateInfo(const VkExternalMemoryBufferCreateInfo * val)33 vn_sizeof_VkExternalMemoryBufferCreateInfo(const VkExternalMemoryBufferCreateInfo *val)
34 {
35     size_t size = 0;
36 
37     size += vn_sizeof_VkStructureType(&val->sType);
38     size += vn_sizeof_VkExternalMemoryBufferCreateInfo_pnext(val->pNext);
39     size += vn_sizeof_VkExternalMemoryBufferCreateInfo_self(val);
40 
41     return size;
42 }
43 
44 static inline void
vn_encode_VkExternalMemoryBufferCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)45 vn_encode_VkExternalMemoryBufferCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
46 {
47     /* no known/supported struct */
48     vn_encode_simple_pointer(enc, NULL);
49 }
50 
51 static inline void
vn_encode_VkExternalMemoryBufferCreateInfo_self(struct vn_cs_encoder * enc,const VkExternalMemoryBufferCreateInfo * val)52 vn_encode_VkExternalMemoryBufferCreateInfo_self(struct vn_cs_encoder *enc, const VkExternalMemoryBufferCreateInfo *val)
53 {
54     /* skip val->{sType,pNext} */
55     vn_encode_VkFlags(enc, &val->handleTypes);
56 }
57 
58 static inline void
vn_encode_VkExternalMemoryBufferCreateInfo(struct vn_cs_encoder * enc,const VkExternalMemoryBufferCreateInfo * val)59 vn_encode_VkExternalMemoryBufferCreateInfo(struct vn_cs_encoder *enc, const VkExternalMemoryBufferCreateInfo *val)
60 {
61     assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO);
62     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO });
63     vn_encode_VkExternalMemoryBufferCreateInfo_pnext(enc, val->pNext);
64     vn_encode_VkExternalMemoryBufferCreateInfo_self(enc, val);
65 }
66 
67 /* struct VkBufferOpaqueCaptureAddressCreateInfo chain */
68 
69 static inline size_t
vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_pnext(const void * val)70 vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_pnext(const void *val)
71 {
72     /* no known/supported struct */
73     return vn_sizeof_simple_pointer(NULL);
74 }
75 
76 static inline size_t
vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_self(const VkBufferOpaqueCaptureAddressCreateInfo * val)77 vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_self(const VkBufferOpaqueCaptureAddressCreateInfo *val)
78 {
79     size_t size = 0;
80     /* skip val->{sType,pNext} */
81     size += vn_sizeof_uint64_t(&val->opaqueCaptureAddress);
82     return size;
83 }
84 
85 static inline size_t
vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo(const VkBufferOpaqueCaptureAddressCreateInfo * val)86 vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo(const VkBufferOpaqueCaptureAddressCreateInfo *val)
87 {
88     size_t size = 0;
89 
90     size += vn_sizeof_VkStructureType(&val->sType);
91     size += vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_pnext(val->pNext);
92     size += vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_self(val);
93 
94     return size;
95 }
96 
97 static inline void
vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)98 vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
99 {
100     /* no known/supported struct */
101     vn_encode_simple_pointer(enc, NULL);
102 }
103 
104 static inline void
vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(struct vn_cs_encoder * enc,const VkBufferOpaqueCaptureAddressCreateInfo * val)105 vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(struct vn_cs_encoder *enc, const VkBufferOpaqueCaptureAddressCreateInfo *val)
106 {
107     /* skip val->{sType,pNext} */
108     vn_encode_uint64_t(enc, &val->opaqueCaptureAddress);
109 }
110 
111 static inline void
vn_encode_VkBufferOpaqueCaptureAddressCreateInfo(struct vn_cs_encoder * enc,const VkBufferOpaqueCaptureAddressCreateInfo * val)112 vn_encode_VkBufferOpaqueCaptureAddressCreateInfo(struct vn_cs_encoder *enc, const VkBufferOpaqueCaptureAddressCreateInfo *val)
113 {
114     assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO);
115     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO });
116     vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_pnext(enc, val->pNext);
117     vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(enc, val);
118 }
119 
120 /* struct VkBufferCreateInfo chain */
121 
122 static inline size_t
vn_sizeof_VkBufferCreateInfo_pnext(const void * val)123 vn_sizeof_VkBufferCreateInfo_pnext(const void *val)
124 {
125     const VkBaseInStructure *pnext = val;
126     size_t size = 0;
127 
128     while (pnext) {
129         switch ((int32_t)pnext->sType) {
130         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR:
131             if (!vn_cs_renderer_protocol_has_extension(471 /* VK_KHR_maintenance5 */))
132                 break;
133             size += vn_sizeof_simple_pointer(pnext);
134             size += vn_sizeof_VkStructureType(&pnext->sType);
135             size += vn_sizeof_VkBufferCreateInfo_pnext(pnext->pNext);
136             size += vn_sizeof_VkBufferUsageFlags2CreateInfoKHR_self((const VkBufferUsageFlags2CreateInfoKHR *)pnext);
137             return size;
138         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
139             size += vn_sizeof_simple_pointer(pnext);
140             size += vn_sizeof_VkStructureType(&pnext->sType);
141             size += vn_sizeof_VkBufferCreateInfo_pnext(pnext->pNext);
142             size += vn_sizeof_VkExternalMemoryBufferCreateInfo_self((const VkExternalMemoryBufferCreateInfo *)pnext);
143             return size;
144         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
145             size += vn_sizeof_simple_pointer(pnext);
146             size += vn_sizeof_VkStructureType(&pnext->sType);
147             size += vn_sizeof_VkBufferCreateInfo_pnext(pnext->pNext);
148             size += vn_sizeof_VkBufferOpaqueCaptureAddressCreateInfo_self((const VkBufferOpaqueCaptureAddressCreateInfo *)pnext);
149             return size;
150         default:
151             /* ignore unknown/unsupported struct */
152             break;
153         }
154         pnext = pnext->pNext;
155     }
156 
157     return vn_sizeof_simple_pointer(NULL);
158 }
159 
160 static inline size_t
vn_sizeof_VkBufferCreateInfo_self(const VkBufferCreateInfo * val)161 vn_sizeof_VkBufferCreateInfo_self(const VkBufferCreateInfo *val)
162 {
163     size_t size = 0;
164     /* skip val->{sType,pNext} */
165     size += vn_sizeof_VkFlags(&val->flags);
166     size += vn_sizeof_VkDeviceSize(&val->size);
167     size += vn_sizeof_VkFlags(&val->usage);
168     size += vn_sizeof_VkSharingMode(&val->sharingMode);
169     size += vn_sizeof_uint32_t(&val->queueFamilyIndexCount);
170     if (val->sharingMode == VK_SHARING_MODE_CONCURRENT) {
171         size += vn_sizeof_array_size(val->queueFamilyIndexCount);
172         size += vn_sizeof_uint32_t_array(val->pQueueFamilyIndices, val->queueFamilyIndexCount);
173     } else {
174         size += vn_sizeof_array_size(0);
175     }
176     return size;
177 }
178 
179 static inline size_t
vn_sizeof_VkBufferCreateInfo(const VkBufferCreateInfo * val)180 vn_sizeof_VkBufferCreateInfo(const VkBufferCreateInfo *val)
181 {
182     size_t size = 0;
183 
184     size += vn_sizeof_VkStructureType(&val->sType);
185     size += vn_sizeof_VkBufferCreateInfo_pnext(val->pNext);
186     size += vn_sizeof_VkBufferCreateInfo_self(val);
187 
188     return size;
189 }
190 
191 static inline void
vn_encode_VkBufferCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)192 vn_encode_VkBufferCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
193 {
194     const VkBaseInStructure *pnext = val;
195 
196     while (pnext) {
197         switch ((int32_t)pnext->sType) {
198         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR:
199             if (!vn_cs_renderer_protocol_has_extension(471 /* VK_KHR_maintenance5 */))
200                 break;
201             vn_encode_simple_pointer(enc, pnext);
202             vn_encode_VkStructureType(enc, &pnext->sType);
203             vn_encode_VkBufferCreateInfo_pnext(enc, pnext->pNext);
204             vn_encode_VkBufferUsageFlags2CreateInfoKHR_self(enc, (const VkBufferUsageFlags2CreateInfoKHR *)pnext);
205             return;
206         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
207             vn_encode_simple_pointer(enc, pnext);
208             vn_encode_VkStructureType(enc, &pnext->sType);
209             vn_encode_VkBufferCreateInfo_pnext(enc, pnext->pNext);
210             vn_encode_VkExternalMemoryBufferCreateInfo_self(enc, (const VkExternalMemoryBufferCreateInfo *)pnext);
211             return;
212         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
213             vn_encode_simple_pointer(enc, pnext);
214             vn_encode_VkStructureType(enc, &pnext->sType);
215             vn_encode_VkBufferCreateInfo_pnext(enc, pnext->pNext);
216             vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(enc, (const VkBufferOpaqueCaptureAddressCreateInfo *)pnext);
217             return;
218         default:
219             /* ignore unknown/unsupported struct */
220             break;
221         }
222         pnext = pnext->pNext;
223     }
224 
225     vn_encode_simple_pointer(enc, NULL);
226 }
227 
228 static inline void
vn_encode_VkBufferCreateInfo_self(struct vn_cs_encoder * enc,const VkBufferCreateInfo * val)229 vn_encode_VkBufferCreateInfo_self(struct vn_cs_encoder *enc, const VkBufferCreateInfo *val)
230 {
231     /* skip val->{sType,pNext} */
232     vn_encode_VkFlags(enc, &val->flags);
233     vn_encode_VkDeviceSize(enc, &val->size);
234     vn_encode_VkFlags(enc, &val->usage);
235     vn_encode_VkSharingMode(enc, &val->sharingMode);
236     vn_encode_uint32_t(enc, &val->queueFamilyIndexCount);
237     if (val->sharingMode == VK_SHARING_MODE_CONCURRENT) {
238         vn_encode_array_size(enc, val->queueFamilyIndexCount);
239         vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount);
240     } else {
241         vn_encode_array_size(enc, 0);
242     }
243 }
244 
245 static inline void
vn_encode_VkBufferCreateInfo(struct vn_cs_encoder * enc,const VkBufferCreateInfo * val)246 vn_encode_VkBufferCreateInfo(struct vn_cs_encoder *enc, const VkBufferCreateInfo *val)
247 {
248     assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO);
249     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO });
250     vn_encode_VkBufferCreateInfo_pnext(enc, val->pNext);
251     vn_encode_VkBufferCreateInfo_self(enc, val);
252 }
253 
254 /* struct VkBindBufferMemoryDeviceGroupInfo chain */
255 
256 static inline size_t
vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_pnext(const void * val)257 vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_pnext(const void *val)
258 {
259     /* no known/supported struct */
260     return vn_sizeof_simple_pointer(NULL);
261 }
262 
263 static inline size_t
vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_self(const VkBindBufferMemoryDeviceGroupInfo * val)264 vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_self(const VkBindBufferMemoryDeviceGroupInfo *val)
265 {
266     size_t size = 0;
267     /* skip val->{sType,pNext} */
268     size += vn_sizeof_uint32_t(&val->deviceIndexCount);
269     if (val->pDeviceIndices) {
270         size += vn_sizeof_array_size(val->deviceIndexCount);
271         size += vn_sizeof_uint32_t_array(val->pDeviceIndices, val->deviceIndexCount);
272     } else {
273         size += vn_sizeof_array_size(0);
274     }
275     return size;
276 }
277 
278 static inline size_t
vn_sizeof_VkBindBufferMemoryDeviceGroupInfo(const VkBindBufferMemoryDeviceGroupInfo * val)279 vn_sizeof_VkBindBufferMemoryDeviceGroupInfo(const VkBindBufferMemoryDeviceGroupInfo *val)
280 {
281     size_t size = 0;
282 
283     size += vn_sizeof_VkStructureType(&val->sType);
284     size += vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_pnext(val->pNext);
285     size += vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_self(val);
286 
287     return size;
288 }
289 
290 static inline void
vn_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder * enc,const void * val)291 vn_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder *enc, const void *val)
292 {
293     /* no known/supported struct */
294     vn_encode_simple_pointer(enc, NULL);
295 }
296 
297 static inline void
vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(struct vn_cs_encoder * enc,const VkBindBufferMemoryDeviceGroupInfo * val)298 vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(struct vn_cs_encoder *enc, const VkBindBufferMemoryDeviceGroupInfo *val)
299 {
300     /* skip val->{sType,pNext} */
301     vn_encode_uint32_t(enc, &val->deviceIndexCount);
302     if (val->pDeviceIndices) {
303         vn_encode_array_size(enc, val->deviceIndexCount);
304         vn_encode_uint32_t_array(enc, val->pDeviceIndices, val->deviceIndexCount);
305     } else {
306         vn_encode_array_size(enc, 0);
307     }
308 }
309 
310 static inline void
vn_encode_VkBindBufferMemoryDeviceGroupInfo(struct vn_cs_encoder * enc,const VkBindBufferMemoryDeviceGroupInfo * val)311 vn_encode_VkBindBufferMemoryDeviceGroupInfo(struct vn_cs_encoder *enc, const VkBindBufferMemoryDeviceGroupInfo *val)
312 {
313     assert(val->sType == VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO);
314     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO });
315     vn_encode_VkBindBufferMemoryDeviceGroupInfo_pnext(enc, val->pNext);
316     vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(enc, val);
317 }
318 
319 /* struct VkBindBufferMemoryInfo chain */
320 
321 static inline size_t
vn_sizeof_VkBindBufferMemoryInfo_pnext(const void * val)322 vn_sizeof_VkBindBufferMemoryInfo_pnext(const void *val)
323 {
324     const VkBaseInStructure *pnext = val;
325     size_t size = 0;
326 
327     while (pnext) {
328         switch ((int32_t)pnext->sType) {
329         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
330             size += vn_sizeof_simple_pointer(pnext);
331             size += vn_sizeof_VkStructureType(&pnext->sType);
332             size += vn_sizeof_VkBindBufferMemoryInfo_pnext(pnext->pNext);
333             size += vn_sizeof_VkBindBufferMemoryDeviceGroupInfo_self((const VkBindBufferMemoryDeviceGroupInfo *)pnext);
334             return size;
335         default:
336             /* ignore unknown/unsupported struct */
337             break;
338         }
339         pnext = pnext->pNext;
340     }
341 
342     return vn_sizeof_simple_pointer(NULL);
343 }
344 
345 static inline size_t
vn_sizeof_VkBindBufferMemoryInfo_self(const VkBindBufferMemoryInfo * val)346 vn_sizeof_VkBindBufferMemoryInfo_self(const VkBindBufferMemoryInfo *val)
347 {
348     size_t size = 0;
349     /* skip val->{sType,pNext} */
350     size += vn_sizeof_VkBuffer(&val->buffer);
351     size += vn_sizeof_VkDeviceMemory(&val->memory);
352     size += vn_sizeof_VkDeviceSize(&val->memoryOffset);
353     return size;
354 }
355 
356 static inline size_t
vn_sizeof_VkBindBufferMemoryInfo(const VkBindBufferMemoryInfo * val)357 vn_sizeof_VkBindBufferMemoryInfo(const VkBindBufferMemoryInfo *val)
358 {
359     size_t size = 0;
360 
361     size += vn_sizeof_VkStructureType(&val->sType);
362     size += vn_sizeof_VkBindBufferMemoryInfo_pnext(val->pNext);
363     size += vn_sizeof_VkBindBufferMemoryInfo_self(val);
364 
365     return size;
366 }
367 
368 static inline void
vn_encode_VkBindBufferMemoryInfo_pnext(struct vn_cs_encoder * enc,const void * val)369 vn_encode_VkBindBufferMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val)
370 {
371     const VkBaseInStructure *pnext = val;
372 
373     while (pnext) {
374         switch ((int32_t)pnext->sType) {
375         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
376             vn_encode_simple_pointer(enc, pnext);
377             vn_encode_VkStructureType(enc, &pnext->sType);
378             vn_encode_VkBindBufferMemoryInfo_pnext(enc, pnext->pNext);
379             vn_encode_VkBindBufferMemoryDeviceGroupInfo_self(enc, (const VkBindBufferMemoryDeviceGroupInfo *)pnext);
380             return;
381         default:
382             /* ignore unknown/unsupported struct */
383             break;
384         }
385         pnext = pnext->pNext;
386     }
387 
388     vn_encode_simple_pointer(enc, NULL);
389 }
390 
391 static inline void
vn_encode_VkBindBufferMemoryInfo_self(struct vn_cs_encoder * enc,const VkBindBufferMemoryInfo * val)392 vn_encode_VkBindBufferMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindBufferMemoryInfo *val)
393 {
394     /* skip val->{sType,pNext} */
395     vn_encode_VkBuffer(enc, &val->buffer);
396     vn_encode_VkDeviceMemory(enc, &val->memory);
397     vn_encode_VkDeviceSize(enc, &val->memoryOffset);
398 }
399 
400 static inline void
vn_encode_VkBindBufferMemoryInfo(struct vn_cs_encoder * enc,const VkBindBufferMemoryInfo * val)401 vn_encode_VkBindBufferMemoryInfo(struct vn_cs_encoder *enc, const VkBindBufferMemoryInfo *val)
402 {
403     assert(val->sType == VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO);
404     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO });
405     vn_encode_VkBindBufferMemoryInfo_pnext(enc, val->pNext);
406     vn_encode_VkBindBufferMemoryInfo_self(enc, val);
407 }
408 
409 /* struct VkBufferMemoryRequirementsInfo2 chain */
410 
411 static inline size_t
vn_sizeof_VkBufferMemoryRequirementsInfo2_pnext(const void * val)412 vn_sizeof_VkBufferMemoryRequirementsInfo2_pnext(const void *val)
413 {
414     /* no known/supported struct */
415     return vn_sizeof_simple_pointer(NULL);
416 }
417 
418 static inline size_t
vn_sizeof_VkBufferMemoryRequirementsInfo2_self(const VkBufferMemoryRequirementsInfo2 * val)419 vn_sizeof_VkBufferMemoryRequirementsInfo2_self(const VkBufferMemoryRequirementsInfo2 *val)
420 {
421     size_t size = 0;
422     /* skip val->{sType,pNext} */
423     size += vn_sizeof_VkBuffer(&val->buffer);
424     return size;
425 }
426 
427 static inline size_t
vn_sizeof_VkBufferMemoryRequirementsInfo2(const VkBufferMemoryRequirementsInfo2 * val)428 vn_sizeof_VkBufferMemoryRequirementsInfo2(const VkBufferMemoryRequirementsInfo2 *val)
429 {
430     size_t size = 0;
431 
432     size += vn_sizeof_VkStructureType(&val->sType);
433     size += vn_sizeof_VkBufferMemoryRequirementsInfo2_pnext(val->pNext);
434     size += vn_sizeof_VkBufferMemoryRequirementsInfo2_self(val);
435 
436     return size;
437 }
438 
439 static inline void
vn_encode_VkBufferMemoryRequirementsInfo2_pnext(struct vn_cs_encoder * enc,const void * val)440 vn_encode_VkBufferMemoryRequirementsInfo2_pnext(struct vn_cs_encoder *enc, const void *val)
441 {
442     /* no known/supported struct */
443     vn_encode_simple_pointer(enc, NULL);
444 }
445 
446 static inline void
vn_encode_VkBufferMemoryRequirementsInfo2_self(struct vn_cs_encoder * enc,const VkBufferMemoryRequirementsInfo2 * val)447 vn_encode_VkBufferMemoryRequirementsInfo2_self(struct vn_cs_encoder *enc, const VkBufferMemoryRequirementsInfo2 *val)
448 {
449     /* skip val->{sType,pNext} */
450     vn_encode_VkBuffer(enc, &val->buffer);
451 }
452 
453 static inline void
vn_encode_VkBufferMemoryRequirementsInfo2(struct vn_cs_encoder * enc,const VkBufferMemoryRequirementsInfo2 * val)454 vn_encode_VkBufferMemoryRequirementsInfo2(struct vn_cs_encoder *enc, const VkBufferMemoryRequirementsInfo2 *val)
455 {
456     assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2);
457     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 });
458     vn_encode_VkBufferMemoryRequirementsInfo2_pnext(enc, val->pNext);
459     vn_encode_VkBufferMemoryRequirementsInfo2_self(enc, val);
460 }
461 
462 /* struct VkDeviceBufferMemoryRequirements chain */
463 
464 static inline size_t
vn_sizeof_VkDeviceBufferMemoryRequirements_pnext(const void * val)465 vn_sizeof_VkDeviceBufferMemoryRequirements_pnext(const void *val)
466 {
467     /* no known/supported struct */
468     return vn_sizeof_simple_pointer(NULL);
469 }
470 
471 static inline size_t
vn_sizeof_VkDeviceBufferMemoryRequirements_self(const VkDeviceBufferMemoryRequirements * val)472 vn_sizeof_VkDeviceBufferMemoryRequirements_self(const VkDeviceBufferMemoryRequirements *val)
473 {
474     size_t size = 0;
475     /* skip val->{sType,pNext} */
476     size += vn_sizeof_simple_pointer(val->pCreateInfo);
477     if (val->pCreateInfo)
478         size += vn_sizeof_VkBufferCreateInfo(val->pCreateInfo);
479     return size;
480 }
481 
482 static inline size_t
vn_sizeof_VkDeviceBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements * val)483 vn_sizeof_VkDeviceBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements *val)
484 {
485     size_t size = 0;
486 
487     size += vn_sizeof_VkStructureType(&val->sType);
488     size += vn_sizeof_VkDeviceBufferMemoryRequirements_pnext(val->pNext);
489     size += vn_sizeof_VkDeviceBufferMemoryRequirements_self(val);
490 
491     return size;
492 }
493 
494 static inline void
vn_encode_VkDeviceBufferMemoryRequirements_pnext(struct vn_cs_encoder * enc,const void * val)495 vn_encode_VkDeviceBufferMemoryRequirements_pnext(struct vn_cs_encoder *enc, const void *val)
496 {
497     /* no known/supported struct */
498     vn_encode_simple_pointer(enc, NULL);
499 }
500 
501 static inline void
vn_encode_VkDeviceBufferMemoryRequirements_self(struct vn_cs_encoder * enc,const VkDeviceBufferMemoryRequirements * val)502 vn_encode_VkDeviceBufferMemoryRequirements_self(struct vn_cs_encoder *enc, const VkDeviceBufferMemoryRequirements *val)
503 {
504     /* skip val->{sType,pNext} */
505     if (vn_encode_simple_pointer(enc, val->pCreateInfo))
506         vn_encode_VkBufferCreateInfo(enc, val->pCreateInfo);
507 }
508 
509 static inline void
vn_encode_VkDeviceBufferMemoryRequirements(struct vn_cs_encoder * enc,const VkDeviceBufferMemoryRequirements * val)510 vn_encode_VkDeviceBufferMemoryRequirements(struct vn_cs_encoder *enc, const VkDeviceBufferMemoryRequirements *val)
511 {
512     assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS);
513     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS });
514     vn_encode_VkDeviceBufferMemoryRequirements_pnext(enc, val->pNext);
515     vn_encode_VkDeviceBufferMemoryRequirements_self(enc, val);
516 }
517 
518 /* struct VkBufferDeviceAddressInfo chain */
519 
520 static inline size_t
vn_sizeof_VkBufferDeviceAddressInfo_pnext(const void * val)521 vn_sizeof_VkBufferDeviceAddressInfo_pnext(const void *val)
522 {
523     /* no known/supported struct */
524     return vn_sizeof_simple_pointer(NULL);
525 }
526 
527 static inline size_t
vn_sizeof_VkBufferDeviceAddressInfo_self(const VkBufferDeviceAddressInfo * val)528 vn_sizeof_VkBufferDeviceAddressInfo_self(const VkBufferDeviceAddressInfo *val)
529 {
530     size_t size = 0;
531     /* skip val->{sType,pNext} */
532     size += vn_sizeof_VkBuffer(&val->buffer);
533     return size;
534 }
535 
536 static inline size_t
vn_sizeof_VkBufferDeviceAddressInfo(const VkBufferDeviceAddressInfo * val)537 vn_sizeof_VkBufferDeviceAddressInfo(const VkBufferDeviceAddressInfo *val)
538 {
539     size_t size = 0;
540 
541     size += vn_sizeof_VkStructureType(&val->sType);
542     size += vn_sizeof_VkBufferDeviceAddressInfo_pnext(val->pNext);
543     size += vn_sizeof_VkBufferDeviceAddressInfo_self(val);
544 
545     return size;
546 }
547 
548 static inline void
vn_encode_VkBufferDeviceAddressInfo_pnext(struct vn_cs_encoder * enc,const void * val)549 vn_encode_VkBufferDeviceAddressInfo_pnext(struct vn_cs_encoder *enc, const void *val)
550 {
551     /* no known/supported struct */
552     vn_encode_simple_pointer(enc, NULL);
553 }
554 
555 static inline void
vn_encode_VkBufferDeviceAddressInfo_self(struct vn_cs_encoder * enc,const VkBufferDeviceAddressInfo * val)556 vn_encode_VkBufferDeviceAddressInfo_self(struct vn_cs_encoder *enc, const VkBufferDeviceAddressInfo *val)
557 {
558     /* skip val->{sType,pNext} */
559     vn_encode_VkBuffer(enc, &val->buffer);
560 }
561 
562 static inline void
vn_encode_VkBufferDeviceAddressInfo(struct vn_cs_encoder * enc,const VkBufferDeviceAddressInfo * val)563 vn_encode_VkBufferDeviceAddressInfo(struct vn_cs_encoder *enc, const VkBufferDeviceAddressInfo *val)
564 {
565     assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO);
566     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO });
567     vn_encode_VkBufferDeviceAddressInfo_pnext(enc, val->pNext);
568     vn_encode_VkBufferDeviceAddressInfo_self(enc, val);
569 }
570 
vn_sizeof_vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)571 static inline size_t vn_sizeof_vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
572 {
573     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT;
574     const VkFlags cmd_flags = 0;
575     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
576 
577     cmd_size += vn_sizeof_VkDevice(&device);
578     cmd_size += vn_sizeof_VkBuffer(&buffer);
579     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
580     if (pMemoryRequirements)
581         cmd_size += vn_sizeof_VkMemoryRequirements_partial(pMemoryRequirements);
582 
583     return cmd_size;
584 }
585 
vn_encode_vkGetBufferMemoryRequirements(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)586 static inline void vn_encode_vkGetBufferMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
587 {
588     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT;
589 
590     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
591     vn_encode_VkFlags(enc, &cmd_flags);
592 
593     vn_encode_VkDevice(enc, &device);
594     vn_encode_VkBuffer(enc, &buffer);
595     if (vn_encode_simple_pointer(enc, pMemoryRequirements))
596         vn_encode_VkMemoryRequirements_partial(enc, pMemoryRequirements);
597 }
598 
vn_sizeof_vkGetBufferMemoryRequirements_reply(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)599 static inline size_t vn_sizeof_vkGetBufferMemoryRequirements_reply(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
600 {
601     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT;
602     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
603 
604     /* skip device */
605     /* skip buffer */
606     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
607     if (pMemoryRequirements)
608         cmd_size += vn_sizeof_VkMemoryRequirements(pMemoryRequirements);
609 
610     return cmd_size;
611 }
612 
vn_decode_vkGetBufferMemoryRequirements_reply(struct vn_cs_decoder * dec,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)613 static inline void vn_decode_vkGetBufferMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
614 {
615     VkCommandTypeEXT command_type;
616     vn_decode_VkCommandTypeEXT(dec, &command_type);
617     assert(command_type == VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT);
618 
619     /* skip device */
620     /* skip buffer */
621     if (vn_decode_simple_pointer(dec)) {
622         vn_decode_VkMemoryRequirements(dec, pMemoryRequirements);
623     } else {
624         pMemoryRequirements = NULL;
625     }
626 }
627 
vn_sizeof_vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)628 static inline size_t vn_sizeof_vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
629 {
630     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory_EXT;
631     const VkFlags cmd_flags = 0;
632     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
633 
634     cmd_size += vn_sizeof_VkDevice(&device);
635     cmd_size += vn_sizeof_VkBuffer(&buffer);
636     cmd_size += vn_sizeof_VkDeviceMemory(&memory);
637     cmd_size += vn_sizeof_VkDeviceSize(&memoryOffset);
638 
639     return cmd_size;
640 }
641 
vn_encode_vkBindBufferMemory(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)642 static inline void vn_encode_vkBindBufferMemory(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
643 {
644     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory_EXT;
645 
646     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
647     vn_encode_VkFlags(enc, &cmd_flags);
648 
649     vn_encode_VkDevice(enc, &device);
650     vn_encode_VkBuffer(enc, &buffer);
651     vn_encode_VkDeviceMemory(enc, &memory);
652     vn_encode_VkDeviceSize(enc, &memoryOffset);
653 }
654 
vn_sizeof_vkBindBufferMemory_reply(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)655 static inline size_t vn_sizeof_vkBindBufferMemory_reply(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
656 {
657     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory_EXT;
658     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
659 
660     VkResult ret;
661     cmd_size += vn_sizeof_VkResult(&ret);
662     /* skip device */
663     /* skip buffer */
664     /* skip memory */
665     /* skip memoryOffset */
666 
667     return cmd_size;
668 }
669 
vn_decode_vkBindBufferMemory_reply(struct vn_cs_decoder * dec,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)670 static inline VkResult vn_decode_vkBindBufferMemory_reply(struct vn_cs_decoder *dec, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
671 {
672     VkCommandTypeEXT command_type;
673     vn_decode_VkCommandTypeEXT(dec, &command_type);
674     assert(command_type == VK_COMMAND_TYPE_vkBindBufferMemory_EXT);
675 
676     VkResult ret;
677     vn_decode_VkResult(dec, &ret);
678     /* skip device */
679     /* skip buffer */
680     /* skip memory */
681     /* skip memoryOffset */
682 
683     return ret;
684 }
685 
vn_sizeof_vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)686 static inline size_t vn_sizeof_vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
687 {
688     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBuffer_EXT;
689     const VkFlags cmd_flags = 0;
690     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
691 
692     cmd_size += vn_sizeof_VkDevice(&device);
693     cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
694     if (pCreateInfo)
695         cmd_size += vn_sizeof_VkBufferCreateInfo(pCreateInfo);
696     cmd_size += vn_sizeof_simple_pointer(pAllocator);
697     if (pAllocator)
698         assert(false);
699     cmd_size += vn_sizeof_simple_pointer(pBuffer);
700     if (pBuffer)
701         cmd_size += vn_sizeof_VkBuffer(pBuffer);
702 
703     return cmd_size;
704 }
705 
vn_encode_vkCreateBuffer(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)706 static inline void vn_encode_vkCreateBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
707 {
708     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBuffer_EXT;
709 
710     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
711     vn_encode_VkFlags(enc, &cmd_flags);
712 
713     vn_encode_VkDevice(enc, &device);
714     if (vn_encode_simple_pointer(enc, pCreateInfo))
715         vn_encode_VkBufferCreateInfo(enc, pCreateInfo);
716     if (vn_encode_simple_pointer(enc, pAllocator))
717         assert(false);
718     if (vn_encode_simple_pointer(enc, pBuffer))
719         vn_encode_VkBuffer(enc, pBuffer);
720 }
721 
vn_sizeof_vkCreateBuffer_reply(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)722 static inline size_t vn_sizeof_vkCreateBuffer_reply(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
723 {
724     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBuffer_EXT;
725     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
726 
727     VkResult ret;
728     cmd_size += vn_sizeof_VkResult(&ret);
729     /* skip device */
730     /* skip pCreateInfo */
731     /* skip pAllocator */
732     cmd_size += vn_sizeof_simple_pointer(pBuffer);
733     if (pBuffer)
734         cmd_size += vn_sizeof_VkBuffer(pBuffer);
735 
736     return cmd_size;
737 }
738 
vn_decode_vkCreateBuffer_reply(struct vn_cs_decoder * dec,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)739 static inline VkResult vn_decode_vkCreateBuffer_reply(struct vn_cs_decoder *dec, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
740 {
741     VkCommandTypeEXT command_type;
742     vn_decode_VkCommandTypeEXT(dec, &command_type);
743     assert(command_type == VK_COMMAND_TYPE_vkCreateBuffer_EXT);
744 
745     VkResult ret;
746     vn_decode_VkResult(dec, &ret);
747     /* skip device */
748     /* skip pCreateInfo */
749     /* skip pAllocator */
750     if (vn_decode_simple_pointer(dec)) {
751         vn_decode_VkBuffer(dec, pBuffer);
752     } else {
753         pBuffer = NULL;
754     }
755 
756     return ret;
757 }
758 
vn_sizeof_vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)759 static inline size_t vn_sizeof_vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
760 {
761     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBuffer_EXT;
762     const VkFlags cmd_flags = 0;
763     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
764 
765     cmd_size += vn_sizeof_VkDevice(&device);
766     cmd_size += vn_sizeof_VkBuffer(&buffer);
767     cmd_size += vn_sizeof_simple_pointer(pAllocator);
768     if (pAllocator)
769         assert(false);
770 
771     return cmd_size;
772 }
773 
vn_encode_vkDestroyBuffer(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)774 static inline void vn_encode_vkDestroyBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
775 {
776     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBuffer_EXT;
777 
778     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
779     vn_encode_VkFlags(enc, &cmd_flags);
780 
781     vn_encode_VkDevice(enc, &device);
782     vn_encode_VkBuffer(enc, &buffer);
783     if (vn_encode_simple_pointer(enc, pAllocator))
784         assert(false);
785 }
786 
vn_sizeof_vkDestroyBuffer_reply(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)787 static inline size_t vn_sizeof_vkDestroyBuffer_reply(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
788 {
789     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBuffer_EXT;
790     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
791 
792     /* skip device */
793     /* skip buffer */
794     /* skip pAllocator */
795 
796     return cmd_size;
797 }
798 
vn_decode_vkDestroyBuffer_reply(struct vn_cs_decoder * dec,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)799 static inline void vn_decode_vkDestroyBuffer_reply(struct vn_cs_decoder *dec, VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
800 {
801     VkCommandTypeEXT command_type;
802     vn_decode_VkCommandTypeEXT(dec, &command_type);
803     assert(command_type == VK_COMMAND_TYPE_vkDestroyBuffer_EXT);
804 
805     /* skip device */
806     /* skip buffer */
807     /* skip pAllocator */
808 }
809 
vn_sizeof_vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)810 static inline size_t vn_sizeof_vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
811 {
812     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory2_EXT;
813     const VkFlags cmd_flags = 0;
814     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
815 
816     cmd_size += vn_sizeof_VkDevice(&device);
817     cmd_size += vn_sizeof_uint32_t(&bindInfoCount);
818     if (pBindInfos) {
819         cmd_size += vn_sizeof_array_size(bindInfoCount);
820         for (uint32_t i = 0; i < bindInfoCount; i++)
821             cmd_size += vn_sizeof_VkBindBufferMemoryInfo(&pBindInfos[i]);
822     } else {
823         cmd_size += vn_sizeof_array_size(0);
824     }
825 
826     return cmd_size;
827 }
828 
vn_encode_vkBindBufferMemory2(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)829 static inline void vn_encode_vkBindBufferMemory2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
830 {
831     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory2_EXT;
832 
833     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
834     vn_encode_VkFlags(enc, &cmd_flags);
835 
836     vn_encode_VkDevice(enc, &device);
837     vn_encode_uint32_t(enc, &bindInfoCount);
838     if (pBindInfos) {
839         vn_encode_array_size(enc, bindInfoCount);
840         for (uint32_t i = 0; i < bindInfoCount; i++)
841             vn_encode_VkBindBufferMemoryInfo(enc, &pBindInfos[i]);
842     } else {
843         vn_encode_array_size(enc, 0);
844     }
845 }
846 
vn_sizeof_vkBindBufferMemory2_reply(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)847 static inline size_t vn_sizeof_vkBindBufferMemory2_reply(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
848 {
849     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindBufferMemory2_EXT;
850     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
851 
852     VkResult ret;
853     cmd_size += vn_sizeof_VkResult(&ret);
854     /* skip device */
855     /* skip bindInfoCount */
856     /* skip pBindInfos */
857 
858     return cmd_size;
859 }
860 
vn_decode_vkBindBufferMemory2_reply(struct vn_cs_decoder * dec,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)861 static inline VkResult vn_decode_vkBindBufferMemory2_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
862 {
863     VkCommandTypeEXT command_type;
864     vn_decode_VkCommandTypeEXT(dec, &command_type);
865     assert(command_type == VK_COMMAND_TYPE_vkBindBufferMemory2_EXT);
866 
867     VkResult ret;
868     vn_decode_VkResult(dec, &ret);
869     /* skip device */
870     /* skip bindInfoCount */
871     /* skip pBindInfos */
872 
873     return ret;
874 }
875 
vn_sizeof_vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)876 static inline size_t vn_sizeof_vkGetBufferMemoryRequirements2(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
877 {
878     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT;
879     const VkFlags cmd_flags = 0;
880     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
881 
882     cmd_size += vn_sizeof_VkDevice(&device);
883     cmd_size += vn_sizeof_simple_pointer(pInfo);
884     if (pInfo)
885         cmd_size += vn_sizeof_VkBufferMemoryRequirementsInfo2(pInfo);
886     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
887     if (pMemoryRequirements)
888         cmd_size += vn_sizeof_VkMemoryRequirements2_partial(pMemoryRequirements);
889 
890     return cmd_size;
891 }
892 
vn_encode_vkGetBufferMemoryRequirements2(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)893 static inline void vn_encode_vkGetBufferMemoryRequirements2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
894 {
895     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT;
896 
897     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
898     vn_encode_VkFlags(enc, &cmd_flags);
899 
900     vn_encode_VkDevice(enc, &device);
901     if (vn_encode_simple_pointer(enc, pInfo))
902         vn_encode_VkBufferMemoryRequirementsInfo2(enc, pInfo);
903     if (vn_encode_simple_pointer(enc, pMemoryRequirements))
904         vn_encode_VkMemoryRequirements2_partial(enc, pMemoryRequirements);
905 }
906 
vn_sizeof_vkGetBufferMemoryRequirements2_reply(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)907 static inline size_t vn_sizeof_vkGetBufferMemoryRequirements2_reply(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
908 {
909     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT;
910     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
911 
912     /* skip device */
913     /* skip pInfo */
914     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
915     if (pMemoryRequirements)
916         cmd_size += vn_sizeof_VkMemoryRequirements2(pMemoryRequirements);
917 
918     return cmd_size;
919 }
920 
vn_decode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_decoder * dec,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)921 static inline void vn_decode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
922 {
923     VkCommandTypeEXT command_type;
924     vn_decode_VkCommandTypeEXT(dec, &command_type);
925     assert(command_type == VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT);
926 
927     /* skip device */
928     /* skip pInfo */
929     if (vn_decode_simple_pointer(dec)) {
930         vn_decode_VkMemoryRequirements2(dec, pMemoryRequirements);
931     } else {
932         pMemoryRequirements = NULL;
933     }
934 }
935 
vn_sizeof_vkGetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)936 static inline size_t vn_sizeof_vkGetDeviceBufferMemoryRequirements(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
937 {
938     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT;
939     const VkFlags cmd_flags = 0;
940     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
941 
942     cmd_size += vn_sizeof_VkDevice(&device);
943     cmd_size += vn_sizeof_simple_pointer(pInfo);
944     if (pInfo)
945         cmd_size += vn_sizeof_VkDeviceBufferMemoryRequirements(pInfo);
946     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
947     if (pMemoryRequirements)
948         cmd_size += vn_sizeof_VkMemoryRequirements2_partial(pMemoryRequirements);
949 
950     return cmd_size;
951 }
952 
vn_encode_vkGetDeviceBufferMemoryRequirements(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)953 static inline void vn_encode_vkGetDeviceBufferMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
954 {
955     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT;
956 
957     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
958     vn_encode_VkFlags(enc, &cmd_flags);
959 
960     vn_encode_VkDevice(enc, &device);
961     if (vn_encode_simple_pointer(enc, pInfo))
962         vn_encode_VkDeviceBufferMemoryRequirements(enc, pInfo);
963     if (vn_encode_simple_pointer(enc, pMemoryRequirements))
964         vn_encode_VkMemoryRequirements2_partial(enc, pMemoryRequirements);
965 }
966 
vn_sizeof_vkGetDeviceBufferMemoryRequirements_reply(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)967 static inline size_t vn_sizeof_vkGetDeviceBufferMemoryRequirements_reply(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
968 {
969     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT;
970     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
971 
972     /* skip device */
973     /* skip pInfo */
974     cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);
975     if (pMemoryRequirements)
976         cmd_size += vn_sizeof_VkMemoryRequirements2(pMemoryRequirements);
977 
978     return cmd_size;
979 }
980 
vn_decode_vkGetDeviceBufferMemoryRequirements_reply(struct vn_cs_decoder * dec,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)981 static inline void vn_decode_vkGetDeviceBufferMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
982 {
983     VkCommandTypeEXT command_type;
984     vn_decode_VkCommandTypeEXT(dec, &command_type);
985     assert(command_type == VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT);
986 
987     /* skip device */
988     /* skip pInfo */
989     if (vn_decode_simple_pointer(dec)) {
990         vn_decode_VkMemoryRequirements2(dec, pMemoryRequirements);
991     } else {
992         pMemoryRequirements = NULL;
993     }
994 }
995 
vn_sizeof_vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)996 static inline size_t vn_sizeof_vkGetBufferOpaqueCaptureAddress(VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
997 {
998     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT;
999     const VkFlags cmd_flags = 0;
1000     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
1001 
1002     cmd_size += vn_sizeof_VkDevice(&device);
1003     cmd_size += vn_sizeof_simple_pointer(pInfo);
1004     if (pInfo)
1005         cmd_size += vn_sizeof_VkBufferDeviceAddressInfo(pInfo);
1006 
1007     return cmd_size;
1008 }
1009 
vn_encode_vkGetBufferOpaqueCaptureAddress(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1010 static inline void vn_encode_vkGetBufferOpaqueCaptureAddress(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1011 {
1012     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT;
1013 
1014     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
1015     vn_encode_VkFlags(enc, &cmd_flags);
1016 
1017     vn_encode_VkDevice(enc, &device);
1018     if (vn_encode_simple_pointer(enc, pInfo))
1019         vn_encode_VkBufferDeviceAddressInfo(enc, pInfo);
1020 }
1021 
vn_sizeof_vkGetBufferOpaqueCaptureAddress_reply(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1022 static inline size_t vn_sizeof_vkGetBufferOpaqueCaptureAddress_reply(VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1023 {
1024     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT;
1025     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
1026 
1027     uint64_t ret;
1028     cmd_size += vn_sizeof_uint64_t(&ret);
1029     /* skip device */
1030     /* skip pInfo */
1031 
1032     return cmd_size;
1033 }
1034 
vn_decode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_decoder * dec,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1035 static inline uint64_t vn_decode_vkGetBufferOpaqueCaptureAddress_reply(struct vn_cs_decoder *dec, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1036 {
1037     VkCommandTypeEXT command_type;
1038     vn_decode_VkCommandTypeEXT(dec, &command_type);
1039     assert(command_type == VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT);
1040 
1041     uint64_t ret;
1042     vn_decode_uint64_t(dec, &ret);
1043     /* skip device */
1044     /* skip pInfo */
1045 
1046     return ret;
1047 }
1048 
vn_sizeof_vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1049 static inline size_t vn_sizeof_vkGetBufferDeviceAddress(VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1050 {
1051     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT;
1052     const VkFlags cmd_flags = 0;
1053     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
1054 
1055     cmd_size += vn_sizeof_VkDevice(&device);
1056     cmd_size += vn_sizeof_simple_pointer(pInfo);
1057     if (pInfo)
1058         cmd_size += vn_sizeof_VkBufferDeviceAddressInfo(pInfo);
1059 
1060     return cmd_size;
1061 }
1062 
vn_encode_vkGetBufferDeviceAddress(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1063 static inline void vn_encode_vkGetBufferDeviceAddress(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1064 {
1065     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT;
1066 
1067     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
1068     vn_encode_VkFlags(enc, &cmd_flags);
1069 
1070     vn_encode_VkDevice(enc, &device);
1071     if (vn_encode_simple_pointer(enc, pInfo))
1072         vn_encode_VkBufferDeviceAddressInfo(enc, pInfo);
1073 }
1074 
vn_sizeof_vkGetBufferDeviceAddress_reply(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1075 static inline size_t vn_sizeof_vkGetBufferDeviceAddress_reply(VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1076 {
1077     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT;
1078     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
1079 
1080     VkDeviceAddress ret;
1081     cmd_size += vn_sizeof_VkDeviceAddress(&ret);
1082     /* skip device */
1083     /* skip pInfo */
1084 
1085     return cmd_size;
1086 }
1087 
vn_decode_vkGetBufferDeviceAddress_reply(struct vn_cs_decoder * dec,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1088 static inline VkDeviceAddress vn_decode_vkGetBufferDeviceAddress_reply(struct vn_cs_decoder *dec, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1089 {
1090     VkCommandTypeEXT command_type;
1091     vn_decode_VkCommandTypeEXT(dec, &command_type);
1092     assert(command_type == VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT);
1093 
1094     VkDeviceAddress ret;
1095     vn_decode_VkDeviceAddress(dec, &ret);
1096     /* skip device */
1097     /* skip pInfo */
1098 
1099     return ret;
1100 }
1101 
vn_submit_vkGetBufferMemoryRequirements(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements,struct vn_ring_submit_command * submit)1102 static inline void vn_submit_vkGetBufferMemoryRequirements(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements, struct vn_ring_submit_command *submit)
1103 {
1104     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1105     void *cmd_data = local_cmd_data;
1106     size_t cmd_size = vn_sizeof_vkGetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
1107     if (cmd_size > sizeof(local_cmd_data)) {
1108         cmd_data = malloc(cmd_size);
1109         if (!cmd_data)
1110             cmd_size = 0;
1111     }
1112     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetBufferMemoryRequirements_reply(device, buffer, pMemoryRequirements) : 0;
1113 
1114     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1115     if (cmd_size) {
1116         vn_encode_vkGetBufferMemoryRequirements(enc, cmd_flags, device, buffer, pMemoryRequirements);
1117         vn_ring_submit_command(vn_ring, submit);
1118         if (cmd_data != local_cmd_data)
1119             free(cmd_data);
1120     }
1121 }
1122 
vn_submit_vkBindBufferMemory(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset,struct vn_ring_submit_command * submit)1123 static inline void vn_submit_vkBindBufferMemory(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset, struct vn_ring_submit_command *submit)
1124 {
1125     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1126     void *cmd_data = local_cmd_data;
1127     size_t cmd_size = vn_sizeof_vkBindBufferMemory(device, buffer, memory, memoryOffset);
1128     if (cmd_size > sizeof(local_cmd_data)) {
1129         cmd_data = malloc(cmd_size);
1130         if (!cmd_data)
1131             cmd_size = 0;
1132     }
1133     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindBufferMemory_reply(device, buffer, memory, memoryOffset) : 0;
1134 
1135     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1136     if (cmd_size) {
1137         vn_encode_vkBindBufferMemory(enc, cmd_flags, device, buffer, memory, memoryOffset);
1138         vn_ring_submit_command(vn_ring, submit);
1139         if (cmd_data != local_cmd_data)
1140             free(cmd_data);
1141     }
1142 }
1143 
vn_submit_vkCreateBuffer(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer,struct vn_ring_submit_command * submit)1144 static inline void vn_submit_vkCreateBuffer(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer, struct vn_ring_submit_command *submit)
1145 {
1146     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1147     void *cmd_data = local_cmd_data;
1148     size_t cmd_size = vn_sizeof_vkCreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
1149     if (cmd_size > sizeof(local_cmd_data)) {
1150         cmd_data = malloc(cmd_size);
1151         if (!cmd_data)
1152             cmd_size = 0;
1153     }
1154     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateBuffer_reply(device, pCreateInfo, pAllocator, pBuffer) : 0;
1155 
1156     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1157     if (cmd_size) {
1158         vn_encode_vkCreateBuffer(enc, cmd_flags, device, pCreateInfo, pAllocator, pBuffer);
1159         vn_ring_submit_command(vn_ring, submit);
1160         if (cmd_data != local_cmd_data)
1161             free(cmd_data);
1162     }
1163 }
1164 
vn_submit_vkDestroyBuffer(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator,struct vn_ring_submit_command * submit)1165 static inline void vn_submit_vkDestroyBuffer(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator, struct vn_ring_submit_command *submit)
1166 {
1167     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1168     void *cmd_data = local_cmd_data;
1169     size_t cmd_size = vn_sizeof_vkDestroyBuffer(device, buffer, pAllocator);
1170     if (cmd_size > sizeof(local_cmd_data)) {
1171         cmd_data = malloc(cmd_size);
1172         if (!cmd_data)
1173             cmd_size = 0;
1174     }
1175     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyBuffer_reply(device, buffer, pAllocator) : 0;
1176 
1177     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1178     if (cmd_size) {
1179         vn_encode_vkDestroyBuffer(enc, cmd_flags, device, buffer, pAllocator);
1180         vn_ring_submit_command(vn_ring, submit);
1181         if (cmd_data != local_cmd_data)
1182             free(cmd_data);
1183     }
1184 }
1185 
vn_submit_vkBindBufferMemory2(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos,struct vn_ring_submit_command * submit)1186 static inline void vn_submit_vkBindBufferMemory2(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos, struct vn_ring_submit_command *submit)
1187 {
1188     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1189     void *cmd_data = local_cmd_data;
1190     size_t cmd_size = vn_sizeof_vkBindBufferMemory2(device, bindInfoCount, pBindInfos);
1191     if (cmd_size > sizeof(local_cmd_data)) {
1192         cmd_data = malloc(cmd_size);
1193         if (!cmd_data)
1194             cmd_size = 0;
1195     }
1196     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindBufferMemory2_reply(device, bindInfoCount, pBindInfos) : 0;
1197 
1198     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1199     if (cmd_size) {
1200         vn_encode_vkBindBufferMemory2(enc, cmd_flags, device, bindInfoCount, pBindInfos);
1201         vn_ring_submit_command(vn_ring, submit);
1202         if (cmd_data != local_cmd_data)
1203             free(cmd_data);
1204     }
1205 }
1206 
vn_submit_vkGetBufferMemoryRequirements2(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements,struct vn_ring_submit_command * submit)1207 static inline void vn_submit_vkGetBufferMemoryRequirements2(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements, struct vn_ring_submit_command *submit)
1208 {
1209     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1210     void *cmd_data = local_cmd_data;
1211     size_t cmd_size = vn_sizeof_vkGetBufferMemoryRequirements2(device, pInfo, pMemoryRequirements);
1212     if (cmd_size > sizeof(local_cmd_data)) {
1213         cmd_data = malloc(cmd_size);
1214         if (!cmd_data)
1215             cmd_size = 0;
1216     }
1217     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetBufferMemoryRequirements2_reply(device, pInfo, pMemoryRequirements) : 0;
1218 
1219     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1220     if (cmd_size) {
1221         vn_encode_vkGetBufferMemoryRequirements2(enc, cmd_flags, device, pInfo, pMemoryRequirements);
1222         vn_ring_submit_command(vn_ring, submit);
1223         if (cmd_data != local_cmd_data)
1224             free(cmd_data);
1225     }
1226 }
1227 
vn_submit_vkGetDeviceBufferMemoryRequirements(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements,struct vn_ring_submit_command * submit)1228 static inline void vn_submit_vkGetDeviceBufferMemoryRequirements(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements, struct vn_ring_submit_command *submit)
1229 {
1230     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1231     void *cmd_data = local_cmd_data;
1232     size_t cmd_size = vn_sizeof_vkGetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements);
1233     if (cmd_size > sizeof(local_cmd_data)) {
1234         cmd_data = malloc(cmd_size);
1235         if (!cmd_data)
1236             cmd_size = 0;
1237     }
1238     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetDeviceBufferMemoryRequirements_reply(device, pInfo, pMemoryRequirements) : 0;
1239 
1240     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1241     if (cmd_size) {
1242         vn_encode_vkGetDeviceBufferMemoryRequirements(enc, cmd_flags, device, pInfo, pMemoryRequirements);
1243         vn_ring_submit_command(vn_ring, submit);
1244         if (cmd_data != local_cmd_data)
1245             free(cmd_data);
1246     }
1247 }
1248 
vn_submit_vkGetBufferOpaqueCaptureAddress(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferDeviceAddressInfo * pInfo,struct vn_ring_submit_command * submit)1249 static inline void vn_submit_vkGetBufferOpaqueCaptureAddress(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferDeviceAddressInfo* pInfo, struct vn_ring_submit_command *submit)
1250 {
1251     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1252     void *cmd_data = local_cmd_data;
1253     size_t cmd_size = vn_sizeof_vkGetBufferOpaqueCaptureAddress(device, pInfo);
1254     if (cmd_size > sizeof(local_cmd_data)) {
1255         cmd_data = malloc(cmd_size);
1256         if (!cmd_data)
1257             cmd_size = 0;
1258     }
1259     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetBufferOpaqueCaptureAddress_reply(device, pInfo) : 0;
1260 
1261     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1262     if (cmd_size) {
1263         vn_encode_vkGetBufferOpaqueCaptureAddress(enc, cmd_flags, device, pInfo);
1264         vn_ring_submit_command(vn_ring, submit);
1265         if (cmd_data != local_cmd_data)
1266             free(cmd_data);
1267     }
1268 }
1269 
vn_submit_vkGetBufferDeviceAddress(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferDeviceAddressInfo * pInfo,struct vn_ring_submit_command * submit)1270 static inline void vn_submit_vkGetBufferDeviceAddress(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferDeviceAddressInfo* pInfo, struct vn_ring_submit_command *submit)
1271 {
1272     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
1273     void *cmd_data = local_cmd_data;
1274     size_t cmd_size = vn_sizeof_vkGetBufferDeviceAddress(device, pInfo);
1275     if (cmd_size > sizeof(local_cmd_data)) {
1276         cmd_data = malloc(cmd_size);
1277         if (!cmd_data)
1278             cmd_size = 0;
1279     }
1280     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetBufferDeviceAddress_reply(device, pInfo) : 0;
1281 
1282     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
1283     if (cmd_size) {
1284         vn_encode_vkGetBufferDeviceAddress(enc, cmd_flags, device, pInfo);
1285         vn_ring_submit_command(vn_ring, submit);
1286         if (cmd_data != local_cmd_data)
1287             free(cmd_data);
1288     }
1289 }
1290 
vn_call_vkGetBufferMemoryRequirements(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)1291 static inline void vn_call_vkGetBufferMemoryRequirements(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
1292 {
1293     VN_TRACE_FUNC();
1294 
1295     struct vn_ring_submit_command submit;
1296     vn_submit_vkGetBufferMemoryRequirements(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, buffer, pMemoryRequirements, &submit);
1297     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1298     if (dec) {
1299         vn_decode_vkGetBufferMemoryRequirements_reply(dec, device, buffer, pMemoryRequirements);
1300         vn_ring_free_command_reply(vn_ring, &submit);
1301     }
1302 }
1303 
vn_async_vkGetBufferMemoryRequirements(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)1304 static inline void vn_async_vkGetBufferMemoryRequirements(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
1305 {
1306     struct vn_ring_submit_command submit;
1307     vn_submit_vkGetBufferMemoryRequirements(vn_ring, 0, device, buffer, pMemoryRequirements, &submit);
1308 }
1309 
vn_call_vkBindBufferMemory(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)1310 static inline VkResult vn_call_vkBindBufferMemory(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
1311 {
1312     VN_TRACE_FUNC();
1313 
1314     struct vn_ring_submit_command submit;
1315     vn_submit_vkBindBufferMemory(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, buffer, memory, memoryOffset, &submit);
1316     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1317     if (dec) {
1318         const VkResult ret = vn_decode_vkBindBufferMemory_reply(dec, device, buffer, memory, memoryOffset);
1319         vn_ring_free_command_reply(vn_ring, &submit);
1320         return ret;
1321     } else {
1322         return VK_ERROR_OUT_OF_HOST_MEMORY;
1323     }
1324 }
1325 
vn_async_vkBindBufferMemory(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)1326 static inline void vn_async_vkBindBufferMemory(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
1327 {
1328     struct vn_ring_submit_command submit;
1329     vn_submit_vkBindBufferMemory(vn_ring, 0, device, buffer, memory, memoryOffset, &submit);
1330 }
1331 
vn_call_vkCreateBuffer(struct vn_ring * vn_ring,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)1332 static inline VkResult vn_call_vkCreateBuffer(struct vn_ring *vn_ring, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
1333 {
1334     VN_TRACE_FUNC();
1335 
1336     struct vn_ring_submit_command submit;
1337     vn_submit_vkCreateBuffer(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pBuffer, &submit);
1338     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1339     if (dec) {
1340         const VkResult ret = vn_decode_vkCreateBuffer_reply(dec, device, pCreateInfo, pAllocator, pBuffer);
1341         vn_ring_free_command_reply(vn_ring, &submit);
1342         return ret;
1343     } else {
1344         return VK_ERROR_OUT_OF_HOST_MEMORY;
1345     }
1346 }
1347 
vn_async_vkCreateBuffer(struct vn_ring * vn_ring,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)1348 static inline void vn_async_vkCreateBuffer(struct vn_ring *vn_ring, VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
1349 {
1350     struct vn_ring_submit_command submit;
1351     vn_submit_vkCreateBuffer(vn_ring, 0, device, pCreateInfo, pAllocator, pBuffer, &submit);
1352 }
1353 
vn_call_vkDestroyBuffer(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)1354 static inline void vn_call_vkDestroyBuffer(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
1355 {
1356     VN_TRACE_FUNC();
1357 
1358     struct vn_ring_submit_command submit;
1359     vn_submit_vkDestroyBuffer(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, buffer, pAllocator, &submit);
1360     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1361     if (dec) {
1362         vn_decode_vkDestroyBuffer_reply(dec, device, buffer, pAllocator);
1363         vn_ring_free_command_reply(vn_ring, &submit);
1364     }
1365 }
1366 
vn_async_vkDestroyBuffer(struct vn_ring * vn_ring,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)1367 static inline void vn_async_vkDestroyBuffer(struct vn_ring *vn_ring, VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
1368 {
1369     struct vn_ring_submit_command submit;
1370     vn_submit_vkDestroyBuffer(vn_ring, 0, device, buffer, pAllocator, &submit);
1371 }
1372 
vn_call_vkBindBufferMemory2(struct vn_ring * vn_ring,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1373 static inline VkResult vn_call_vkBindBufferMemory2(struct vn_ring *vn_ring, VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
1374 {
1375     VN_TRACE_FUNC();
1376 
1377     struct vn_ring_submit_command submit;
1378     vn_submit_vkBindBufferMemory2(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, bindInfoCount, pBindInfos, &submit);
1379     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1380     if (dec) {
1381         const VkResult ret = vn_decode_vkBindBufferMemory2_reply(dec, device, bindInfoCount, pBindInfos);
1382         vn_ring_free_command_reply(vn_ring, &submit);
1383         return ret;
1384     } else {
1385         return VK_ERROR_OUT_OF_HOST_MEMORY;
1386     }
1387 }
1388 
vn_async_vkBindBufferMemory2(struct vn_ring * vn_ring,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1389 static inline void vn_async_vkBindBufferMemory2(struct vn_ring *vn_ring, VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
1390 {
1391     struct vn_ring_submit_command submit;
1392     vn_submit_vkBindBufferMemory2(vn_ring, 0, device, bindInfoCount, pBindInfos, &submit);
1393 }
1394 
vn_call_vkGetBufferMemoryRequirements2(struct vn_ring * vn_ring,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1395 static inline void vn_call_vkGetBufferMemoryRequirements2(struct vn_ring *vn_ring, VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
1396 {
1397     VN_TRACE_FUNC();
1398 
1399     struct vn_ring_submit_command submit;
1400     vn_submit_vkGetBufferMemoryRequirements2(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pMemoryRequirements, &submit);
1401     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1402     if (dec) {
1403         vn_decode_vkGetBufferMemoryRequirements2_reply(dec, device, pInfo, pMemoryRequirements);
1404         vn_ring_free_command_reply(vn_ring, &submit);
1405     }
1406 }
1407 
vn_async_vkGetBufferMemoryRequirements2(struct vn_ring * vn_ring,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1408 static inline void vn_async_vkGetBufferMemoryRequirements2(struct vn_ring *vn_ring, VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
1409 {
1410     struct vn_ring_submit_command submit;
1411     vn_submit_vkGetBufferMemoryRequirements2(vn_ring, 0, device, pInfo, pMemoryRequirements, &submit);
1412 }
1413 
vn_call_vkGetDeviceBufferMemoryRequirements(struct vn_ring * vn_ring,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1414 static inline void vn_call_vkGetDeviceBufferMemoryRequirements(struct vn_ring *vn_ring, VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
1415 {
1416     VN_TRACE_FUNC();
1417 
1418     struct vn_ring_submit_command submit;
1419     vn_submit_vkGetDeviceBufferMemoryRequirements(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pMemoryRequirements, &submit);
1420     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1421     if (dec) {
1422         vn_decode_vkGetDeviceBufferMemoryRequirements_reply(dec, device, pInfo, pMemoryRequirements);
1423         vn_ring_free_command_reply(vn_ring, &submit);
1424     }
1425 }
1426 
vn_async_vkGetDeviceBufferMemoryRequirements(struct vn_ring * vn_ring,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1427 static inline void vn_async_vkGetDeviceBufferMemoryRequirements(struct vn_ring *vn_ring, VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
1428 {
1429     struct vn_ring_submit_command submit;
1430     vn_submit_vkGetDeviceBufferMemoryRequirements(vn_ring, 0, device, pInfo, pMemoryRequirements, &submit);
1431 }
1432 
vn_call_vkGetBufferOpaqueCaptureAddress(struct vn_ring * vn_ring,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1433 static inline uint64_t vn_call_vkGetBufferOpaqueCaptureAddress(struct vn_ring *vn_ring, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1434 {
1435     VN_TRACE_FUNC();
1436 
1437     struct vn_ring_submit_command submit;
1438     vn_submit_vkGetBufferOpaqueCaptureAddress(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, &submit);
1439     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1440     if (dec) {
1441         const uint64_t ret = vn_decode_vkGetBufferOpaqueCaptureAddress_reply(dec, device, pInfo);
1442         vn_ring_free_command_reply(vn_ring, &submit);
1443         return ret;
1444     } else {
1445         return VK_ERROR_OUT_OF_HOST_MEMORY;
1446     }
1447 }
1448 
vn_async_vkGetBufferOpaqueCaptureAddress(struct vn_ring * vn_ring,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1449 static inline void vn_async_vkGetBufferOpaqueCaptureAddress(struct vn_ring *vn_ring, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1450 {
1451     struct vn_ring_submit_command submit;
1452     vn_submit_vkGetBufferOpaqueCaptureAddress(vn_ring, 0, device, pInfo, &submit);
1453 }
1454 
vn_call_vkGetBufferDeviceAddress(struct vn_ring * vn_ring,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1455 static inline VkDeviceAddress vn_call_vkGetBufferDeviceAddress(struct vn_ring *vn_ring, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1456 {
1457     VN_TRACE_FUNC();
1458 
1459     struct vn_ring_submit_command submit;
1460     vn_submit_vkGetBufferDeviceAddress(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, &submit);
1461     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1462     if (dec) {
1463         const VkDeviceAddress ret = vn_decode_vkGetBufferDeviceAddress_reply(dec, device, pInfo);
1464         vn_ring_free_command_reply(vn_ring, &submit);
1465         return ret;
1466     } else {
1467         return VK_ERROR_OUT_OF_HOST_MEMORY;
1468     }
1469 }
1470 
vn_async_vkGetBufferDeviceAddress(struct vn_ring * vn_ring,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1471 static inline void vn_async_vkGetBufferDeviceAddress(struct vn_ring *vn_ring, VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
1472 {
1473     struct vn_ring_submit_command submit;
1474     vn_submit_vkGetBufferDeviceAddress(vn_ring, 0, device, pInfo, &submit);
1475 }
1476 
1477 #endif /* VN_PROTOCOL_DRIVER_BUFFER_H */
1478