1
/* This file is generated by venus-protocol. See vn_protocol_driver.h. */
4
* Copyright 2020 Google LLC
5
* SPDX-License-Identifier: MIT
8
#ifndef VN_PROTOCOL_DRIVER_FENCE_H
9
#define VN_PROTOCOL_DRIVER_FENCE_H
11
#include "vn_instance.h"
12
#include "vn_protocol_driver_structs.h"
15
* These structs/unions/commands are not included
20
/* struct VkExportFenceCreateInfo chain */
23
vn_sizeof_VkExportFenceCreateInfo_pnext(const void *val)
25
/* no known/supported struct */
26
return vn_sizeof_simple_pointer(NULL);
30
vn_sizeof_VkExportFenceCreateInfo_self(const VkExportFenceCreateInfo *val)
33
/* skip val->{sType,pNext} */
34
size += vn_sizeof_VkFlags(&val->handleTypes);
39
vn_sizeof_VkExportFenceCreateInfo(const VkExportFenceCreateInfo *val)
43
size += vn_sizeof_VkStructureType(&val->sType);
44
size += vn_sizeof_VkExportFenceCreateInfo_pnext(val->pNext);
45
size += vn_sizeof_VkExportFenceCreateInfo_self(val);
51
vn_encode_VkExportFenceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
53
/* no known/supported struct */
54
vn_encode_simple_pointer(enc, NULL);
58
vn_encode_VkExportFenceCreateInfo_self(struct vn_cs_encoder *enc, const VkExportFenceCreateInfo *val)
60
/* skip val->{sType,pNext} */
61
vn_encode_VkFlags(enc, &val->handleTypes);
65
vn_encode_VkExportFenceCreateInfo(struct vn_cs_encoder *enc, const VkExportFenceCreateInfo *val)
67
assert(val->sType == VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO);
68
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO });
69
vn_encode_VkExportFenceCreateInfo_pnext(enc, val->pNext);
70
vn_encode_VkExportFenceCreateInfo_self(enc, val);
73
/* struct VkFenceCreateInfo chain */
76
vn_sizeof_VkFenceCreateInfo_pnext(const void *val)
78
const VkBaseInStructure *pnext = val;
82
switch ((int32_t)pnext->sType) {
83
case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
84
size += vn_sizeof_simple_pointer(pnext);
85
size += vn_sizeof_VkStructureType(&pnext->sType);
86
size += vn_sizeof_VkFenceCreateInfo_pnext(pnext->pNext);
87
size += vn_sizeof_VkExportFenceCreateInfo_self((const VkExportFenceCreateInfo *)pnext);
90
/* ignore unknown/unsupported struct */
96
return vn_sizeof_simple_pointer(NULL);
100
vn_sizeof_VkFenceCreateInfo_self(const VkFenceCreateInfo *val)
103
/* skip val->{sType,pNext} */
104
size += vn_sizeof_VkFlags(&val->flags);
109
vn_sizeof_VkFenceCreateInfo(const VkFenceCreateInfo *val)
113
size += vn_sizeof_VkStructureType(&val->sType);
114
size += vn_sizeof_VkFenceCreateInfo_pnext(val->pNext);
115
size += vn_sizeof_VkFenceCreateInfo_self(val);
121
vn_encode_VkFenceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
123
const VkBaseInStructure *pnext = val;
126
switch ((int32_t)pnext->sType) {
127
case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
128
vn_encode_simple_pointer(enc, pnext);
129
vn_encode_VkStructureType(enc, &pnext->sType);
130
vn_encode_VkFenceCreateInfo_pnext(enc, pnext->pNext);
131
vn_encode_VkExportFenceCreateInfo_self(enc, (const VkExportFenceCreateInfo *)pnext);
134
/* ignore unknown/unsupported struct */
137
pnext = pnext->pNext;
140
vn_encode_simple_pointer(enc, NULL);
144
vn_encode_VkFenceCreateInfo_self(struct vn_cs_encoder *enc, const VkFenceCreateInfo *val)
146
/* skip val->{sType,pNext} */
147
vn_encode_VkFlags(enc, &val->flags);
151
vn_encode_VkFenceCreateInfo(struct vn_cs_encoder *enc, const VkFenceCreateInfo *val)
153
assert(val->sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO);
154
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO });
155
vn_encode_VkFenceCreateInfo_pnext(enc, val->pNext);
156
vn_encode_VkFenceCreateInfo_self(enc, val);
159
static inline size_t vn_sizeof_vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
161
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFence_EXT;
162
const VkFlags cmd_flags = 0;
163
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
165
cmd_size += vn_sizeof_VkDevice(&device);
166
cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
168
cmd_size += vn_sizeof_VkFenceCreateInfo(pCreateInfo);
169
cmd_size += vn_sizeof_simple_pointer(pAllocator);
172
cmd_size += vn_sizeof_simple_pointer(pFence);
174
cmd_size += vn_sizeof_VkFence(pFence);
179
static inline void vn_encode_vkCreateFence(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
181
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFence_EXT;
183
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
184
vn_encode_VkFlags(enc, &cmd_flags);
186
vn_encode_VkDevice(enc, &device);
187
if (vn_encode_simple_pointer(enc, pCreateInfo))
188
vn_encode_VkFenceCreateInfo(enc, pCreateInfo);
189
if (vn_encode_simple_pointer(enc, pAllocator))
191
if (vn_encode_simple_pointer(enc, pFence))
192
vn_encode_VkFence(enc, pFence);
195
static inline size_t vn_sizeof_vkCreateFence_reply(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
197
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFence_EXT;
198
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
201
cmd_size += vn_sizeof_VkResult(&ret);
203
/* skip pCreateInfo */
204
/* skip pAllocator */
205
cmd_size += vn_sizeof_simple_pointer(pFence);
207
cmd_size += vn_sizeof_VkFence(pFence);
212
static inline VkResult vn_decode_vkCreateFence_reply(struct vn_cs_decoder *dec, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
214
VkCommandTypeEXT command_type;
215
vn_decode_VkCommandTypeEXT(dec, &command_type);
216
assert(command_type == VK_COMMAND_TYPE_vkCreateFence_EXT);
219
vn_decode_VkResult(dec, &ret);
221
/* skip pCreateInfo */
222
/* skip pAllocator */
223
if (vn_decode_simple_pointer(dec)) {
224
vn_decode_VkFence(dec, pFence);
232
static inline size_t vn_sizeof_vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
234
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFence_EXT;
235
const VkFlags cmd_flags = 0;
236
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
238
cmd_size += vn_sizeof_VkDevice(&device);
239
cmd_size += vn_sizeof_VkFence(&fence);
240
cmd_size += vn_sizeof_simple_pointer(pAllocator);
247
static inline void vn_encode_vkDestroyFence(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
249
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFence_EXT;
251
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
252
vn_encode_VkFlags(enc, &cmd_flags);
254
vn_encode_VkDevice(enc, &device);
255
vn_encode_VkFence(enc, &fence);
256
if (vn_encode_simple_pointer(enc, pAllocator))
260
static inline size_t vn_sizeof_vkDestroyFence_reply(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
262
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFence_EXT;
263
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
267
/* skip pAllocator */
272
static inline void vn_decode_vkDestroyFence_reply(struct vn_cs_decoder *dec, VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
274
VkCommandTypeEXT command_type;
275
vn_decode_VkCommandTypeEXT(dec, &command_type);
276
assert(command_type == VK_COMMAND_TYPE_vkDestroyFence_EXT);
280
/* skip pAllocator */
283
static inline size_t vn_sizeof_vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences)
285
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetFences_EXT;
286
const VkFlags cmd_flags = 0;
287
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
289
cmd_size += vn_sizeof_VkDevice(&device);
290
cmd_size += vn_sizeof_uint32_t(&fenceCount);
292
cmd_size += vn_sizeof_array_size(fenceCount);
293
for (uint32_t i = 0; i < fenceCount; i++)
294
cmd_size += vn_sizeof_VkFence(&pFences[i]);
296
cmd_size += vn_sizeof_array_size(0);
302
static inline void vn_encode_vkResetFences(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t fenceCount, const VkFence* pFences)
304
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetFences_EXT;
306
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
307
vn_encode_VkFlags(enc, &cmd_flags);
309
vn_encode_VkDevice(enc, &device);
310
vn_encode_uint32_t(enc, &fenceCount);
312
vn_encode_array_size(enc, fenceCount);
313
for (uint32_t i = 0; i < fenceCount; i++)
314
vn_encode_VkFence(enc, &pFences[i]);
316
vn_encode_array_size(enc, 0);
320
static inline size_t vn_sizeof_vkResetFences_reply(VkDevice device, uint32_t fenceCount, const VkFence* pFences)
322
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetFences_EXT;
323
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
326
cmd_size += vn_sizeof_VkResult(&ret);
328
/* skip fenceCount */
334
static inline VkResult vn_decode_vkResetFences_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t fenceCount, const VkFence* pFences)
336
VkCommandTypeEXT command_type;
337
vn_decode_VkCommandTypeEXT(dec, &command_type);
338
assert(command_type == VK_COMMAND_TYPE_vkResetFences_EXT);
341
vn_decode_VkResult(dec, &ret);
343
/* skip fenceCount */
349
static inline size_t vn_sizeof_vkGetFenceStatus(VkDevice device, VkFence fence)
351
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetFenceStatus_EXT;
352
const VkFlags cmd_flags = 0;
353
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
355
cmd_size += vn_sizeof_VkDevice(&device);
356
cmd_size += vn_sizeof_VkFence(&fence);
361
static inline void vn_encode_vkGetFenceStatus(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFence fence)
363
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetFenceStatus_EXT;
365
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
366
vn_encode_VkFlags(enc, &cmd_flags);
368
vn_encode_VkDevice(enc, &device);
369
vn_encode_VkFence(enc, &fence);
372
static inline size_t vn_sizeof_vkGetFenceStatus_reply(VkDevice device, VkFence fence)
374
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetFenceStatus_EXT;
375
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
378
cmd_size += vn_sizeof_VkResult(&ret);
385
static inline VkResult vn_decode_vkGetFenceStatus_reply(struct vn_cs_decoder *dec, VkDevice device, VkFence fence)
387
VkCommandTypeEXT command_type;
388
vn_decode_VkCommandTypeEXT(dec, &command_type);
389
assert(command_type == VK_COMMAND_TYPE_vkGetFenceStatus_EXT);
392
vn_decode_VkResult(dec, &ret);
399
static inline size_t vn_sizeof_vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
401
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitForFences_EXT;
402
const VkFlags cmd_flags = 0;
403
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
405
cmd_size += vn_sizeof_VkDevice(&device);
406
cmd_size += vn_sizeof_uint32_t(&fenceCount);
408
cmd_size += vn_sizeof_array_size(fenceCount);
409
for (uint32_t i = 0; i < fenceCount; i++)
410
cmd_size += vn_sizeof_VkFence(&pFences[i]);
412
cmd_size += vn_sizeof_array_size(0);
414
cmd_size += vn_sizeof_VkBool32(&waitAll);
415
cmd_size += vn_sizeof_uint64_t(&timeout);
420
static inline void vn_encode_vkWaitForFences(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
422
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitForFences_EXT;
424
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
425
vn_encode_VkFlags(enc, &cmd_flags);
427
vn_encode_VkDevice(enc, &device);
428
vn_encode_uint32_t(enc, &fenceCount);
430
vn_encode_array_size(enc, fenceCount);
431
for (uint32_t i = 0; i < fenceCount; i++)
432
vn_encode_VkFence(enc, &pFences[i]);
434
vn_encode_array_size(enc, 0);
436
vn_encode_VkBool32(enc, &waitAll);
437
vn_encode_uint64_t(enc, &timeout);
440
static inline size_t vn_sizeof_vkWaitForFences_reply(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
442
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWaitForFences_EXT;
443
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
446
cmd_size += vn_sizeof_VkResult(&ret);
448
/* skip fenceCount */
456
static inline VkResult vn_decode_vkWaitForFences_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
458
VkCommandTypeEXT command_type;
459
vn_decode_VkCommandTypeEXT(dec, &command_type);
460
assert(command_type == VK_COMMAND_TYPE_vkWaitForFences_EXT);
463
vn_decode_VkResult(dec, &ret);
465
/* skip fenceCount */
473
static inline void vn_submit_vkCreateFence(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence, struct vn_instance_submit_command *submit)
475
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
476
void *cmd_data = local_cmd_data;
477
size_t cmd_size = vn_sizeof_vkCreateFence(device, pCreateInfo, pAllocator, pFence);
478
if (cmd_size > sizeof(local_cmd_data)) {
479
cmd_data = malloc(cmd_size);
483
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateFence_reply(device, pCreateInfo, pAllocator, pFence) : 0;
485
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
487
vn_encode_vkCreateFence(enc, cmd_flags, device, pCreateInfo, pAllocator, pFence);
488
vn_instance_submit_command(vn_instance, submit);
489
if (cmd_data != local_cmd_data)
494
static inline void vn_submit_vkDestroyFence(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
496
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
497
void *cmd_data = local_cmd_data;
498
size_t cmd_size = vn_sizeof_vkDestroyFence(device, fence, pAllocator);
499
if (cmd_size > sizeof(local_cmd_data)) {
500
cmd_data = malloc(cmd_size);
504
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyFence_reply(device, fence, pAllocator) : 0;
506
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
508
vn_encode_vkDestroyFence(enc, cmd_flags, device, fence, pAllocator);
509
vn_instance_submit_command(vn_instance, submit);
510
if (cmd_data != local_cmd_data)
515
static inline void vn_submit_vkResetFences(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t fenceCount, const VkFence* pFences, struct vn_instance_submit_command *submit)
517
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
518
void *cmd_data = local_cmd_data;
519
size_t cmd_size = vn_sizeof_vkResetFences(device, fenceCount, pFences);
520
if (cmd_size > sizeof(local_cmd_data)) {
521
cmd_data = malloc(cmd_size);
525
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetFences_reply(device, fenceCount, pFences) : 0;
527
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
529
vn_encode_vkResetFences(enc, cmd_flags, device, fenceCount, pFences);
530
vn_instance_submit_command(vn_instance, submit);
531
if (cmd_data != local_cmd_data)
536
static inline void vn_submit_vkGetFenceStatus(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFence fence, struct vn_instance_submit_command *submit)
538
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
539
void *cmd_data = local_cmd_data;
540
size_t cmd_size = vn_sizeof_vkGetFenceStatus(device, fence);
541
if (cmd_size > sizeof(local_cmd_data)) {
542
cmd_data = malloc(cmd_size);
546
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetFenceStatus_reply(device, fence) : 0;
548
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
550
vn_encode_vkGetFenceStatus(enc, cmd_flags, device, fence);
551
vn_instance_submit_command(vn_instance, submit);
552
if (cmd_data != local_cmd_data)
557
static inline void vn_submit_vkWaitForFences(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout, struct vn_instance_submit_command *submit)
559
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
560
void *cmd_data = local_cmd_data;
561
size_t cmd_size = vn_sizeof_vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
562
if (cmd_size > sizeof(local_cmd_data)) {
563
cmd_data = malloc(cmd_size);
567
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWaitForFences_reply(device, fenceCount, pFences, waitAll, timeout) : 0;
569
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
571
vn_encode_vkWaitForFences(enc, cmd_flags, device, fenceCount, pFences, waitAll, timeout);
572
vn_instance_submit_command(vn_instance, submit);
573
if (cmd_data != local_cmd_data)
578
static inline VkResult vn_call_vkCreateFence(struct vn_instance *vn_instance, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
582
struct vn_instance_submit_command submit;
583
vn_submit_vkCreateFence(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pFence, &submit);
584
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
586
const VkResult ret = vn_decode_vkCreateFence_reply(dec, device, pCreateInfo, pAllocator, pFence);
587
vn_instance_free_command_reply(vn_instance, &submit);
590
return VK_ERROR_OUT_OF_HOST_MEMORY;
594
static inline void vn_async_vkCreateFence(struct vn_instance *vn_instance, VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
596
struct vn_instance_submit_command submit;
597
vn_submit_vkCreateFence(vn_instance, 0, device, pCreateInfo, pAllocator, pFence, &submit);
600
static inline void vn_call_vkDestroyFence(struct vn_instance *vn_instance, VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
604
struct vn_instance_submit_command submit;
605
vn_submit_vkDestroyFence(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, fence, pAllocator, &submit);
606
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
608
vn_decode_vkDestroyFence_reply(dec, device, fence, pAllocator);
609
vn_instance_free_command_reply(vn_instance, &submit);
613
static inline void vn_async_vkDestroyFence(struct vn_instance *vn_instance, VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
615
struct vn_instance_submit_command submit;
616
vn_submit_vkDestroyFence(vn_instance, 0, device, fence, pAllocator, &submit);
619
static inline VkResult vn_call_vkResetFences(struct vn_instance *vn_instance, VkDevice device, uint32_t fenceCount, const VkFence* pFences)
623
struct vn_instance_submit_command submit;
624
vn_submit_vkResetFences(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, fenceCount, pFences, &submit);
625
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
627
const VkResult ret = vn_decode_vkResetFences_reply(dec, device, fenceCount, pFences);
628
vn_instance_free_command_reply(vn_instance, &submit);
631
return VK_ERROR_OUT_OF_HOST_MEMORY;
635
static inline void vn_async_vkResetFences(struct vn_instance *vn_instance, VkDevice device, uint32_t fenceCount, const VkFence* pFences)
637
struct vn_instance_submit_command submit;
638
vn_submit_vkResetFences(vn_instance, 0, device, fenceCount, pFences, &submit);
641
static inline VkResult vn_call_vkGetFenceStatus(struct vn_instance *vn_instance, VkDevice device, VkFence fence)
645
struct vn_instance_submit_command submit;
646
vn_submit_vkGetFenceStatus(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, fence, &submit);
647
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
649
const VkResult ret = vn_decode_vkGetFenceStatus_reply(dec, device, fence);
650
vn_instance_free_command_reply(vn_instance, &submit);
653
return VK_ERROR_OUT_OF_HOST_MEMORY;
657
static inline void vn_async_vkGetFenceStatus(struct vn_instance *vn_instance, VkDevice device, VkFence fence)
659
struct vn_instance_submit_command submit;
660
vn_submit_vkGetFenceStatus(vn_instance, 0, device, fence, &submit);
663
static inline VkResult vn_call_vkWaitForFences(struct vn_instance *vn_instance, VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
667
struct vn_instance_submit_command submit;
668
vn_submit_vkWaitForFences(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, fenceCount, pFences, waitAll, timeout, &submit);
669
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
671
const VkResult ret = vn_decode_vkWaitForFences_reply(dec, device, fenceCount, pFences, waitAll, timeout);
672
vn_instance_free_command_reply(vn_instance, &submit);
675
return VK_ERROR_OUT_OF_HOST_MEMORY;
679
static inline void vn_async_vkWaitForFences(struct vn_instance *vn_instance, VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout)
681
struct vn_instance_submit_command submit;
682
vn_submit_vkWaitForFences(vn_instance, 0, device, fenceCount, pFences, waitAll, timeout, &submit);
685
#endif /* VN_PROTOCOL_DRIVER_FENCE_H */