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