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