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_COMMAND_POOL_H
9 #define VN_PROTOCOL_DRIVER_COMMAND_POOL_H
10
11 #include "vn_instance.h"
12 #include "vn_protocol_driver_structs.h"
13
14 /* struct VkCommandPoolCreateInfo chain */
15
16 static inline size_t
vn_sizeof_VkCommandPoolCreateInfo_pnext(const void * val)17 vn_sizeof_VkCommandPoolCreateInfo_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_VkCommandPoolCreateInfo_self(const VkCommandPoolCreateInfo * val)24 vn_sizeof_VkCommandPoolCreateInfo_self(const VkCommandPoolCreateInfo *val)
25 {
26 size_t size = 0;
27 /* skip val->{sType,pNext} */
28 size += vn_sizeof_VkFlags(&val->flags);
29 size += vn_sizeof_uint32_t(&val->queueFamilyIndex);
30 return size;
31 }
32
33 static inline size_t
vn_sizeof_VkCommandPoolCreateInfo(const VkCommandPoolCreateInfo * val)34 vn_sizeof_VkCommandPoolCreateInfo(const VkCommandPoolCreateInfo *val)
35 {
36 size_t size = 0;
37
38 size += vn_sizeof_VkStructureType(&val->sType);
39 size += vn_sizeof_VkCommandPoolCreateInfo_pnext(val->pNext);
40 size += vn_sizeof_VkCommandPoolCreateInfo_self(val);
41
42 return size;
43 }
44
45 static inline void
vn_encode_VkCommandPoolCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)46 vn_encode_VkCommandPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
47 {
48 /* no known/supported struct */
49 vn_encode_simple_pointer(enc, NULL);
50 }
51
52 static inline void
vn_encode_VkCommandPoolCreateInfo_self(struct vn_cs_encoder * enc,const VkCommandPoolCreateInfo * val)53 vn_encode_VkCommandPoolCreateInfo_self(struct vn_cs_encoder *enc, const VkCommandPoolCreateInfo *val)
54 {
55 /* skip val->{sType,pNext} */
56 vn_encode_VkFlags(enc, &val->flags);
57 vn_encode_uint32_t(enc, &val->queueFamilyIndex);
58 }
59
60 static inline void
vn_encode_VkCommandPoolCreateInfo(struct vn_cs_encoder * enc,const VkCommandPoolCreateInfo * val)61 vn_encode_VkCommandPoolCreateInfo(struct vn_cs_encoder *enc, const VkCommandPoolCreateInfo *val)
62 {
63 assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO);
64 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO });
65 vn_encode_VkCommandPoolCreateInfo_pnext(enc, val->pNext);
66 vn_encode_VkCommandPoolCreateInfo_self(enc, val);
67 }
68
vn_sizeof_vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)69 static inline size_t vn_sizeof_vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
70 {
71 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;
72 const VkFlags cmd_flags = 0;
73 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
74
75 cmd_size += vn_sizeof_VkDevice(&device);
76 cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
77 if (pCreateInfo)
78 cmd_size += vn_sizeof_VkCommandPoolCreateInfo(pCreateInfo);
79 cmd_size += vn_sizeof_simple_pointer(pAllocator);
80 if (pAllocator)
81 assert(false);
82 cmd_size += vn_sizeof_simple_pointer(pCommandPool);
83 if (pCommandPool)
84 cmd_size += vn_sizeof_VkCommandPool(pCommandPool);
85
86 return cmd_size;
87 }
88
vn_encode_vkCreateCommandPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)89 static inline void vn_encode_vkCreateCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
90 {
91 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;
92
93 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
94 vn_encode_VkFlags(enc, &cmd_flags);
95
96 vn_encode_VkDevice(enc, &device);
97 if (vn_encode_simple_pointer(enc, pCreateInfo))
98 vn_encode_VkCommandPoolCreateInfo(enc, pCreateInfo);
99 if (vn_encode_simple_pointer(enc, pAllocator))
100 assert(false);
101 if (vn_encode_simple_pointer(enc, pCommandPool))
102 vn_encode_VkCommandPool(enc, pCommandPool);
103 }
104
vn_sizeof_vkCreateCommandPool_reply(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)105 static inline size_t vn_sizeof_vkCreateCommandPool_reply(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
106 {
107 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;
108 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
109
110 VkResult ret;
111 cmd_size += vn_sizeof_VkResult(&ret);
112 /* skip device */
113 /* skip pCreateInfo */
114 /* skip pAllocator */
115 cmd_size += vn_sizeof_simple_pointer(pCommandPool);
116 if (pCommandPool)
117 cmd_size += vn_sizeof_VkCommandPool(pCommandPool);
118
119 return cmd_size;
120 }
121
vn_decode_vkCreateCommandPool_reply(struct vn_cs_decoder * dec,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)122 static inline VkResult vn_decode_vkCreateCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
123 {
124 VkCommandTypeEXT command_type;
125 vn_decode_VkCommandTypeEXT(dec, &command_type);
126 assert(command_type == VK_COMMAND_TYPE_vkCreateCommandPool_EXT);
127
128 VkResult ret;
129 vn_decode_VkResult(dec, &ret);
130 /* skip device */
131 /* skip pCreateInfo */
132 /* skip pAllocator */
133 if (vn_decode_simple_pointer(dec)) {
134 vn_decode_VkCommandPool(dec, pCommandPool);
135 } else {
136 pCommandPool = NULL;
137 }
138
139 return ret;
140 }
141
vn_sizeof_vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)142 static inline size_t vn_sizeof_vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
143 {
144 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;
145 const VkFlags cmd_flags = 0;
146 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
147
148 cmd_size += vn_sizeof_VkDevice(&device);
149 cmd_size += vn_sizeof_VkCommandPool(&commandPool);
150 cmd_size += vn_sizeof_simple_pointer(pAllocator);
151 if (pAllocator)
152 assert(false);
153
154 return cmd_size;
155 }
156
vn_encode_vkDestroyCommandPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)157 static inline void vn_encode_vkDestroyCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
158 {
159 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;
160
161 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
162 vn_encode_VkFlags(enc, &cmd_flags);
163
164 vn_encode_VkDevice(enc, &device);
165 vn_encode_VkCommandPool(enc, &commandPool);
166 if (vn_encode_simple_pointer(enc, pAllocator))
167 assert(false);
168 }
169
vn_sizeof_vkDestroyCommandPool_reply(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)170 static inline size_t vn_sizeof_vkDestroyCommandPool_reply(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
171 {
172 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;
173 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
174
175 /* skip device */
176 /* skip commandPool */
177 /* skip pAllocator */
178
179 return cmd_size;
180 }
181
vn_decode_vkDestroyCommandPool_reply(struct vn_cs_decoder * dec,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)182 static inline void vn_decode_vkDestroyCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
183 {
184 VkCommandTypeEXT command_type;
185 vn_decode_VkCommandTypeEXT(dec, &command_type);
186 assert(command_type == VK_COMMAND_TYPE_vkDestroyCommandPool_EXT);
187
188 /* skip device */
189 /* skip commandPool */
190 /* skip pAllocator */
191 }
192
vn_sizeof_vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)193 static inline size_t vn_sizeof_vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
194 {
195 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;
196 const VkFlags cmd_flags = 0;
197 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
198
199 cmd_size += vn_sizeof_VkDevice(&device);
200 cmd_size += vn_sizeof_VkCommandPool(&commandPool);
201 cmd_size += vn_sizeof_VkFlags(&flags);
202
203 return cmd_size;
204 }
205
vn_encode_vkResetCommandPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)206 static inline void vn_encode_vkResetCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
207 {
208 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;
209
210 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
211 vn_encode_VkFlags(enc, &cmd_flags);
212
213 vn_encode_VkDevice(enc, &device);
214 vn_encode_VkCommandPool(enc, &commandPool);
215 vn_encode_VkFlags(enc, &flags);
216 }
217
vn_sizeof_vkResetCommandPool_reply(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)218 static inline size_t vn_sizeof_vkResetCommandPool_reply(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
219 {
220 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;
221 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
222
223 VkResult ret;
224 cmd_size += vn_sizeof_VkResult(&ret);
225 /* skip device */
226 /* skip commandPool */
227 /* skip flags */
228
229 return cmd_size;
230 }
231
vn_decode_vkResetCommandPool_reply(struct vn_cs_decoder * dec,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)232 static inline VkResult vn_decode_vkResetCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
233 {
234 VkCommandTypeEXT command_type;
235 vn_decode_VkCommandTypeEXT(dec, &command_type);
236 assert(command_type == VK_COMMAND_TYPE_vkResetCommandPool_EXT);
237
238 VkResult ret;
239 vn_decode_VkResult(dec, &ret);
240 /* skip device */
241 /* skip commandPool */
242 /* skip flags */
243
244 return ret;
245 }
246
vn_sizeof_vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)247 static inline size_t vn_sizeof_vkTrimCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
248 {
249 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;
250 const VkFlags cmd_flags = 0;
251 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
252
253 cmd_size += vn_sizeof_VkDevice(&device);
254 cmd_size += vn_sizeof_VkCommandPool(&commandPool);
255 cmd_size += vn_sizeof_VkFlags(&flags);
256
257 return cmd_size;
258 }
259
vn_encode_vkTrimCommandPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)260 static inline void vn_encode_vkTrimCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
261 {
262 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;
263
264 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
265 vn_encode_VkFlags(enc, &cmd_flags);
266
267 vn_encode_VkDevice(enc, &device);
268 vn_encode_VkCommandPool(enc, &commandPool);
269 vn_encode_VkFlags(enc, &flags);
270 }
271
vn_sizeof_vkTrimCommandPool_reply(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)272 static inline size_t vn_sizeof_vkTrimCommandPool_reply(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
273 {
274 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;
275 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
276
277 /* skip device */
278 /* skip commandPool */
279 /* skip flags */
280
281 return cmd_size;
282 }
283
vn_decode_vkTrimCommandPool_reply(struct vn_cs_decoder * dec,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)284 static inline void vn_decode_vkTrimCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
285 {
286 VkCommandTypeEXT command_type;
287 vn_decode_VkCommandTypeEXT(dec, &command_type);
288 assert(command_type == VK_COMMAND_TYPE_vkTrimCommandPool_EXT);
289
290 /* skip device */
291 /* skip commandPool */
292 /* skip flags */
293 }
294
vn_submit_vkCreateCommandPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool,struct vn_instance_submit_command * submit)295 static inline void vn_submit_vkCreateCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool, struct vn_instance_submit_command *submit)
296 {
297 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
298 void *cmd_data = local_cmd_data;
299 size_t cmd_size = vn_sizeof_vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
300 if (cmd_size > sizeof(local_cmd_data)) {
301 cmd_data = malloc(cmd_size);
302 if (!cmd_data)
303 cmd_size = 0;
304 }
305 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateCommandPool_reply(device, pCreateInfo, pAllocator, pCommandPool) : 0;
306
307 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
308 if (cmd_size) {
309 vn_encode_vkCreateCommandPool(enc, cmd_flags, device, pCreateInfo, pAllocator, pCommandPool);
310 vn_instance_submit_command(vn_instance, submit);
311 if (cmd_data != local_cmd_data)
312 free(cmd_data);
313 }
314 }
315
vn_submit_vkDestroyCommandPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator,struct vn_instance_submit_command * submit)316 static inline void vn_submit_vkDestroyCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
317 {
318 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
319 void *cmd_data = local_cmd_data;
320 size_t cmd_size = vn_sizeof_vkDestroyCommandPool(device, commandPool, pAllocator);
321 if (cmd_size > sizeof(local_cmd_data)) {
322 cmd_data = malloc(cmd_size);
323 if (!cmd_data)
324 cmd_size = 0;
325 }
326 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyCommandPool_reply(device, commandPool, pAllocator) : 0;
327
328 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
329 if (cmd_size) {
330 vn_encode_vkDestroyCommandPool(enc, cmd_flags, device, commandPool, pAllocator);
331 vn_instance_submit_command(vn_instance, submit);
332 if (cmd_data != local_cmd_data)
333 free(cmd_data);
334 }
335 }
336
vn_submit_vkResetCommandPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags,struct vn_instance_submit_command * submit)337 static inline void vn_submit_vkResetCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags, struct vn_instance_submit_command *submit)
338 {
339 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
340 void *cmd_data = local_cmd_data;
341 size_t cmd_size = vn_sizeof_vkResetCommandPool(device, commandPool, flags);
342 if (cmd_size > sizeof(local_cmd_data)) {
343 cmd_data = malloc(cmd_size);
344 if (!cmd_data)
345 cmd_size = 0;
346 }
347 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetCommandPool_reply(device, commandPool, flags) : 0;
348
349 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
350 if (cmd_size) {
351 vn_encode_vkResetCommandPool(enc, cmd_flags, device, commandPool, flags);
352 vn_instance_submit_command(vn_instance, submit);
353 if (cmd_data != local_cmd_data)
354 free(cmd_data);
355 }
356 }
357
vn_submit_vkTrimCommandPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags,struct vn_instance_submit_command * submit)358 static inline void vn_submit_vkTrimCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags, struct vn_instance_submit_command *submit)
359 {
360 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
361 void *cmd_data = local_cmd_data;
362 size_t cmd_size = vn_sizeof_vkTrimCommandPool(device, commandPool, flags);
363 if (cmd_size > sizeof(local_cmd_data)) {
364 cmd_data = malloc(cmd_size);
365 if (!cmd_data)
366 cmd_size = 0;
367 }
368 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkTrimCommandPool_reply(device, commandPool, flags) : 0;
369
370 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
371 if (cmd_size) {
372 vn_encode_vkTrimCommandPool(enc, cmd_flags, device, commandPool, flags);
373 vn_instance_submit_command(vn_instance, submit);
374 if (cmd_data != local_cmd_data)
375 free(cmd_data);
376 }
377 }
378
vn_call_vkCreateCommandPool(struct vn_instance * vn_instance,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)379 static inline VkResult vn_call_vkCreateCommandPool(struct vn_instance *vn_instance, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
380 {
381 VN_TRACE_FUNC();
382
383 struct vn_instance_submit_command submit;
384 vn_submit_vkCreateCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pCommandPool, &submit);
385 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
386 if (dec) {
387 const VkResult ret = vn_decode_vkCreateCommandPool_reply(dec, device, pCreateInfo, pAllocator, pCommandPool);
388 vn_instance_free_command_reply(vn_instance, &submit);
389 return ret;
390 } else {
391 return VK_ERROR_OUT_OF_HOST_MEMORY;
392 }
393 }
394
vn_async_vkCreateCommandPool(struct vn_instance * vn_instance,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)395 static inline void vn_async_vkCreateCommandPool(struct vn_instance *vn_instance, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
396 {
397 struct vn_instance_submit_command submit;
398 vn_submit_vkCreateCommandPool(vn_instance, 0, device, pCreateInfo, pAllocator, pCommandPool, &submit);
399 }
400
vn_call_vkDestroyCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)401 static inline void vn_call_vkDestroyCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
402 {
403 VN_TRACE_FUNC();
404
405 struct vn_instance_submit_command submit;
406 vn_submit_vkDestroyCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, pAllocator, &submit);
407 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
408 if (dec) {
409 vn_decode_vkDestroyCommandPool_reply(dec, device, commandPool, pAllocator);
410 vn_instance_free_command_reply(vn_instance, &submit);
411 }
412 }
413
vn_async_vkDestroyCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)414 static inline void vn_async_vkDestroyCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
415 {
416 struct vn_instance_submit_command submit;
417 vn_submit_vkDestroyCommandPool(vn_instance, 0, device, commandPool, pAllocator, &submit);
418 }
419
vn_call_vkResetCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)420 static inline VkResult vn_call_vkResetCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
421 {
422 VN_TRACE_FUNC();
423
424 struct vn_instance_submit_command submit;
425 vn_submit_vkResetCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, flags, &submit);
426 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
427 if (dec) {
428 const VkResult ret = vn_decode_vkResetCommandPool_reply(dec, device, commandPool, flags);
429 vn_instance_free_command_reply(vn_instance, &submit);
430 return ret;
431 } else {
432 return VK_ERROR_OUT_OF_HOST_MEMORY;
433 }
434 }
435
vn_async_vkResetCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)436 static inline void vn_async_vkResetCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
437 {
438 struct vn_instance_submit_command submit;
439 vn_submit_vkResetCommandPool(vn_instance, 0, device, commandPool, flags, &submit);
440 }
441
vn_call_vkTrimCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)442 static inline void vn_call_vkTrimCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
443 {
444 VN_TRACE_FUNC();
445
446 struct vn_instance_submit_command submit;
447 vn_submit_vkTrimCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, flags, &submit);
448 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
449 if (dec) {
450 vn_decode_vkTrimCommandPool_reply(dec, device, commandPool, flags);
451 vn_instance_free_command_reply(vn_instance, &submit);
452 }
453 }
454
vn_async_vkTrimCommandPool(struct vn_instance * vn_instance,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)455 static inline void vn_async_vkTrimCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
456 {
457 struct vn_instance_submit_command submit;
458 vn_submit_vkTrimCommandPool(vn_instance, 0, device, commandPool, flags, &submit);
459 }
460
461 #endif /* VN_PROTOCOL_DRIVER_COMMAND_POOL_H */
462