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