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