xref: /aosp_15_r20/external/mesa3d/src/virtio/venus-protocol/vn_protocol_driver_transport.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_TRANSPORT_H
9 #define VN_PROTOCOL_DRIVER_TRANSPORT_H
10 
11 #include "vn_ring.h"
12 #include "vn_protocol_driver_structs.h"
13 
14 /* struct VkCommandStreamDescriptionMESA */
15 
16 static inline size_t
vn_sizeof_VkCommandStreamDescriptionMESA(const VkCommandStreamDescriptionMESA * val)17 vn_sizeof_VkCommandStreamDescriptionMESA(const VkCommandStreamDescriptionMESA *val)
18 {
19     size_t size = 0;
20     size += vn_sizeof_uint32_t(&val->resourceId);
21     size += vn_sizeof_size_t(&val->offset);
22     size += vn_sizeof_size_t(&val->size);
23     return size;
24 }
25 
26 static inline void
vn_encode_VkCommandStreamDescriptionMESA(struct vn_cs_encoder * enc,const VkCommandStreamDescriptionMESA * val)27 vn_encode_VkCommandStreamDescriptionMESA(struct vn_cs_encoder *enc, const VkCommandStreamDescriptionMESA *val)
28 {
29     vn_encode_uint32_t(enc, &val->resourceId);
30     vn_encode_size_t(enc, &val->offset);
31     vn_encode_size_t(enc, &val->size);
32 }
33 
34 /* struct VkCommandStreamDependencyMESA */
35 
36 static inline size_t
vn_sizeof_VkCommandStreamDependencyMESA(const VkCommandStreamDependencyMESA * val)37 vn_sizeof_VkCommandStreamDependencyMESA(const VkCommandStreamDependencyMESA *val)
38 {
39     size_t size = 0;
40     size += vn_sizeof_uint32_t(&val->srcCommandStream);
41     size += vn_sizeof_uint32_t(&val->dstCommandStream);
42     return size;
43 }
44 
45 static inline void
vn_encode_VkCommandStreamDependencyMESA(struct vn_cs_encoder * enc,const VkCommandStreamDependencyMESA * val)46 vn_encode_VkCommandStreamDependencyMESA(struct vn_cs_encoder *enc, const VkCommandStreamDependencyMESA *val)
47 {
48     vn_encode_uint32_t(enc, &val->srcCommandStream);
49     vn_encode_uint32_t(enc, &val->dstCommandStream);
50 }
51 
52 /* struct VkRingMonitorInfoMESA chain */
53 
54 static inline size_t
vn_sizeof_VkRingMonitorInfoMESA_pnext(const void * val)55 vn_sizeof_VkRingMonitorInfoMESA_pnext(const void *val)
56 {
57     /* no known/supported struct */
58     return vn_sizeof_simple_pointer(NULL);
59 }
60 
61 static inline size_t
vn_sizeof_VkRingMonitorInfoMESA_self(const VkRingMonitorInfoMESA * val)62 vn_sizeof_VkRingMonitorInfoMESA_self(const VkRingMonitorInfoMESA *val)
63 {
64     size_t size = 0;
65     /* skip val->{sType,pNext} */
66     size += vn_sizeof_uint32_t(&val->maxReportingPeriodMicroseconds);
67     return size;
68 }
69 
70 static inline size_t
vn_sizeof_VkRingMonitorInfoMESA(const VkRingMonitorInfoMESA * val)71 vn_sizeof_VkRingMonitorInfoMESA(const VkRingMonitorInfoMESA *val)
72 {
73     size_t size = 0;
74 
75     size += vn_sizeof_VkStructureType(&val->sType);
76     size += vn_sizeof_VkRingMonitorInfoMESA_pnext(val->pNext);
77     size += vn_sizeof_VkRingMonitorInfoMESA_self(val);
78 
79     return size;
80 }
81 
82 static inline void
vn_encode_VkRingMonitorInfoMESA_pnext(struct vn_cs_encoder * enc,const void * val)83 vn_encode_VkRingMonitorInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)
84 {
85     /* no known/supported struct */
86     vn_encode_simple_pointer(enc, NULL);
87 }
88 
89 static inline void
vn_encode_VkRingMonitorInfoMESA_self(struct vn_cs_encoder * enc,const VkRingMonitorInfoMESA * val)90 vn_encode_VkRingMonitorInfoMESA_self(struct vn_cs_encoder *enc, const VkRingMonitorInfoMESA *val)
91 {
92     /* skip val->{sType,pNext} */
93     vn_encode_uint32_t(enc, &val->maxReportingPeriodMicroseconds);
94 }
95 
96 static inline void
vn_encode_VkRingMonitorInfoMESA(struct vn_cs_encoder * enc,const VkRingMonitorInfoMESA * val)97 vn_encode_VkRingMonitorInfoMESA(struct vn_cs_encoder *enc, const VkRingMonitorInfoMESA *val)
98 {
99     assert(val->sType == VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA);
100     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA });
101     vn_encode_VkRingMonitorInfoMESA_pnext(enc, val->pNext);
102     vn_encode_VkRingMonitorInfoMESA_self(enc, val);
103 }
104 
105 /* struct VkRingPriorityInfoMESA chain */
106 
107 static inline size_t
vn_sizeof_VkRingPriorityInfoMESA_pnext(const void * val)108 vn_sizeof_VkRingPriorityInfoMESA_pnext(const void *val)
109 {
110     /* no known/supported struct */
111     return vn_sizeof_simple_pointer(NULL);
112 }
113 
114 static inline size_t
vn_sizeof_VkRingPriorityInfoMESA_self(const VkRingPriorityInfoMESA * val)115 vn_sizeof_VkRingPriorityInfoMESA_self(const VkRingPriorityInfoMESA *val)
116 {
117     size_t size = 0;
118     /* skip val->{sType,pNext} */
119     size += vn_sizeof_int32_t(&val->priority);
120     return size;
121 }
122 
123 static inline size_t
vn_sizeof_VkRingPriorityInfoMESA(const VkRingPriorityInfoMESA * val)124 vn_sizeof_VkRingPriorityInfoMESA(const VkRingPriorityInfoMESA *val)
125 {
126     size_t size = 0;
127 
128     size += vn_sizeof_VkStructureType(&val->sType);
129     size += vn_sizeof_VkRingPriorityInfoMESA_pnext(val->pNext);
130     size += vn_sizeof_VkRingPriorityInfoMESA_self(val);
131 
132     return size;
133 }
134 
135 static inline void
vn_encode_VkRingPriorityInfoMESA_pnext(struct vn_cs_encoder * enc,const void * val)136 vn_encode_VkRingPriorityInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)
137 {
138     /* no known/supported struct */
139     vn_encode_simple_pointer(enc, NULL);
140 }
141 
142 static inline void
vn_encode_VkRingPriorityInfoMESA_self(struct vn_cs_encoder * enc,const VkRingPriorityInfoMESA * val)143 vn_encode_VkRingPriorityInfoMESA_self(struct vn_cs_encoder *enc, const VkRingPriorityInfoMESA *val)
144 {
145     /* skip val->{sType,pNext} */
146     vn_encode_int32_t(enc, &val->priority);
147 }
148 
149 static inline void
vn_encode_VkRingPriorityInfoMESA(struct vn_cs_encoder * enc,const VkRingPriorityInfoMESA * val)150 vn_encode_VkRingPriorityInfoMESA(struct vn_cs_encoder *enc, const VkRingPriorityInfoMESA *val)
151 {
152     assert(val->sType == VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA);
153     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA });
154     vn_encode_VkRingPriorityInfoMESA_pnext(enc, val->pNext);
155     vn_encode_VkRingPriorityInfoMESA_self(enc, val);
156 }
157 
158 /* struct VkRingCreateInfoMESA chain */
159 
160 static inline size_t
vn_sizeof_VkRingCreateInfoMESA_pnext(const void * val)161 vn_sizeof_VkRingCreateInfoMESA_pnext(const void *val)
162 {
163     const VkBaseInStructure *pnext = val;
164     size_t size = 0;
165 
166     while (pnext) {
167         switch ((int32_t)pnext->sType) {
168         case VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA:
169             size += vn_sizeof_simple_pointer(pnext);
170             size += vn_sizeof_VkStructureType(&pnext->sType);
171             size += vn_sizeof_VkRingCreateInfoMESA_pnext(pnext->pNext);
172             size += vn_sizeof_VkRingMonitorInfoMESA_self((const VkRingMonitorInfoMESA *)pnext);
173             return size;
174         case VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA:
175             size += vn_sizeof_simple_pointer(pnext);
176             size += vn_sizeof_VkStructureType(&pnext->sType);
177             size += vn_sizeof_VkRingCreateInfoMESA_pnext(pnext->pNext);
178             size += vn_sizeof_VkRingPriorityInfoMESA_self((const VkRingPriorityInfoMESA *)pnext);
179             return size;
180         default:
181             /* ignore unknown/unsupported struct */
182             break;
183         }
184         pnext = pnext->pNext;
185     }
186 
187     return vn_sizeof_simple_pointer(NULL);
188 }
189 
190 static inline size_t
vn_sizeof_VkRingCreateInfoMESA_self(const VkRingCreateInfoMESA * val)191 vn_sizeof_VkRingCreateInfoMESA_self(const VkRingCreateInfoMESA *val)
192 {
193     size_t size = 0;
194     /* skip val->{sType,pNext} */
195     size += vn_sizeof_VkFlags(&val->flags);
196     size += vn_sizeof_uint32_t(&val->resourceId);
197     size += vn_sizeof_size_t(&val->offset);
198     size += vn_sizeof_size_t(&val->size);
199     size += vn_sizeof_uint64_t(&val->idleTimeout);
200     size += vn_sizeof_size_t(&val->headOffset);
201     size += vn_sizeof_size_t(&val->tailOffset);
202     size += vn_sizeof_size_t(&val->statusOffset);
203     size += vn_sizeof_size_t(&val->bufferOffset);
204     size += vn_sizeof_size_t(&val->bufferSize);
205     size += vn_sizeof_size_t(&val->extraOffset);
206     size += vn_sizeof_size_t(&val->extraSize);
207     return size;
208 }
209 
210 static inline size_t
vn_sizeof_VkRingCreateInfoMESA(const VkRingCreateInfoMESA * val)211 vn_sizeof_VkRingCreateInfoMESA(const VkRingCreateInfoMESA *val)
212 {
213     size_t size = 0;
214 
215     size += vn_sizeof_VkStructureType(&val->sType);
216     size += vn_sizeof_VkRingCreateInfoMESA_pnext(val->pNext);
217     size += vn_sizeof_VkRingCreateInfoMESA_self(val);
218 
219     return size;
220 }
221 
222 static inline void
vn_encode_VkRingCreateInfoMESA_pnext(struct vn_cs_encoder * enc,const void * val)223 vn_encode_VkRingCreateInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)
224 {
225     const VkBaseInStructure *pnext = val;
226 
227     while (pnext) {
228         switch ((int32_t)pnext->sType) {
229         case VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA:
230             vn_encode_simple_pointer(enc, pnext);
231             vn_encode_VkStructureType(enc, &pnext->sType);
232             vn_encode_VkRingCreateInfoMESA_pnext(enc, pnext->pNext);
233             vn_encode_VkRingMonitorInfoMESA_self(enc, (const VkRingMonitorInfoMESA *)pnext);
234             return;
235         case VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA:
236             vn_encode_simple_pointer(enc, pnext);
237             vn_encode_VkStructureType(enc, &pnext->sType);
238             vn_encode_VkRingCreateInfoMESA_pnext(enc, pnext->pNext);
239             vn_encode_VkRingPriorityInfoMESA_self(enc, (const VkRingPriorityInfoMESA *)pnext);
240             return;
241         default:
242             /* ignore unknown/unsupported struct */
243             break;
244         }
245         pnext = pnext->pNext;
246     }
247 
248     vn_encode_simple_pointer(enc, NULL);
249 }
250 
251 static inline void
vn_encode_VkRingCreateInfoMESA_self(struct vn_cs_encoder * enc,const VkRingCreateInfoMESA * val)252 vn_encode_VkRingCreateInfoMESA_self(struct vn_cs_encoder *enc, const VkRingCreateInfoMESA *val)
253 {
254     /* skip val->{sType,pNext} */
255     vn_encode_VkFlags(enc, &val->flags);
256     vn_encode_uint32_t(enc, &val->resourceId);
257     vn_encode_size_t(enc, &val->offset);
258     vn_encode_size_t(enc, &val->size);
259     vn_encode_uint64_t(enc, &val->idleTimeout);
260     vn_encode_size_t(enc, &val->headOffset);
261     vn_encode_size_t(enc, &val->tailOffset);
262     vn_encode_size_t(enc, &val->statusOffset);
263     vn_encode_size_t(enc, &val->bufferOffset);
264     vn_encode_size_t(enc, &val->bufferSize);
265     vn_encode_size_t(enc, &val->extraOffset);
266     vn_encode_size_t(enc, &val->extraSize);
267 }
268 
269 static inline void
vn_encode_VkRingCreateInfoMESA(struct vn_cs_encoder * enc,const VkRingCreateInfoMESA * val)270 vn_encode_VkRingCreateInfoMESA(struct vn_cs_encoder *enc, const VkRingCreateInfoMESA *val)
271 {
272     assert(val->sType == VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA);
273     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA });
274     vn_encode_VkRingCreateInfoMESA_pnext(enc, val->pNext);
275     vn_encode_VkRingCreateInfoMESA_self(enc, val);
276 }
277 
vn_sizeof_vkSetReplyCommandStreamMESA(const VkCommandStreamDescriptionMESA * pStream)278 static inline size_t vn_sizeof_vkSetReplyCommandStreamMESA(const VkCommandStreamDescriptionMESA* pStream)
279 {
280     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;
281     const VkFlags cmd_flags = 0;
282     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
283 
284     cmd_size += vn_sizeof_simple_pointer(pStream);
285     if (pStream)
286         cmd_size += vn_sizeof_VkCommandStreamDescriptionMESA(pStream);
287 
288     return cmd_size;
289 }
290 
vn_encode_vkSetReplyCommandStreamMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,const VkCommandStreamDescriptionMESA * pStream)291 static inline void vn_encode_vkSetReplyCommandStreamMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, const VkCommandStreamDescriptionMESA* pStream)
292 {
293     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;
294 
295     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
296     vn_encode_VkFlags(enc, &cmd_flags);
297 
298     if (vn_encode_simple_pointer(enc, pStream))
299         vn_encode_VkCommandStreamDescriptionMESA(enc, pStream);
300 }
301 
vn_sizeof_vkSetReplyCommandStreamMESA_reply(const VkCommandStreamDescriptionMESA * pStream)302 static inline size_t vn_sizeof_vkSetReplyCommandStreamMESA_reply(const VkCommandStreamDescriptionMESA* pStream)
303 {
304     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;
305     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
306 
307     /* skip pStream */
308 
309     return cmd_size;
310 }
311 
vn_decode_vkSetReplyCommandStreamMESA_reply(struct vn_cs_decoder * dec,const VkCommandStreamDescriptionMESA * pStream)312 static inline void vn_decode_vkSetReplyCommandStreamMESA_reply(struct vn_cs_decoder *dec, const VkCommandStreamDescriptionMESA* pStream)
313 {
314     VkCommandTypeEXT command_type;
315     vn_decode_VkCommandTypeEXT(dec, &command_type);
316     assert(command_type == VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT);
317 
318     /* skip pStream */
319 }
320 
vn_sizeof_vkSeekReplyCommandStreamMESA(size_t position)321 static inline size_t vn_sizeof_vkSeekReplyCommandStreamMESA(size_t position)
322 {
323     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;
324     const VkFlags cmd_flags = 0;
325     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
326 
327     cmd_size += vn_sizeof_size_t(&position);
328 
329     return cmd_size;
330 }
331 
vn_encode_vkSeekReplyCommandStreamMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,size_t position)332 static inline void vn_encode_vkSeekReplyCommandStreamMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, size_t position)
333 {
334     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;
335 
336     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
337     vn_encode_VkFlags(enc, &cmd_flags);
338 
339     vn_encode_size_t(enc, &position);
340 }
341 
vn_sizeof_vkSeekReplyCommandStreamMESA_reply(size_t position)342 static inline size_t vn_sizeof_vkSeekReplyCommandStreamMESA_reply(size_t position)
343 {
344     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;
345     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
346 
347     /* skip position */
348 
349     return cmd_size;
350 }
351 
vn_decode_vkSeekReplyCommandStreamMESA_reply(struct vn_cs_decoder * dec,size_t position)352 static inline void vn_decode_vkSeekReplyCommandStreamMESA_reply(struct vn_cs_decoder *dec, size_t position)
353 {
354     VkCommandTypeEXT command_type;
355     vn_decode_VkCommandTypeEXT(dec, &command_type);
356     assert(command_type == VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT);
357 
358     /* skip position */
359 }
360 
vn_sizeof_vkExecuteCommandStreamsMESA(uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)361 static inline size_t vn_sizeof_vkExecuteCommandStreamsMESA(uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
362 {
363     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;
364     const VkFlags cmd_flags = 0;
365     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
366 
367     cmd_size += vn_sizeof_uint32_t(&streamCount);
368     if (pStreams) {
369         cmd_size += vn_sizeof_array_size(streamCount);
370         for (uint32_t i = 0; i < streamCount; i++)
371             cmd_size += vn_sizeof_VkCommandStreamDescriptionMESA(&pStreams[i]);
372     } else {
373         cmd_size += vn_sizeof_array_size(0);
374     }
375     if (pReplyPositions) {
376         cmd_size += vn_sizeof_array_size(streamCount);
377         cmd_size += vn_sizeof_size_t_array(pReplyPositions, streamCount);
378     } else {
379         cmd_size += vn_sizeof_array_size(0);
380     }
381     cmd_size += vn_sizeof_uint32_t(&dependencyCount);
382     if (pDependencies) {
383         cmd_size += vn_sizeof_array_size(dependencyCount);
384         for (uint32_t i = 0; i < dependencyCount; i++)
385             cmd_size += vn_sizeof_VkCommandStreamDependencyMESA(&pDependencies[i]);
386     } else {
387         cmd_size += vn_sizeof_array_size(0);
388     }
389     cmd_size += vn_sizeof_VkFlags(&flags);
390 
391     return cmd_size;
392 }
393 
vn_encode_vkExecuteCommandStreamsMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)394 static inline void vn_encode_vkExecuteCommandStreamsMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
395 {
396     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;
397 
398     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
399     vn_encode_VkFlags(enc, &cmd_flags);
400 
401     vn_encode_uint32_t(enc, &streamCount);
402     if (pStreams) {
403         vn_encode_array_size(enc, streamCount);
404         for (uint32_t i = 0; i < streamCount; i++)
405             vn_encode_VkCommandStreamDescriptionMESA(enc, &pStreams[i]);
406     } else {
407         vn_encode_array_size(enc, 0);
408     }
409     if (pReplyPositions) {
410         vn_encode_array_size(enc, streamCount);
411         vn_encode_size_t_array(enc, pReplyPositions, streamCount);
412     } else {
413         vn_encode_array_size(enc, 0);
414     }
415     vn_encode_uint32_t(enc, &dependencyCount);
416     if (pDependencies) {
417         vn_encode_array_size(enc, dependencyCount);
418         for (uint32_t i = 0; i < dependencyCount; i++)
419             vn_encode_VkCommandStreamDependencyMESA(enc, &pDependencies[i]);
420     } else {
421         vn_encode_array_size(enc, 0);
422     }
423     vn_encode_VkFlags(enc, &flags);
424 }
425 
vn_sizeof_vkExecuteCommandStreamsMESA_reply(uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)426 static inline size_t vn_sizeof_vkExecuteCommandStreamsMESA_reply(uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
427 {
428     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;
429     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
430 
431     /* skip streamCount */
432     /* skip pStreams */
433     /* skip pReplyPositions */
434     /* skip dependencyCount */
435     /* skip pDependencies */
436     /* skip flags */
437 
438     return cmd_size;
439 }
440 
vn_decode_vkExecuteCommandStreamsMESA_reply(struct vn_cs_decoder * dec,uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)441 static inline void vn_decode_vkExecuteCommandStreamsMESA_reply(struct vn_cs_decoder *dec, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
442 {
443     VkCommandTypeEXT command_type;
444     vn_decode_VkCommandTypeEXT(dec, &command_type);
445     assert(command_type == VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT);
446 
447     /* skip streamCount */
448     /* skip pStreams */
449     /* skip pReplyPositions */
450     /* skip dependencyCount */
451     /* skip pDependencies */
452     /* skip flags */
453 }
454 
vn_sizeof_vkCreateRingMESA(uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)455 static inline size_t vn_sizeof_vkCreateRingMESA(uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
456 {
457     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;
458     const VkFlags cmd_flags = 0;
459     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
460 
461     cmd_size += vn_sizeof_uint64_t(&ring);
462     cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
463     if (pCreateInfo)
464         cmd_size += vn_sizeof_VkRingCreateInfoMESA(pCreateInfo);
465 
466     return cmd_size;
467 }
468 
vn_encode_vkCreateRingMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)469 static inline void vn_encode_vkCreateRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
470 {
471     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;
472 
473     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
474     vn_encode_VkFlags(enc, &cmd_flags);
475 
476     vn_encode_uint64_t(enc, &ring);
477     if (vn_encode_simple_pointer(enc, pCreateInfo))
478         vn_encode_VkRingCreateInfoMESA(enc, pCreateInfo);
479 }
480 
vn_sizeof_vkCreateRingMESA_reply(uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)481 static inline size_t vn_sizeof_vkCreateRingMESA_reply(uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
482 {
483     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;
484     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
485 
486     /* skip ring */
487     /* skip pCreateInfo */
488 
489     return cmd_size;
490 }
491 
vn_decode_vkCreateRingMESA_reply(struct vn_cs_decoder * dec,uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)492 static inline void vn_decode_vkCreateRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
493 {
494     VkCommandTypeEXT command_type;
495     vn_decode_VkCommandTypeEXT(dec, &command_type);
496     assert(command_type == VK_COMMAND_TYPE_vkCreateRingMESA_EXT);
497 
498     /* skip ring */
499     /* skip pCreateInfo */
500 }
501 
vn_sizeof_vkDestroyRingMESA(uint64_t ring)502 static inline size_t vn_sizeof_vkDestroyRingMESA(uint64_t ring)
503 {
504     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;
505     const VkFlags cmd_flags = 0;
506     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
507 
508     cmd_size += vn_sizeof_uint64_t(&ring);
509 
510     return cmd_size;
511 }
512 
vn_encode_vkDestroyRingMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring)513 static inline void vn_encode_vkDestroyRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring)
514 {
515     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;
516 
517     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
518     vn_encode_VkFlags(enc, &cmd_flags);
519 
520     vn_encode_uint64_t(enc, &ring);
521 }
522 
vn_sizeof_vkDestroyRingMESA_reply(uint64_t ring)523 static inline size_t vn_sizeof_vkDestroyRingMESA_reply(uint64_t ring)
524 {
525     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;
526     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
527 
528     /* skip ring */
529 
530     return cmd_size;
531 }
532 
vn_decode_vkDestroyRingMESA_reply(struct vn_cs_decoder * dec,uint64_t ring)533 static inline void vn_decode_vkDestroyRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring)
534 {
535     VkCommandTypeEXT command_type;
536     vn_decode_VkCommandTypeEXT(dec, &command_type);
537     assert(command_type == VK_COMMAND_TYPE_vkDestroyRingMESA_EXT);
538 
539     /* skip ring */
540 }
541 
vn_sizeof_vkNotifyRingMESA(uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)542 static inline size_t vn_sizeof_vkNotifyRingMESA(uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
543 {
544     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;
545     const VkFlags cmd_flags = 0;
546     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
547 
548     cmd_size += vn_sizeof_uint64_t(&ring);
549     cmd_size += vn_sizeof_uint32_t(&seqno);
550     cmd_size += vn_sizeof_VkFlags(&flags);
551 
552     return cmd_size;
553 }
554 
vn_encode_vkNotifyRingMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)555 static inline void vn_encode_vkNotifyRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
556 {
557     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;
558 
559     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
560     vn_encode_VkFlags(enc, &cmd_flags);
561 
562     vn_encode_uint64_t(enc, &ring);
563     vn_encode_uint32_t(enc, &seqno);
564     vn_encode_VkFlags(enc, &flags);
565 }
566 
vn_sizeof_vkNotifyRingMESA_reply(uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)567 static inline size_t vn_sizeof_vkNotifyRingMESA_reply(uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
568 {
569     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;
570     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
571 
572     /* skip ring */
573     /* skip seqno */
574     /* skip flags */
575 
576     return cmd_size;
577 }
578 
vn_decode_vkNotifyRingMESA_reply(struct vn_cs_decoder * dec,uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)579 static inline void vn_decode_vkNotifyRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
580 {
581     VkCommandTypeEXT command_type;
582     vn_decode_VkCommandTypeEXT(dec, &command_type);
583     assert(command_type == VK_COMMAND_TYPE_vkNotifyRingMESA_EXT);
584 
585     /* skip ring */
586     /* skip seqno */
587     /* skip flags */
588 }
589 
vn_sizeof_vkWriteRingExtraMESA(uint64_t ring,size_t offset,uint32_t value)590 static inline size_t vn_sizeof_vkWriteRingExtraMESA(uint64_t ring, size_t offset, uint32_t value)
591 {
592     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;
593     const VkFlags cmd_flags = 0;
594     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
595 
596     cmd_size += vn_sizeof_uint64_t(&ring);
597     cmd_size += vn_sizeof_size_t(&offset);
598     cmd_size += vn_sizeof_uint32_t(&value);
599 
600     return cmd_size;
601 }
602 
vn_encode_vkWriteRingExtraMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring,size_t offset,uint32_t value)603 static inline void vn_encode_vkWriteRingExtraMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, size_t offset, uint32_t value)
604 {
605     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;
606 
607     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
608     vn_encode_VkFlags(enc, &cmd_flags);
609 
610     vn_encode_uint64_t(enc, &ring);
611     vn_encode_size_t(enc, &offset);
612     vn_encode_uint32_t(enc, &value);
613 }
614 
vn_sizeof_vkWriteRingExtraMESA_reply(uint64_t ring,size_t offset,uint32_t value)615 static inline size_t vn_sizeof_vkWriteRingExtraMESA_reply(uint64_t ring, size_t offset, uint32_t value)
616 {
617     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;
618     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
619 
620     /* skip ring */
621     /* skip offset */
622     /* skip value */
623 
624     return cmd_size;
625 }
626 
vn_decode_vkWriteRingExtraMESA_reply(struct vn_cs_decoder * dec,uint64_t ring,size_t offset,uint32_t value)627 static inline void vn_decode_vkWriteRingExtraMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, size_t offset, uint32_t value)
628 {
629     VkCommandTypeEXT command_type;
630     vn_decode_VkCommandTypeEXT(dec, &command_type);
631     assert(command_type == VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT);
632 
633     /* skip ring */
634     /* skip offset */
635     /* skip value */
636 }
637 
vn_sizeof_vkSubmitVirtqueueSeqnoMESA(uint64_t ring,uint64_t seqno)638 static inline size_t vn_sizeof_vkSubmitVirtqueueSeqnoMESA(uint64_t ring, uint64_t seqno)
639 {
640     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT;
641     const VkFlags cmd_flags = 0;
642     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
643 
644     cmd_size += vn_sizeof_uint64_t(&ring);
645     cmd_size += vn_sizeof_uint64_t(&seqno);
646 
647     return cmd_size;
648 }
649 
vn_encode_vkSubmitVirtqueueSeqnoMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint64_t seqno)650 static inline void vn_encode_vkSubmitVirtqueueSeqnoMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint64_t seqno)
651 {
652     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT;
653 
654     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
655     vn_encode_VkFlags(enc, &cmd_flags);
656 
657     vn_encode_uint64_t(enc, &ring);
658     vn_encode_uint64_t(enc, &seqno);
659 }
660 
vn_sizeof_vkSubmitVirtqueueSeqnoMESA_reply(uint64_t ring,uint64_t seqno)661 static inline size_t vn_sizeof_vkSubmitVirtqueueSeqnoMESA_reply(uint64_t ring, uint64_t seqno)
662 {
663     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT;
664     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
665 
666     /* skip ring */
667     /* skip seqno */
668 
669     return cmd_size;
670 }
671 
vn_decode_vkSubmitVirtqueueSeqnoMESA_reply(struct vn_cs_decoder * dec,uint64_t ring,uint64_t seqno)672 static inline void vn_decode_vkSubmitVirtqueueSeqnoMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, uint64_t seqno)
673 {
674     VkCommandTypeEXT command_type;
675     vn_decode_VkCommandTypeEXT(dec, &command_type);
676     assert(command_type == VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT);
677 
678     /* skip ring */
679     /* skip seqno */
680 }
681 
vn_sizeof_vkWaitVirtqueueSeqnoMESA(uint64_t seqno)682 static inline size_t vn_sizeof_vkWaitVirtqueueSeqnoMESA(uint64_t seqno)
683 {
684     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT;
685     const VkFlags cmd_flags = 0;
686     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
687 
688     cmd_size += vn_sizeof_uint64_t(&seqno);
689 
690     return cmd_size;
691 }
692 
vn_encode_vkWaitVirtqueueSeqnoMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t seqno)693 static inline void vn_encode_vkWaitVirtqueueSeqnoMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t seqno)
694 {
695     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT;
696 
697     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
698     vn_encode_VkFlags(enc, &cmd_flags);
699 
700     vn_encode_uint64_t(enc, &seqno);
701 }
702 
vn_sizeof_vkWaitVirtqueueSeqnoMESA_reply(uint64_t seqno)703 static inline size_t vn_sizeof_vkWaitVirtqueueSeqnoMESA_reply(uint64_t seqno)
704 {
705     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT;
706     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
707 
708     /* skip seqno */
709 
710     return cmd_size;
711 }
712 
vn_decode_vkWaitVirtqueueSeqnoMESA_reply(struct vn_cs_decoder * dec,uint64_t seqno)713 static inline void vn_decode_vkWaitVirtqueueSeqnoMESA_reply(struct vn_cs_decoder *dec, uint64_t seqno)
714 {
715     VkCommandTypeEXT command_type;
716     vn_decode_VkCommandTypeEXT(dec, &command_type);
717     assert(command_type == VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT);
718 
719     /* skip seqno */
720 }
721 
vn_sizeof_vkWaitRingSeqnoMESA(uint64_t ring,uint64_t seqno)722 static inline size_t vn_sizeof_vkWaitRingSeqnoMESA(uint64_t ring, uint64_t seqno)
723 {
724     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT;
725     const VkFlags cmd_flags = 0;
726     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
727 
728     cmd_size += vn_sizeof_uint64_t(&ring);
729     cmd_size += vn_sizeof_uint64_t(&seqno);
730 
731     return cmd_size;
732 }
733 
vn_encode_vkWaitRingSeqnoMESA(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint64_t seqno)734 static inline void vn_encode_vkWaitRingSeqnoMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint64_t seqno)
735 {
736     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT;
737 
738     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
739     vn_encode_VkFlags(enc, &cmd_flags);
740 
741     vn_encode_uint64_t(enc, &ring);
742     vn_encode_uint64_t(enc, &seqno);
743 }
744 
vn_sizeof_vkWaitRingSeqnoMESA_reply(uint64_t ring,uint64_t seqno)745 static inline size_t vn_sizeof_vkWaitRingSeqnoMESA_reply(uint64_t ring, uint64_t seqno)
746 {
747     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT;
748     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
749 
750     /* skip ring */
751     /* skip seqno */
752 
753     return cmd_size;
754 }
755 
vn_decode_vkWaitRingSeqnoMESA_reply(struct vn_cs_decoder * dec,uint64_t ring,uint64_t seqno)756 static inline void vn_decode_vkWaitRingSeqnoMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, uint64_t seqno)
757 {
758     VkCommandTypeEXT command_type;
759     vn_decode_VkCommandTypeEXT(dec, &command_type);
760     assert(command_type == VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT);
761 
762     /* skip ring */
763     /* skip seqno */
764 }
765 
vn_submit_vkSetReplyCommandStreamMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,const VkCommandStreamDescriptionMESA * pStream,struct vn_ring_submit_command * submit)766 static inline void vn_submit_vkSetReplyCommandStreamMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, const VkCommandStreamDescriptionMESA* pStream, struct vn_ring_submit_command *submit)
767 {
768     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
769     void *cmd_data = local_cmd_data;
770     size_t cmd_size = vn_sizeof_vkSetReplyCommandStreamMESA(pStream);
771     if (cmd_size > sizeof(local_cmd_data)) {
772         cmd_data = malloc(cmd_size);
773         if (!cmd_data)
774             cmd_size = 0;
775     }
776     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSetReplyCommandStreamMESA_reply(pStream) : 0;
777 
778     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
779     if (cmd_size) {
780         vn_encode_vkSetReplyCommandStreamMESA(enc, cmd_flags, pStream);
781         vn_ring_submit_command(vn_ring, submit);
782         if (cmd_data != local_cmd_data)
783             free(cmd_data);
784     }
785 }
786 
vn_submit_vkSeekReplyCommandStreamMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,size_t position,struct vn_ring_submit_command * submit)787 static inline void vn_submit_vkSeekReplyCommandStreamMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, size_t position, struct vn_ring_submit_command *submit)
788 {
789     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
790     void *cmd_data = local_cmd_data;
791     size_t cmd_size = vn_sizeof_vkSeekReplyCommandStreamMESA(position);
792     if (cmd_size > sizeof(local_cmd_data)) {
793         cmd_data = malloc(cmd_size);
794         if (!cmd_data)
795             cmd_size = 0;
796     }
797     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSeekReplyCommandStreamMESA_reply(position) : 0;
798 
799     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
800     if (cmd_size) {
801         vn_encode_vkSeekReplyCommandStreamMESA(enc, cmd_flags, position);
802         vn_ring_submit_command(vn_ring, submit);
803         if (cmd_data != local_cmd_data)
804             free(cmd_data);
805     }
806 }
807 
vn_submit_vkExecuteCommandStreamsMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags,struct vn_ring_submit_command * submit)808 static inline void vn_submit_vkExecuteCommandStreamsMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags, struct vn_ring_submit_command *submit)
809 {
810     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
811     void *cmd_data = local_cmd_data;
812     size_t cmd_size = vn_sizeof_vkExecuteCommandStreamsMESA(streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);
813     if (cmd_size > sizeof(local_cmd_data)) {
814         cmd_data = malloc(cmd_size);
815         if (!cmd_data)
816             cmd_size = 0;
817     }
818     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkExecuteCommandStreamsMESA_reply(streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags) : 0;
819 
820     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
821     if (cmd_size) {
822         vn_encode_vkExecuteCommandStreamsMESA(enc, cmd_flags, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);
823         vn_ring_submit_command(vn_ring, submit);
824         if (cmd_data != local_cmd_data)
825             free(cmd_data);
826     }
827 }
828 
vn_submit_vkCreateRingMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo,struct vn_ring_submit_command * submit)829 static inline void vn_submit_vkCreateRingMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo, struct vn_ring_submit_command *submit)
830 {
831     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
832     void *cmd_data = local_cmd_data;
833     size_t cmd_size = vn_sizeof_vkCreateRingMESA(ring, pCreateInfo);
834     if (cmd_size > sizeof(local_cmd_data)) {
835         cmd_data = malloc(cmd_size);
836         if (!cmd_data)
837             cmd_size = 0;
838     }
839     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateRingMESA_reply(ring, pCreateInfo) : 0;
840 
841     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
842     if (cmd_size) {
843         vn_encode_vkCreateRingMESA(enc, cmd_flags, ring, pCreateInfo);
844         vn_ring_submit_command(vn_ring, submit);
845         if (cmd_data != local_cmd_data)
846             free(cmd_data);
847     }
848 }
849 
vn_submit_vkDestroyRingMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,struct vn_ring_submit_command * submit)850 static inline void vn_submit_vkDestroyRingMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, struct vn_ring_submit_command *submit)
851 {
852     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
853     void *cmd_data = local_cmd_data;
854     size_t cmd_size = vn_sizeof_vkDestroyRingMESA(ring);
855     if (cmd_size > sizeof(local_cmd_data)) {
856         cmd_data = malloc(cmd_size);
857         if (!cmd_data)
858             cmd_size = 0;
859     }
860     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyRingMESA_reply(ring) : 0;
861 
862     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
863     if (cmd_size) {
864         vn_encode_vkDestroyRingMESA(enc, cmd_flags, ring);
865         vn_ring_submit_command(vn_ring, submit);
866         if (cmd_data != local_cmd_data)
867             free(cmd_data);
868     }
869 }
870 
vn_submit_vkNotifyRingMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags,struct vn_ring_submit_command * submit)871 static inline void vn_submit_vkNotifyRingMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags, struct vn_ring_submit_command *submit)
872 {
873     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
874     void *cmd_data = local_cmd_data;
875     size_t cmd_size = vn_sizeof_vkNotifyRingMESA(ring, seqno, flags);
876     if (cmd_size > sizeof(local_cmd_data)) {
877         cmd_data = malloc(cmd_size);
878         if (!cmd_data)
879             cmd_size = 0;
880     }
881     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkNotifyRingMESA_reply(ring, seqno, flags) : 0;
882 
883     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
884     if (cmd_size) {
885         vn_encode_vkNotifyRingMESA(enc, cmd_flags, ring, seqno, flags);
886         vn_ring_submit_command(vn_ring, submit);
887         if (cmd_data != local_cmd_data)
888             free(cmd_data);
889     }
890 }
891 
vn_submit_vkWriteRingExtraMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,size_t offset,uint32_t value,struct vn_ring_submit_command * submit)892 static inline void vn_submit_vkWriteRingExtraMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, size_t offset, uint32_t value, struct vn_ring_submit_command *submit)
893 {
894     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
895     void *cmd_data = local_cmd_data;
896     size_t cmd_size = vn_sizeof_vkWriteRingExtraMESA(ring, offset, value);
897     if (cmd_size > sizeof(local_cmd_data)) {
898         cmd_data = malloc(cmd_size);
899         if (!cmd_data)
900             cmd_size = 0;
901     }
902     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWriteRingExtraMESA_reply(ring, offset, value) : 0;
903 
904     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
905     if (cmd_size) {
906         vn_encode_vkWriteRingExtraMESA(enc, cmd_flags, ring, offset, value);
907         vn_ring_submit_command(vn_ring, submit);
908         if (cmd_data != local_cmd_data)
909             free(cmd_data);
910     }
911 }
912 
vn_submit_vkSubmitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint64_t seqno,struct vn_ring_submit_command * submit)913 static inline void vn_submit_vkSubmitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint64_t seqno, struct vn_ring_submit_command *submit)
914 {
915     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
916     void *cmd_data = local_cmd_data;
917     size_t cmd_size = vn_sizeof_vkSubmitVirtqueueSeqnoMESA(ring, seqno);
918     if (cmd_size > sizeof(local_cmd_data)) {
919         cmd_data = malloc(cmd_size);
920         if (!cmd_data)
921             cmd_size = 0;
922     }
923     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSubmitVirtqueueSeqnoMESA_reply(ring, seqno) : 0;
924 
925     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
926     if (cmd_size) {
927         vn_encode_vkSubmitVirtqueueSeqnoMESA(enc, cmd_flags, ring, seqno);
928         vn_ring_submit_command(vn_ring, submit);
929         if (cmd_data != local_cmd_data)
930             free(cmd_data);
931     }
932 }
933 
vn_submit_vkWaitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t seqno,struct vn_ring_submit_command * submit)934 static inline void vn_submit_vkWaitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t seqno, struct vn_ring_submit_command *submit)
935 {
936     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
937     void *cmd_data = local_cmd_data;
938     size_t cmd_size = vn_sizeof_vkWaitVirtqueueSeqnoMESA(seqno);
939     if (cmd_size > sizeof(local_cmd_data)) {
940         cmd_data = malloc(cmd_size);
941         if (!cmd_data)
942             cmd_size = 0;
943     }
944     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWaitVirtqueueSeqnoMESA_reply(seqno) : 0;
945 
946     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
947     if (cmd_size) {
948         vn_encode_vkWaitVirtqueueSeqnoMESA(enc, cmd_flags, seqno);
949         vn_ring_submit_command(vn_ring, submit);
950         if (cmd_data != local_cmd_data)
951             free(cmd_data);
952     }
953 }
954 
vn_submit_vkWaitRingSeqnoMESA(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,uint64_t ring,uint64_t seqno,struct vn_ring_submit_command * submit)955 static inline void vn_submit_vkWaitRingSeqnoMESA(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint64_t seqno, struct vn_ring_submit_command *submit)
956 {
957     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
958     void *cmd_data = local_cmd_data;
959     size_t cmd_size = vn_sizeof_vkWaitRingSeqnoMESA(ring, seqno);
960     if (cmd_size > sizeof(local_cmd_data)) {
961         cmd_data = malloc(cmd_size);
962         if (!cmd_data)
963             cmd_size = 0;
964     }
965     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWaitRingSeqnoMESA_reply(ring, seqno) : 0;
966 
967     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
968     if (cmd_size) {
969         vn_encode_vkWaitRingSeqnoMESA(enc, cmd_flags, ring, seqno);
970         vn_ring_submit_command(vn_ring, submit);
971         if (cmd_data != local_cmd_data)
972             free(cmd_data);
973     }
974 }
975 
vn_call_vkSetReplyCommandStreamMESA(struct vn_ring * vn_ring,const VkCommandStreamDescriptionMESA * pStream)976 static inline void vn_call_vkSetReplyCommandStreamMESA(struct vn_ring *vn_ring, const VkCommandStreamDescriptionMESA* pStream)
977 {
978     VN_TRACE_FUNC();
979 
980     struct vn_ring_submit_command submit;
981     vn_submit_vkSetReplyCommandStreamMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, pStream, &submit);
982     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
983     if (dec) {
984         vn_decode_vkSetReplyCommandStreamMESA_reply(dec, pStream);
985         vn_ring_free_command_reply(vn_ring, &submit);
986     }
987 }
988 
vn_async_vkSetReplyCommandStreamMESA(struct vn_ring * vn_ring,const VkCommandStreamDescriptionMESA * pStream)989 static inline void vn_async_vkSetReplyCommandStreamMESA(struct vn_ring *vn_ring, const VkCommandStreamDescriptionMESA* pStream)
990 {
991     struct vn_ring_submit_command submit;
992     vn_submit_vkSetReplyCommandStreamMESA(vn_ring, 0, pStream, &submit);
993 }
994 
vn_call_vkSeekReplyCommandStreamMESA(struct vn_ring * vn_ring,size_t position)995 static inline void vn_call_vkSeekReplyCommandStreamMESA(struct vn_ring *vn_ring, size_t position)
996 {
997     VN_TRACE_FUNC();
998 
999     struct vn_ring_submit_command submit;
1000     vn_submit_vkSeekReplyCommandStreamMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, position, &submit);
1001     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1002     if (dec) {
1003         vn_decode_vkSeekReplyCommandStreamMESA_reply(dec, position);
1004         vn_ring_free_command_reply(vn_ring, &submit);
1005     }
1006 }
1007 
vn_async_vkSeekReplyCommandStreamMESA(struct vn_ring * vn_ring,size_t position)1008 static inline void vn_async_vkSeekReplyCommandStreamMESA(struct vn_ring *vn_ring, size_t position)
1009 {
1010     struct vn_ring_submit_command submit;
1011     vn_submit_vkSeekReplyCommandStreamMESA(vn_ring, 0, position, &submit);
1012 }
1013 
vn_call_vkExecuteCommandStreamsMESA(struct vn_ring * vn_ring,uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)1014 static inline void vn_call_vkExecuteCommandStreamsMESA(struct vn_ring *vn_ring, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
1015 {
1016     VN_TRACE_FUNC();
1017 
1018     struct vn_ring_submit_command submit;
1019     vn_submit_vkExecuteCommandStreamsMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags, &submit);
1020     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1021     if (dec) {
1022         vn_decode_vkExecuteCommandStreamsMESA_reply(dec, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);
1023         vn_ring_free_command_reply(vn_ring, &submit);
1024     }
1025 }
1026 
vn_async_vkExecuteCommandStreamsMESA(struct vn_ring * vn_ring,uint32_t streamCount,const VkCommandStreamDescriptionMESA * pStreams,const size_t * pReplyPositions,uint32_t dependencyCount,const VkCommandStreamDependencyMESA * pDependencies,VkCommandStreamExecutionFlagsMESA flags)1027 static inline void vn_async_vkExecuteCommandStreamsMESA(struct vn_ring *vn_ring, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)
1028 {
1029     struct vn_ring_submit_command submit;
1030     vn_submit_vkExecuteCommandStreamsMESA(vn_ring, 0, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags, &submit);
1031 }
1032 
vn_call_vkCreateRingMESA(struct vn_ring * vn_ring,uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)1033 static inline void vn_call_vkCreateRingMESA(struct vn_ring *vn_ring, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
1034 {
1035     VN_TRACE_FUNC();
1036 
1037     struct vn_ring_submit_command submit;
1038     vn_submit_vkCreateRingMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, pCreateInfo, &submit);
1039     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1040     if (dec) {
1041         vn_decode_vkCreateRingMESA_reply(dec, ring, pCreateInfo);
1042         vn_ring_free_command_reply(vn_ring, &submit);
1043     }
1044 }
1045 
vn_async_vkCreateRingMESA(struct vn_ring * vn_ring,uint64_t ring,const VkRingCreateInfoMESA * pCreateInfo)1046 static inline void vn_async_vkCreateRingMESA(struct vn_ring *vn_ring, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)
1047 {
1048     struct vn_ring_submit_command submit;
1049     vn_submit_vkCreateRingMESA(vn_ring, 0, ring, pCreateInfo, &submit);
1050 }
1051 
vn_call_vkDestroyRingMESA(struct vn_ring * vn_ring,uint64_t ring)1052 static inline void vn_call_vkDestroyRingMESA(struct vn_ring *vn_ring, uint64_t ring)
1053 {
1054     VN_TRACE_FUNC();
1055 
1056     struct vn_ring_submit_command submit;
1057     vn_submit_vkDestroyRingMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, &submit);
1058     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1059     if (dec) {
1060         vn_decode_vkDestroyRingMESA_reply(dec, ring);
1061         vn_ring_free_command_reply(vn_ring, &submit);
1062     }
1063 }
1064 
vn_async_vkDestroyRingMESA(struct vn_ring * vn_ring,uint64_t ring)1065 static inline void vn_async_vkDestroyRingMESA(struct vn_ring *vn_ring, uint64_t ring)
1066 {
1067     struct vn_ring_submit_command submit;
1068     vn_submit_vkDestroyRingMESA(vn_ring, 0, ring, &submit);
1069 }
1070 
vn_call_vkNotifyRingMESA(struct vn_ring * vn_ring,uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)1071 static inline void vn_call_vkNotifyRingMESA(struct vn_ring *vn_ring, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
1072 {
1073     VN_TRACE_FUNC();
1074 
1075     struct vn_ring_submit_command submit;
1076     vn_submit_vkNotifyRingMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, seqno, flags, &submit);
1077     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1078     if (dec) {
1079         vn_decode_vkNotifyRingMESA_reply(dec, ring, seqno, flags);
1080         vn_ring_free_command_reply(vn_ring, &submit);
1081     }
1082 }
1083 
vn_async_vkNotifyRingMESA(struct vn_ring * vn_ring,uint64_t ring,uint32_t seqno,VkRingNotifyFlagsMESA flags)1084 static inline void vn_async_vkNotifyRingMESA(struct vn_ring *vn_ring, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)
1085 {
1086     struct vn_ring_submit_command submit;
1087     vn_submit_vkNotifyRingMESA(vn_ring, 0, ring, seqno, flags, &submit);
1088 }
1089 
vn_call_vkWriteRingExtraMESA(struct vn_ring * vn_ring,uint64_t ring,size_t offset,uint32_t value)1090 static inline void vn_call_vkWriteRingExtraMESA(struct vn_ring *vn_ring, uint64_t ring, size_t offset, uint32_t value)
1091 {
1092     VN_TRACE_FUNC();
1093 
1094     struct vn_ring_submit_command submit;
1095     vn_submit_vkWriteRingExtraMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, offset, value, &submit);
1096     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1097     if (dec) {
1098         vn_decode_vkWriteRingExtraMESA_reply(dec, ring, offset, value);
1099         vn_ring_free_command_reply(vn_ring, &submit);
1100     }
1101 }
1102 
vn_async_vkWriteRingExtraMESA(struct vn_ring * vn_ring,uint64_t ring,size_t offset,uint32_t value)1103 static inline void vn_async_vkWriteRingExtraMESA(struct vn_ring *vn_ring, uint64_t ring, size_t offset, uint32_t value)
1104 {
1105     struct vn_ring_submit_command submit;
1106     vn_submit_vkWriteRingExtraMESA(vn_ring, 0, ring, offset, value, &submit);
1107 }
1108 
vn_call_vkSubmitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,uint64_t ring,uint64_t seqno)1109 static inline void vn_call_vkSubmitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, uint64_t ring, uint64_t seqno)
1110 {
1111     VN_TRACE_FUNC();
1112 
1113     struct vn_ring_submit_command submit;
1114     vn_submit_vkSubmitVirtqueueSeqnoMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, seqno, &submit);
1115     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1116     if (dec) {
1117         vn_decode_vkSubmitVirtqueueSeqnoMESA_reply(dec, ring, seqno);
1118         vn_ring_free_command_reply(vn_ring, &submit);
1119     }
1120 }
1121 
vn_async_vkSubmitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,uint64_t ring,uint64_t seqno)1122 static inline void vn_async_vkSubmitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, uint64_t ring, uint64_t seqno)
1123 {
1124     struct vn_ring_submit_command submit;
1125     vn_submit_vkSubmitVirtqueueSeqnoMESA(vn_ring, 0, ring, seqno, &submit);
1126 }
1127 
vn_call_vkWaitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,uint64_t seqno)1128 static inline void vn_call_vkWaitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, uint64_t seqno)
1129 {
1130     VN_TRACE_FUNC();
1131 
1132     struct vn_ring_submit_command submit;
1133     vn_submit_vkWaitVirtqueueSeqnoMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, seqno, &submit);
1134     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1135     if (dec) {
1136         vn_decode_vkWaitVirtqueueSeqnoMESA_reply(dec, seqno);
1137         vn_ring_free_command_reply(vn_ring, &submit);
1138     }
1139 }
1140 
vn_async_vkWaitVirtqueueSeqnoMESA(struct vn_ring * vn_ring,uint64_t seqno)1141 static inline void vn_async_vkWaitVirtqueueSeqnoMESA(struct vn_ring *vn_ring, uint64_t seqno)
1142 {
1143     struct vn_ring_submit_command submit;
1144     vn_submit_vkWaitVirtqueueSeqnoMESA(vn_ring, 0, seqno, &submit);
1145 }
1146 
vn_call_vkWaitRingSeqnoMESA(struct vn_ring * vn_ring,uint64_t ring,uint64_t seqno)1147 static inline void vn_call_vkWaitRingSeqnoMESA(struct vn_ring *vn_ring, uint64_t ring, uint64_t seqno)
1148 {
1149     VN_TRACE_FUNC();
1150 
1151     struct vn_ring_submit_command submit;
1152     vn_submit_vkWaitRingSeqnoMESA(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, seqno, &submit);
1153     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
1154     if (dec) {
1155         vn_decode_vkWaitRingSeqnoMESA_reply(dec, ring, seqno);
1156         vn_ring_free_command_reply(vn_ring, &submit);
1157     }
1158 }
1159 
vn_async_vkWaitRingSeqnoMESA(struct vn_ring * vn_ring,uint64_t ring,uint64_t seqno)1160 static inline void vn_async_vkWaitRingSeqnoMESA(struct vn_ring *vn_ring, uint64_t ring, uint64_t seqno)
1161 {
1162     struct vn_ring_submit_command submit;
1163     vn_submit_vkWaitRingSeqnoMESA(vn_ring, 0, ring, seqno, &submit);
1164 }
1165 
1166 #endif /* VN_PROTOCOL_DRIVER_TRANSPORT_H */
1167