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_SEMAPHORE_H
9 #define VN_PROTOCOL_DRIVER_SEMAPHORE_H
10
11 #include "vn_instance.h"
12 #include "vn_protocol_driver_structs.h"
13
14 /* struct VkExportSemaphoreCreateInfo chain */
15
16 static inline size_t
vn_sizeof_VkExportSemaphoreCreateInfo_pnext(const void * val)17 vn_sizeof_VkExportSemaphoreCreateInfo_pnext(const void *val)
18 {
19 /* no known/supported struct */
20 return vn_sizeof_simple_pointer(NULL);
21 }
22
23 static inline size_t
vn_sizeof_VkExportSemaphoreCreateInfo_self(const VkExportSemaphoreCreateInfo * val)24 vn_sizeof_VkExportSemaphoreCreateInfo_self(const VkExportSemaphoreCreateInfo *val)
25 {
26 size_t size = 0;
27 /* skip val->{sType,pNext} */
28 size += vn_sizeof_VkFlags(&val->handleTypes);
29 return size;
30 }
31
32 static inline size_t
vn_sizeof_VkExportSemaphoreCreateInfo(const VkExportSemaphoreCreateInfo * val)33 vn_sizeof_VkExportSemaphoreCreateInfo(const VkExportSemaphoreCreateInfo *val)
34 {
35 size_t size = 0;
36
37 size += vn_sizeof_VkStructureType(&val->sType);
38 size += vn_sizeof_VkExportSemaphoreCreateInfo_pnext(val->pNext);
39 size += vn_sizeof_VkExportSemaphoreCreateInfo_self(val);
40
41 return size;
42 }
43
44 static inline void
vn_encode_VkExportSemaphoreCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)45 vn_encode_VkExportSemaphoreCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
46 {
47 /* no known/supported struct */
48 vn_encode_simple_pointer(enc, NULL);
49 }
50
51 static inline void
vn_encode_VkExportSemaphoreCreateInfo_self(struct vn_cs_encoder * enc,const VkExportSemaphoreCreateInfo * val)52 vn_encode_VkExportSemaphoreCreateInfo_self(struct vn_cs_encoder *enc, const VkExportSemaphoreCreateInfo *val)
53 {
54 /* skip val->{sType,pNext} */
55 vn_encode_VkFlags(enc, &val->handleTypes);
56 }
57
58 static inline void
vn_encode_VkExportSemaphoreCreateInfo(struct vn_cs_encoder * enc,const VkExportSemaphoreCreateInfo * val)59 vn_encode_VkExportSemaphoreCreateInfo(struct vn_cs_encoder *enc, const VkExportSemaphoreCreateInfo *val)
60 {
61 assert(val->sType == VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO);
62 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO });
63 vn_encode_VkExportSemaphoreCreateInfo_pnext(enc, val->pNext);
64 vn_encode_VkExportSemaphoreCreateInfo_self(enc, val);
65 }
66
67 /* struct VkSemaphoreCreateInfo chain */
68
69 static inline size_t
vn_sizeof_VkSemaphoreCreateInfo_pnext(const void * val)70 vn_sizeof_VkSemaphoreCreateInfo_pnext(const void *val)
71 {
72 const VkBaseInStructure *pnext = val;
73 size_t size = 0;
74
75 while (pnext) {
76 switch ((int32_t)pnext->sType) {
77 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
78 size += vn_sizeof_simple_pointer(pnext);
79 size += vn_sizeof_VkStructureType(&pnext->sType);
80 size += vn_sizeof_VkSemaphoreCreateInfo_pnext(pnext->pNext);
81 size += vn_sizeof_VkExportSemaphoreCreateInfo_self((const VkExportSemaphoreCreateInfo *)pnext);
82 return size;
83 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
84 size += vn_sizeof_simple_pointer(pnext);
85 size += vn_sizeof_VkStructureType(&pnext->sType);
86 size += vn_sizeof_VkSemaphoreCreateInfo_pnext(pnext->pNext);
87 size += vn_sizeof_VkSemaphoreTypeCreateInfo_self((const VkSemaphoreTypeCreateInfo *)pnext);
88 return size;
89 default:
90 /* ignore unknown/unsupported struct */
91 break;
92 }
93 pnext = pnext->pNext;
94 }
95
96 return vn_sizeof_simple_pointer(NULL);
97 }
98
99 static inline size_t
vn_sizeof_VkSemaphoreCreateInfo_self(const VkSemaphoreCreateInfo * val)100 vn_sizeof_VkSemaphoreCreateInfo_self(const VkSemaphoreCreateInfo *val)
101 {
102 size_t size = 0;
103 /* skip val->{sType,pNext} */
104 size += vn_sizeof_VkFlags(&val->flags);
105 return size;
106 }
107
108 static inline size_t
vn_sizeof_VkSemaphoreCreateInfo(const VkSemaphoreCreateInfo * val)109 vn_sizeof_VkSemaphoreCreateInfo(const VkSemaphoreCreateInfo *val)
110 {
111 size_t size = 0;
112
113 size += vn_sizeof_VkStructureType(&val->sType);
114 size += vn_sizeof_VkSemaphoreCreateInfo_pnext(val->pNext);
115 size += vn_sizeof_VkSemaphoreCreateInfo_self(val);
116
117 return size;
118 }
119
120 static inline void
vn_encode_VkSemaphoreCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)121 vn_encode_VkSemaphoreCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
122 {
123 const VkBaseInStructure *pnext = val;
124
125 while (pnext) {
126 switch ((int32_t)pnext->sType) {
127 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
128 vn_encode_simple_pointer(enc, pnext);
129 vn_encode_VkStructureType(enc, &pnext->sType);
130 vn_encode_VkSemaphoreCreateInfo_pnext(enc, pnext->pNext);
131 vn_encode_VkExportSemaphoreCreateInfo_self(enc, (const VkExportSemaphoreCreateInfo *)pnext);
132 return;
133 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
134 vn_encode_simple_pointer(enc, pnext);
135 vn_encode_VkStructureType(enc, &pnext->sType);
136 vn_encode_VkSemaphoreCreateInfo_pnext(enc, pnext->pNext);
137 vn_encode_VkSemaphoreTypeCreateInfo_self(enc, (const VkSemaphoreTypeCreateInfo *)pnext);
138 return;
139 default:
140 /* ignore unknown/unsupported struct */
141 break;
142 }
143 pnext = pnext->pNext;
144 }
145
146 vn_encode_simple_pointer(enc, NULL);
147 }
148
149 static inline void
vn_encode_VkSemaphoreCreateInfo_self(struct vn_cs_encoder * enc,const VkSemaphoreCreateInfo * val)150 vn_encode_VkSemaphoreCreateInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreCreateInfo *val)
151 {
152 /* skip val->{sType,pNext} */
153 vn_encode_VkFlags(enc, &val->flags);
154 }
155
156 static inline void
vn_encode_VkSemaphoreCreateInfo(struct vn_cs_encoder * enc,const VkSemaphoreCreateInfo * val)157 vn_encode_VkSemaphoreCreateInfo(struct vn_cs_encoder *enc, const VkSemaphoreCreateInfo *val)
158 {
159 assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO);
160 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO });
161 vn_encode_VkSemaphoreCreateInfo_pnext(enc, val->pNext);
162 vn_encode_VkSemaphoreCreateInfo_self(enc, val);
163 }
164
165 /* struct VkSemaphoreWaitInfo chain */
166
167 static inline size_t
vn_sizeof_VkSemaphoreWaitInfo_pnext(const void * val)168 vn_sizeof_VkSemaphoreWaitInfo_pnext(const void *val)
169 {
170 /* no known/supported struct */
171 return vn_sizeof_simple_pointer(NULL);
172 }
173
174 static inline size_t
vn_sizeof_VkSemaphoreWaitInfo_self(const VkSemaphoreWaitInfo * val)175 vn_sizeof_VkSemaphoreWaitInfo_self(const VkSemaphoreWaitInfo *val)
176 {
177 size_t size = 0;
178 /* skip val->{sType,pNext} */
179 size += vn_sizeof_VkFlags(&val->flags);
180 size += vn_sizeof_uint32_t(&val->semaphoreCount);
181 if (val->pSemaphores) {
182 size += vn_sizeof_array_size(val->semaphoreCount);
183 for (uint32_t i = 0; i < val->semaphoreCount; i++)
184 size += vn_sizeof_VkSemaphore(&val->pSemaphores[i]);
185 } else {
186 size += vn_sizeof_array_size(0);
187 }
188 if (val->pValues) {
189 size += vn_sizeof_array_size(val->semaphoreCount);
190 size += vn_sizeof_uint64_t_array(val->pValues, val->semaphoreCount);
191 } else {
192 size += vn_sizeof_array_size(0);
193 }
194 return size;
195 }
196
197 static inline size_t
vn_sizeof_VkSemaphoreWaitInfo(const VkSemaphoreWaitInfo * val)198 vn_sizeof_VkSemaphoreWaitInfo(const VkSemaphoreWaitInfo *val)
199 {
200 size_t size = 0;
201
202 size += vn_sizeof_VkStructureType(&val->sType);
203 size += vn_sizeof_VkSemaphoreWaitInfo_pnext(val->pNext);
204 size += vn_sizeof_VkSemaphoreWaitInfo_self(val);
205
206 return size;
207 }
208
209 static inline void
vn_encode_VkSemaphoreWaitInfo_pnext(struct vn_cs_encoder * enc,const void * val)210 vn_encode_VkSemaphoreWaitInfo_pnext(struct vn_cs_encoder *enc, const void *val)
211 {
212 /* no known/supported struct */
213 vn_encode_simple_pointer(enc, NULL);
214 }
215
216 static inline void
vn_encode_VkSemaphoreWaitInfo_self(struct vn_cs_encoder * enc,const VkSemaphoreWaitInfo * val)217 vn_encode_VkSemaphoreWaitInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreWaitInfo *val)
218 {
219 /* skip val->{sType,pNext} */
220 vn_encode_VkFlags(enc, &val->flags);
221 vn_encode_uint32_t(enc, &val->semaphoreCount);
222 if (val->pSemaphores) {
223 vn_encode_array_size(enc, val->semaphoreCount);
224 for (uint32_t i = 0; i < val->semaphoreCount; i++)
225 vn_encode_VkSemaphore(enc, &val->pSemaphores[i]);
226 } else {
227 vn_encode_array_size(enc, 0);
228 }
229 if (val->pValues) {
230 vn_encode_array_size(enc, val->semaphoreCount);
231 vn_encode_uint64_t_array(enc, val->pValues, val->semaphoreCount);
232 } else {
233 vn_encode_array_size(enc, 0);
234 }
235 }
236
237 static inline void
vn_encode_VkSemaphoreWaitInfo(struct vn_cs_encoder * enc,const VkSemaphoreWaitInfo * val)238 vn_encode_VkSemaphoreWaitInfo(struct vn_cs_encoder *enc, const VkSemaphoreWaitInfo *val)
239 {
240 assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO);
241 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO });
242 vn_encode_VkSemaphoreWaitInfo_pnext(enc, val->pNext);
243 vn_encode_VkSemaphoreWaitInfo_self(enc, val);
244 }
245
246 /* struct VkSemaphoreSignalInfo chain */
247
248 static inline size_t
vn_sizeof_VkSemaphoreSignalInfo_pnext(const void * val)249 vn_sizeof_VkSemaphoreSignalInfo_pnext(const void *val)
250 {
251 /* no known/supported struct */
252 return vn_sizeof_simple_pointer(NULL);
253 }
254
255 static inline size_t
vn_sizeof_VkSemaphoreSignalInfo_self(const VkSemaphoreSignalInfo * val)256 vn_sizeof_VkSemaphoreSignalInfo_self(const VkSemaphoreSignalInfo *val)
257 {
258 size_t size = 0;
259 /* skip val->{sType,pNext} */
260 size += vn_sizeof_VkSemaphore(&val->semaphore);
261 size += vn_sizeof_uint64_t(&val->value);
262 return size;
263 }
264
265 static inline size_t
vn_sizeof_VkSemaphoreSignalInfo(const VkSemaphoreSignalInfo * val)266 vn_sizeof_VkSemaphoreSignalInfo(const VkSemaphoreSignalInfo *val)
267 {
268 size_t size = 0;
269
270 size += vn_sizeof_VkStructureType(&val->sType);
271 size += vn_sizeof_VkSemaphoreSignalInfo_pnext(val->pNext);
272 size += vn_sizeof_VkSemaphoreSignalInfo_self(val);
273
274 return size;
275 }
276
277 static inline void
vn_encode_VkSemaphoreSignalInfo_pnext(struct vn_cs_encoder * enc,const void * val)278 vn_encode_VkSemaphoreSignalInfo_pnext(struct vn_cs_encoder *enc, const void *val)
279 {
280 /* no known/supported struct */
281 vn_encode_simple_pointer(enc, NULL);
282 }
283
284 static inline void
vn_encode_VkSemaphoreSignalInfo_self(struct vn_cs_encoder * enc,const VkSemaphoreSignalInfo * val)285 vn_encode_VkSemaphoreSignalInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreSignalInfo *val)
286 {
287 /* skip val->{sType,pNext} */
288 vn_encode_VkSemaphore(enc, &val->semaphore);
289 vn_encode_uint64_t(enc, &val->value);
290 }
291
292 static inline void
vn_encode_VkSemaphoreSignalInfo(struct vn_cs_encoder * enc,const VkSemaphoreSignalInfo * val)293 vn_encode_VkSemaphoreSignalInfo(struct vn_cs_encoder *enc, const VkSemaphoreSignalInfo *val)
294 {
295 assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO);
296 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO });
297 vn_encode_VkSemaphoreSignalInfo_pnext(enc, val->pNext);
298 vn_encode_VkSemaphoreSignalInfo_self(enc, val);
299 }
300
vn_sizeof_vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)301 static inline size_t vn_sizeof_vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
302 {
303 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSemaphore_EXT;
304 const VkFlags cmd_flags = 0;
305 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
306
307 cmd_size += vn_sizeof_VkDevice(&device);
308 cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
309 if (pCreateInfo)
310 cmd_size += vn_sizeof_VkSemaphoreCreateInfo(pCreateInfo);
311 cmd_size += vn_sizeof_simple_pointer(pAllocator);
312 if (pAllocator)
313 assert(false);
314 cmd_size += vn_sizeof_simple_pointer(pSemaphore);
315 if (pSemaphore)
316 cmd_size += vn_sizeof_VkSemaphore(pSemaphore);
317
318 return cmd_size;
319 }
320
vn_encode_vkCreateSemaphore(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)321 static inline void vn_encode_vkCreateSemaphore(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
322 {
323 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSemaphore_EXT;
324
325 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
326 vn_encode_VkFlags(enc, &cmd_flags);
327
328 vn_encode_VkDevice(enc, &device);
329 if (vn_encode_simple_pointer(enc, pCreateInfo))
330 vn_encode_VkSemaphoreCreateInfo(enc, pCreateInfo);
331 if (vn_encode_simple_pointer(enc, pAllocator))
332 assert(false);
333 if (vn_encode_simple_pointer(enc, pSemaphore))
334 vn_encode_VkSemaphore(enc, pSemaphore);
335 }
336
vn_sizeof_vkCreateSemaphore_reply(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)337 static inline size_t vn_sizeof_vkCreateSemaphore_reply(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
338 {
339 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSemaphore_EXT;
340 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
341
342 VkResult ret;
343 cmd_size += vn_sizeof_VkResult(&ret);
344 /* skip device */
345 /* skip pCreateInfo */
346 /* skip pAllocator */
347 cmd_size += vn_sizeof_simple_pointer(pSemaphore);
348 if (pSemaphore)
349 cmd_size += vn_sizeof_VkSemaphore(pSemaphore);
350
351 return cmd_size;
352 }
353
vn_decode_vkCreateSemaphore_reply(struct vn_cs_decoder * dec,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)354 static inline VkResult vn_decode_vkCreateSemaphore_reply(struct vn_cs_decoder *dec, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
355 {
356 VkCommandTypeEXT command_type;
357 vn_decode_VkCommandTypeEXT(dec, &command_type);
358 assert(command_type == VK_COMMAND_TYPE_vkCreateSemaphore_EXT);
359
360 VkResult ret;
361 vn_decode_VkResult(dec, &ret);
362 /* skip device */
363 /* skip pCreateInfo */
364 /* skip pAllocator */
365 if (vn_decode_simple_pointer(dec)) {
366 vn_decode_VkSemaphore(dec, pSemaphore);
367 } else {
368 pSemaphore = NULL;
369 }
370
371 return ret;
372 }
373
vn_sizeof_vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)374 static inline size_t vn_sizeof_vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
375 {
376 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySemaphore_EXT;
377 const VkFlags cmd_flags = 0;
378 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
379
380 cmd_size += vn_sizeof_VkDevice(&device);
381 cmd_size += vn_sizeof_VkSemaphore(&semaphore);
382 cmd_size += vn_sizeof_simple_pointer(pAllocator);
383 if (pAllocator)
384 assert(false);
385
386 return cmd_size;
387 }
388
vn_encode_vkDestroySemaphore(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)389 static inline void vn_encode_vkDestroySemaphore(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
390 {
391 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySemaphore_EXT;
392
393 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
394 vn_encode_VkFlags(enc, &cmd_flags);
395
396 vn_encode_VkDevice(enc, &device);
397 vn_encode_VkSemaphore(enc, &semaphore);
398 if (vn_encode_simple_pointer(enc, pAllocator))
399 assert(false);
400 }
401
vn_sizeof_vkDestroySemaphore_reply(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)402 static inline size_t vn_sizeof_vkDestroySemaphore_reply(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
403 {
404 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySemaphore_EXT;
405 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
406
407 /* skip device */
408 /* skip semaphore */
409 /* skip pAllocator */
410
411 return cmd_size;
412 }
413
vn_decode_vkDestroySemaphore_reply(struct vn_cs_decoder * dec,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)414 static inline void vn_decode_vkDestroySemaphore_reply(struct vn_cs_decoder *dec, VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
415 {
416 VkCommandTypeEXT command_type;
417 vn_decode_VkCommandTypeEXT(dec, &command_type);
418 assert(command_type == VK_COMMAND_TYPE_vkDestroySemaphore_EXT);
419
420 /* skip device */
421 /* skip semaphore */
422 /* skip pAllocator */
423 }
424
vn_sizeof_vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)425 static inline size_t vn_sizeof_vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
426 {
427 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT;
428 const VkFlags cmd_flags = 0;
429 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
430
431 cmd_size += vn_sizeof_VkDevice(&device);
432 cmd_size += vn_sizeof_VkSemaphore(&semaphore);
433 cmd_size += vn_sizeof_simple_pointer(pValue); /* out */
434
435 return cmd_size;
436 }
437
vn_encode_vkGetSemaphoreCounterValue(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)438 static inline void vn_encode_vkGetSemaphoreCounterValue(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
439 {
440 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT;
441
442 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
443 vn_encode_VkFlags(enc, &cmd_flags);
444
445 vn_encode_VkDevice(enc, &device);
446 vn_encode_VkSemaphore(enc, &semaphore);
447 vn_encode_simple_pointer(enc, pValue); /* out */
448 }
449
vn_sizeof_vkGetSemaphoreCounterValue_reply(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)450 static inline size_t vn_sizeof_vkGetSemaphoreCounterValue_reply(VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
451 {
452 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT;
453 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
454
455 VkResult ret;
456 cmd_size += vn_sizeof_VkResult(&ret);
457 /* skip device */
458 /* skip semaphore */
459 cmd_size += vn_sizeof_simple_pointer(pValue);
460 if (pValue)
461 cmd_size += vn_sizeof_uint64_t(pValue);
462
463 return cmd_size;
464 }
465
vn_decode_vkGetSemaphoreCounterValue_reply(struct vn_cs_decoder * dec,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)466 static inline VkResult vn_decode_vkGetSemaphoreCounterValue_reply(struct vn_cs_decoder *dec, VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
467 {
468 VkCommandTypeEXT command_type;
469 vn_decode_VkCommandTypeEXT(dec, &command_type);
470 assert(command_type == VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT);
471
472 VkResult ret;
473 vn_decode_VkResult(dec, &ret);
474 /* skip device */
475 /* skip semaphore */
476 if (vn_decode_simple_pointer(dec)) {
477 vn_decode_uint64_t(dec, pValue);
478 } else {
479 pValue = NULL;
480 }
481
482 return ret;
483 }
484
vn_sizeof_vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)485 static inline size_t vn_sizeof_vkWaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
486 {
487 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitSemaphores_EXT;
488 const VkFlags cmd_flags = 0;
489 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
490
491 cmd_size += vn_sizeof_VkDevice(&device);
492 cmd_size += vn_sizeof_simple_pointer(pWaitInfo);
493 if (pWaitInfo)
494 cmd_size += vn_sizeof_VkSemaphoreWaitInfo(pWaitInfo);
495 cmd_size += vn_sizeof_uint64_t(&timeout);
496
497 return cmd_size;
498 }
499
vn_encode_vkWaitSemaphores(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)500 static inline void vn_encode_vkWaitSemaphores(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
501 {
502 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitSemaphores_EXT;
503
504 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
505 vn_encode_VkFlags(enc, &cmd_flags);
506
507 vn_encode_VkDevice(enc, &device);
508 if (vn_encode_simple_pointer(enc, pWaitInfo))
509 vn_encode_VkSemaphoreWaitInfo(enc, pWaitInfo);
510 vn_encode_uint64_t(enc, &timeout);
511 }
512
vn_sizeof_vkWaitSemaphores_reply(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)513 static inline size_t vn_sizeof_vkWaitSemaphores_reply(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
514 {
515 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitSemaphores_EXT;
516 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
517
518 VkResult ret;
519 cmd_size += vn_sizeof_VkResult(&ret);
520 /* skip device */
521 /* skip pWaitInfo */
522 /* skip timeout */
523
524 return cmd_size;
525 }
526
vn_decode_vkWaitSemaphores_reply(struct vn_cs_decoder * dec,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)527 static inline VkResult vn_decode_vkWaitSemaphores_reply(struct vn_cs_decoder *dec, VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
528 {
529 VkCommandTypeEXT command_type;
530 vn_decode_VkCommandTypeEXT(dec, &command_type);
531 assert(command_type == VK_COMMAND_TYPE_vkWaitSemaphores_EXT);
532
533 VkResult ret;
534 vn_decode_VkResult(dec, &ret);
535 /* skip device */
536 /* skip pWaitInfo */
537 /* skip timeout */
538
539 return ret;
540 }
541
vn_sizeof_vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)542 static inline size_t vn_sizeof_vkSignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
543 {
544 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSignalSemaphore_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_VkDevice(&device);
549 cmd_size += vn_sizeof_simple_pointer(pSignalInfo);
550 if (pSignalInfo)
551 cmd_size += vn_sizeof_VkSemaphoreSignalInfo(pSignalInfo);
552
553 return cmd_size;
554 }
555
vn_encode_vkSignalSemaphore(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)556 static inline void vn_encode_vkSignalSemaphore(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
557 {
558 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSignalSemaphore_EXT;
559
560 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
561 vn_encode_VkFlags(enc, &cmd_flags);
562
563 vn_encode_VkDevice(enc, &device);
564 if (vn_encode_simple_pointer(enc, pSignalInfo))
565 vn_encode_VkSemaphoreSignalInfo(enc, pSignalInfo);
566 }
567
vn_sizeof_vkSignalSemaphore_reply(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)568 static inline size_t vn_sizeof_vkSignalSemaphore_reply(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
569 {
570 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSignalSemaphore_EXT;
571 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
572
573 VkResult ret;
574 cmd_size += vn_sizeof_VkResult(&ret);
575 /* skip device */
576 /* skip pSignalInfo */
577
578 return cmd_size;
579 }
580
vn_decode_vkSignalSemaphore_reply(struct vn_cs_decoder * dec,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)581 static inline VkResult vn_decode_vkSignalSemaphore_reply(struct vn_cs_decoder *dec, VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
582 {
583 VkCommandTypeEXT command_type;
584 vn_decode_VkCommandTypeEXT(dec, &command_type);
585 assert(command_type == VK_COMMAND_TYPE_vkSignalSemaphore_EXT);
586
587 VkResult ret;
588 vn_decode_VkResult(dec, &ret);
589 /* skip device */
590 /* skip pSignalInfo */
591
592 return ret;
593 }
594
vn_submit_vkCreateSemaphore(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore,struct vn_instance_submit_command * submit)595 static inline void vn_submit_vkCreateSemaphore(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore, struct vn_instance_submit_command *submit)
596 {
597 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
598 void *cmd_data = local_cmd_data;
599 size_t cmd_size = vn_sizeof_vkCreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
600 if (cmd_size > sizeof(local_cmd_data)) {
601 cmd_data = malloc(cmd_size);
602 if (!cmd_data)
603 cmd_size = 0;
604 }
605 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateSemaphore_reply(device, pCreateInfo, pAllocator, pSemaphore) : 0;
606
607 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
608 if (cmd_size) {
609 vn_encode_vkCreateSemaphore(enc, cmd_flags, device, pCreateInfo, pAllocator, pSemaphore);
610 vn_instance_submit_command(vn_instance, submit);
611 if (cmd_data != local_cmd_data)
612 free(cmd_data);
613 }
614 }
615
vn_submit_vkDestroySemaphore(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator,struct vn_instance_submit_command * submit)616 static inline void vn_submit_vkDestroySemaphore(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
617 {
618 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
619 void *cmd_data = local_cmd_data;
620 size_t cmd_size = vn_sizeof_vkDestroySemaphore(device, semaphore, pAllocator);
621 if (cmd_size > sizeof(local_cmd_data)) {
622 cmd_data = malloc(cmd_size);
623 if (!cmd_data)
624 cmd_size = 0;
625 }
626 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroySemaphore_reply(device, semaphore, pAllocator) : 0;
627
628 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
629 if (cmd_size) {
630 vn_encode_vkDestroySemaphore(enc, cmd_flags, device, semaphore, pAllocator);
631 vn_instance_submit_command(vn_instance, submit);
632 if (cmd_data != local_cmd_data)
633 free(cmd_data);
634 }
635 }
636
vn_submit_vkGetSemaphoreCounterValue(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkSemaphore semaphore,uint64_t * pValue,struct vn_instance_submit_command * submit)637 static inline void vn_submit_vkGetSemaphoreCounterValue(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSemaphore semaphore, uint64_t* pValue, struct vn_instance_submit_command *submit)
638 {
639 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
640 void *cmd_data = local_cmd_data;
641 size_t cmd_size = vn_sizeof_vkGetSemaphoreCounterValue(device, semaphore, pValue);
642 if (cmd_size > sizeof(local_cmd_data)) {
643 cmd_data = malloc(cmd_size);
644 if (!cmd_data)
645 cmd_size = 0;
646 }
647 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetSemaphoreCounterValue_reply(device, semaphore, pValue) : 0;
648
649 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
650 if (cmd_size) {
651 vn_encode_vkGetSemaphoreCounterValue(enc, cmd_flags, device, semaphore, pValue);
652 vn_instance_submit_command(vn_instance, submit);
653 if (cmd_data != local_cmd_data)
654 free(cmd_data);
655 }
656 }
657
vn_submit_vkWaitSemaphores(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout,struct vn_instance_submit_command * submit)658 static inline void vn_submit_vkWaitSemaphores(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout, struct vn_instance_submit_command *submit)
659 {
660 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
661 void *cmd_data = local_cmd_data;
662 size_t cmd_size = vn_sizeof_vkWaitSemaphores(device, pWaitInfo, timeout);
663 if (cmd_size > sizeof(local_cmd_data)) {
664 cmd_data = malloc(cmd_size);
665 if (!cmd_data)
666 cmd_size = 0;
667 }
668 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWaitSemaphores_reply(device, pWaitInfo, timeout) : 0;
669
670 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
671 if (cmd_size) {
672 vn_encode_vkWaitSemaphores(enc, cmd_flags, device, pWaitInfo, timeout);
673 vn_instance_submit_command(vn_instance, submit);
674 if (cmd_data != local_cmd_data)
675 free(cmd_data);
676 }
677 }
678
vn_submit_vkSignalSemaphore(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo,struct vn_instance_submit_command * submit)679 static inline void vn_submit_vkSignalSemaphore(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo, struct vn_instance_submit_command *submit)
680 {
681 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
682 void *cmd_data = local_cmd_data;
683 size_t cmd_size = vn_sizeof_vkSignalSemaphore(device, pSignalInfo);
684 if (cmd_size > sizeof(local_cmd_data)) {
685 cmd_data = malloc(cmd_size);
686 if (!cmd_data)
687 cmd_size = 0;
688 }
689 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSignalSemaphore_reply(device, pSignalInfo) : 0;
690
691 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
692 if (cmd_size) {
693 vn_encode_vkSignalSemaphore(enc, cmd_flags, device, pSignalInfo);
694 vn_instance_submit_command(vn_instance, submit);
695 if (cmd_data != local_cmd_data)
696 free(cmd_data);
697 }
698 }
699
vn_call_vkCreateSemaphore(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)700 static inline VkResult vn_call_vkCreateSemaphore(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
701 {
702 VN_TRACE_FUNC();
703
704 struct vn_instance_submit_command submit;
705 vn_submit_vkCreateSemaphore(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pSemaphore, &submit);
706 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
707 if (dec) {
708 const VkResult ret = vn_decode_vkCreateSemaphore_reply(dec, device, pCreateInfo, pAllocator, pSemaphore);
709 vn_instance_free_command_reply(vn_instance, &submit);
710 return ret;
711 } else {
712 return VK_ERROR_OUT_OF_HOST_MEMORY;
713 }
714 }
715
vn_async_vkCreateSemaphore(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)716 static inline void vn_async_vkCreateSemaphore(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
717 {
718 struct vn_instance_submit_command submit;
719 vn_submit_vkCreateSemaphore(vn_instance, 0, device, pCreateInfo, pAllocator, pSemaphore, &submit);
720 }
721
vn_call_vkDestroySemaphore(struct vn_instance * vn_instance,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)722 static inline void vn_call_vkDestroySemaphore(struct vn_instance *vn_instance, VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
723 {
724 VN_TRACE_FUNC();
725
726 struct vn_instance_submit_command submit;
727 vn_submit_vkDestroySemaphore(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, semaphore, pAllocator, &submit);
728 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
729 if (dec) {
730 vn_decode_vkDestroySemaphore_reply(dec, device, semaphore, pAllocator);
731 vn_instance_free_command_reply(vn_instance, &submit);
732 }
733 }
734
vn_async_vkDestroySemaphore(struct vn_instance * vn_instance,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)735 static inline void vn_async_vkDestroySemaphore(struct vn_instance *vn_instance, VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
736 {
737 struct vn_instance_submit_command submit;
738 vn_submit_vkDestroySemaphore(vn_instance, 0, device, semaphore, pAllocator, &submit);
739 }
740
vn_call_vkGetSemaphoreCounterValue(struct vn_instance * vn_instance,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)741 static inline VkResult vn_call_vkGetSemaphoreCounterValue(struct vn_instance *vn_instance, VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
742 {
743 VN_TRACE_FUNC();
744
745 struct vn_instance_submit_command submit;
746 vn_submit_vkGetSemaphoreCounterValue(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, semaphore, pValue, &submit);
747 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
748 if (dec) {
749 const VkResult ret = vn_decode_vkGetSemaphoreCounterValue_reply(dec, device, semaphore, pValue);
750 vn_instance_free_command_reply(vn_instance, &submit);
751 return ret;
752 } else {
753 return VK_ERROR_OUT_OF_HOST_MEMORY;
754 }
755 }
756
vn_async_vkGetSemaphoreCounterValue(struct vn_instance * vn_instance,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)757 static inline void vn_async_vkGetSemaphoreCounterValue(struct vn_instance *vn_instance, VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
758 {
759 struct vn_instance_submit_command submit;
760 vn_submit_vkGetSemaphoreCounterValue(vn_instance, 0, device, semaphore, pValue, &submit);
761 }
762
vn_call_vkWaitSemaphores(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)763 static inline VkResult vn_call_vkWaitSemaphores(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
764 {
765 VN_TRACE_FUNC();
766
767 struct vn_instance_submit_command submit;
768 vn_submit_vkWaitSemaphores(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pWaitInfo, timeout, &submit);
769 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
770 if (dec) {
771 const VkResult ret = vn_decode_vkWaitSemaphores_reply(dec, device, pWaitInfo, timeout);
772 vn_instance_free_command_reply(vn_instance, &submit);
773 return ret;
774 } else {
775 return VK_ERROR_OUT_OF_HOST_MEMORY;
776 }
777 }
778
vn_async_vkWaitSemaphores(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)779 static inline void vn_async_vkWaitSemaphores(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
780 {
781 struct vn_instance_submit_command submit;
782 vn_submit_vkWaitSemaphores(vn_instance, 0, device, pWaitInfo, timeout, &submit);
783 }
784
vn_call_vkSignalSemaphore(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)785 static inline VkResult vn_call_vkSignalSemaphore(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
786 {
787 VN_TRACE_FUNC();
788
789 struct vn_instance_submit_command submit;
790 vn_submit_vkSignalSemaphore(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pSignalInfo, &submit);
791 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
792 if (dec) {
793 const VkResult ret = vn_decode_vkSignalSemaphore_reply(dec, device, pSignalInfo);
794 vn_instance_free_command_reply(vn_instance, &submit);
795 return ret;
796 } else {
797 return VK_ERROR_OUT_OF_HOST_MEMORY;
798 }
799 }
800
vn_async_vkSignalSemaphore(struct vn_instance * vn_instance,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)801 static inline void vn_async_vkSignalSemaphore(struct vn_instance *vn_instance, VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
802 {
803 struct vn_instance_submit_command submit;
804 vn_submit_vkSignalSemaphore(vn_instance, 0, device, pSignalInfo, &submit);
805 }
806
807 #endif /* VN_PROTOCOL_DRIVER_SEMAPHORE_H */
808