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_DESCRIPTOR_POOL_H
9 #define VN_PROTOCOL_DRIVER_DESCRIPTOR_POOL_H
10
11 #include "vn_instance.h"
12 #include "vn_protocol_driver_structs.h"
13
14 /* struct VkDescriptorPoolSize */
15
16 static inline size_t
vn_sizeof_VkDescriptorPoolSize(const VkDescriptorPoolSize * val)17 vn_sizeof_VkDescriptorPoolSize(const VkDescriptorPoolSize *val)
18 {
19 size_t size = 0;
20 size += vn_sizeof_VkDescriptorType(&val->type);
21 size += vn_sizeof_uint32_t(&val->descriptorCount);
22 return size;
23 }
24
25 static inline void
vn_encode_VkDescriptorPoolSize(struct vn_cs_encoder * enc,const VkDescriptorPoolSize * val)26 vn_encode_VkDescriptorPoolSize(struct vn_cs_encoder *enc, const VkDescriptorPoolSize *val)
27 {
28 vn_encode_VkDescriptorType(enc, &val->type);
29 vn_encode_uint32_t(enc, &val->descriptorCount);
30 }
31
32 /* struct VkDescriptorPoolCreateInfo chain */
33
34 static inline size_t
vn_sizeof_VkDescriptorPoolCreateInfo_pnext(const void * val)35 vn_sizeof_VkDescriptorPoolCreateInfo_pnext(const void *val)
36 {
37 /* no known/supported struct */
38 return vn_sizeof_simple_pointer(NULL);
39 }
40
41 static inline size_t
vn_sizeof_VkDescriptorPoolCreateInfo_self(const VkDescriptorPoolCreateInfo * val)42 vn_sizeof_VkDescriptorPoolCreateInfo_self(const VkDescriptorPoolCreateInfo *val)
43 {
44 size_t size = 0;
45 /* skip val->{sType,pNext} */
46 size += vn_sizeof_VkFlags(&val->flags);
47 size += vn_sizeof_uint32_t(&val->maxSets);
48 size += vn_sizeof_uint32_t(&val->poolSizeCount);
49 if (val->pPoolSizes) {
50 size += vn_sizeof_array_size(val->poolSizeCount);
51 for (uint32_t i = 0; i < val->poolSizeCount; i++)
52 size += vn_sizeof_VkDescriptorPoolSize(&val->pPoolSizes[i]);
53 } else {
54 size += vn_sizeof_array_size(0);
55 }
56 return size;
57 }
58
59 static inline size_t
vn_sizeof_VkDescriptorPoolCreateInfo(const VkDescriptorPoolCreateInfo * val)60 vn_sizeof_VkDescriptorPoolCreateInfo(const VkDescriptorPoolCreateInfo *val)
61 {
62 size_t size = 0;
63
64 size += vn_sizeof_VkStructureType(&val->sType);
65 size += vn_sizeof_VkDescriptorPoolCreateInfo_pnext(val->pNext);
66 size += vn_sizeof_VkDescriptorPoolCreateInfo_self(val);
67
68 return size;
69 }
70
71 static inline void
vn_encode_VkDescriptorPoolCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)72 vn_encode_VkDescriptorPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
73 {
74 /* no known/supported struct */
75 vn_encode_simple_pointer(enc, NULL);
76 }
77
78 static inline void
vn_encode_VkDescriptorPoolCreateInfo_self(struct vn_cs_encoder * enc,const VkDescriptorPoolCreateInfo * val)79 vn_encode_VkDescriptorPoolCreateInfo_self(struct vn_cs_encoder *enc, const VkDescriptorPoolCreateInfo *val)
80 {
81 /* skip val->{sType,pNext} */
82 vn_encode_VkFlags(enc, &val->flags);
83 vn_encode_uint32_t(enc, &val->maxSets);
84 vn_encode_uint32_t(enc, &val->poolSizeCount);
85 if (val->pPoolSizes) {
86 vn_encode_array_size(enc, val->poolSizeCount);
87 for (uint32_t i = 0; i < val->poolSizeCount; i++)
88 vn_encode_VkDescriptorPoolSize(enc, &val->pPoolSizes[i]);
89 } else {
90 vn_encode_array_size(enc, 0);
91 }
92 }
93
94 static inline void
vn_encode_VkDescriptorPoolCreateInfo(struct vn_cs_encoder * enc,const VkDescriptorPoolCreateInfo * val)95 vn_encode_VkDescriptorPoolCreateInfo(struct vn_cs_encoder *enc, const VkDescriptorPoolCreateInfo *val)
96 {
97 assert(val->sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO);
98 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO });
99 vn_encode_VkDescriptorPoolCreateInfo_pnext(enc, val->pNext);
100 vn_encode_VkDescriptorPoolCreateInfo_self(enc, val);
101 }
102
vn_sizeof_vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)103 static inline size_t vn_sizeof_vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
104 {
105 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;
106 const VkFlags cmd_flags = 0;
107 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
108
109 cmd_size += vn_sizeof_VkDevice(&device);
110 cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
111 if (pCreateInfo)
112 cmd_size += vn_sizeof_VkDescriptorPoolCreateInfo(pCreateInfo);
113 cmd_size += vn_sizeof_simple_pointer(pAllocator);
114 if (pAllocator)
115 assert(false);
116 cmd_size += vn_sizeof_simple_pointer(pDescriptorPool);
117 if (pDescriptorPool)
118 cmd_size += vn_sizeof_VkDescriptorPool(pDescriptorPool);
119
120 return cmd_size;
121 }
122
vn_encode_vkCreateDescriptorPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)123 static inline void vn_encode_vkCreateDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
124 {
125 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;
126
127 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
128 vn_encode_VkFlags(enc, &cmd_flags);
129
130 vn_encode_VkDevice(enc, &device);
131 if (vn_encode_simple_pointer(enc, pCreateInfo))
132 vn_encode_VkDescriptorPoolCreateInfo(enc, pCreateInfo);
133 if (vn_encode_simple_pointer(enc, pAllocator))
134 assert(false);
135 if (vn_encode_simple_pointer(enc, pDescriptorPool))
136 vn_encode_VkDescriptorPool(enc, pDescriptorPool);
137 }
138
vn_sizeof_vkCreateDescriptorPool_reply(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)139 static inline size_t vn_sizeof_vkCreateDescriptorPool_reply(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
140 {
141 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;
142 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
143
144 VkResult ret;
145 cmd_size += vn_sizeof_VkResult(&ret);
146 /* skip device */
147 /* skip pCreateInfo */
148 /* skip pAllocator */
149 cmd_size += vn_sizeof_simple_pointer(pDescriptorPool);
150 if (pDescriptorPool)
151 cmd_size += vn_sizeof_VkDescriptorPool(pDescriptorPool);
152
153 return cmd_size;
154 }
155
vn_decode_vkCreateDescriptorPool_reply(struct vn_cs_decoder * dec,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)156 static inline VkResult vn_decode_vkCreateDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
157 {
158 VkCommandTypeEXT command_type;
159 vn_decode_VkCommandTypeEXT(dec, &command_type);
160 assert(command_type == VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT);
161
162 VkResult ret;
163 vn_decode_VkResult(dec, &ret);
164 /* skip device */
165 /* skip pCreateInfo */
166 /* skip pAllocator */
167 if (vn_decode_simple_pointer(dec)) {
168 vn_decode_VkDescriptorPool(dec, pDescriptorPool);
169 } else {
170 pDescriptorPool = NULL;
171 }
172
173 return ret;
174 }
175
vn_sizeof_vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)176 static inline size_t vn_sizeof_vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
177 {
178 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;
179 const VkFlags cmd_flags = 0;
180 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
181
182 cmd_size += vn_sizeof_VkDevice(&device);
183 cmd_size += vn_sizeof_VkDescriptorPool(&descriptorPool);
184 cmd_size += vn_sizeof_simple_pointer(pAllocator);
185 if (pAllocator)
186 assert(false);
187
188 return cmd_size;
189 }
190
vn_encode_vkDestroyDescriptorPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)191 static inline void vn_encode_vkDestroyDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
192 {
193 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;
194
195 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
196 vn_encode_VkFlags(enc, &cmd_flags);
197
198 vn_encode_VkDevice(enc, &device);
199 vn_encode_VkDescriptorPool(enc, &descriptorPool);
200 if (vn_encode_simple_pointer(enc, pAllocator))
201 assert(false);
202 }
203
vn_sizeof_vkDestroyDescriptorPool_reply(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)204 static inline size_t vn_sizeof_vkDestroyDescriptorPool_reply(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
205 {
206 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;
207 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
208
209 /* skip device */
210 /* skip descriptorPool */
211 /* skip pAllocator */
212
213 return cmd_size;
214 }
215
vn_decode_vkDestroyDescriptorPool_reply(struct vn_cs_decoder * dec,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)216 static inline void vn_decode_vkDestroyDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
217 {
218 VkCommandTypeEXT command_type;
219 vn_decode_VkCommandTypeEXT(dec, &command_type);
220 assert(command_type == VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT);
221
222 /* skip device */
223 /* skip descriptorPool */
224 /* skip pAllocator */
225 }
226
vn_sizeof_vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)227 static inline size_t vn_sizeof_vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
228 {
229 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;
230 const VkFlags cmd_flags = 0;
231 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
232
233 cmd_size += vn_sizeof_VkDevice(&device);
234 cmd_size += vn_sizeof_VkDescriptorPool(&descriptorPool);
235 cmd_size += vn_sizeof_VkFlags(&flags);
236
237 return cmd_size;
238 }
239
vn_encode_vkResetDescriptorPool(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)240 static inline void vn_encode_vkResetDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
241 {
242 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;
243
244 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
245 vn_encode_VkFlags(enc, &cmd_flags);
246
247 vn_encode_VkDevice(enc, &device);
248 vn_encode_VkDescriptorPool(enc, &descriptorPool);
249 vn_encode_VkFlags(enc, &flags);
250 }
251
vn_sizeof_vkResetDescriptorPool_reply(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)252 static inline size_t vn_sizeof_vkResetDescriptorPool_reply(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
253 {
254 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;
255 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
256
257 VkResult ret;
258 cmd_size += vn_sizeof_VkResult(&ret);
259 /* skip device */
260 /* skip descriptorPool */
261 /* skip flags */
262
263 return cmd_size;
264 }
265
vn_decode_vkResetDescriptorPool_reply(struct vn_cs_decoder * dec,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)266 static inline VkResult vn_decode_vkResetDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
267 {
268 VkCommandTypeEXT command_type;
269 vn_decode_VkCommandTypeEXT(dec, &command_type);
270 assert(command_type == VK_COMMAND_TYPE_vkResetDescriptorPool_EXT);
271
272 VkResult ret;
273 vn_decode_VkResult(dec, &ret);
274 /* skip device */
275 /* skip descriptorPool */
276 /* skip flags */
277
278 return ret;
279 }
280
vn_submit_vkCreateDescriptorPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool,struct vn_instance_submit_command * submit)281 static inline void vn_submit_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool, struct vn_instance_submit_command *submit)
282 {
283 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
284 void *cmd_data = local_cmd_data;
285 size_t cmd_size = vn_sizeof_vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
286 if (cmd_size > sizeof(local_cmd_data)) {
287 cmd_data = malloc(cmd_size);
288 if (!cmd_data)
289 cmd_size = 0;
290 }
291 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateDescriptorPool_reply(device, pCreateInfo, pAllocator, pDescriptorPool) : 0;
292
293 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
294 if (cmd_size) {
295 vn_encode_vkCreateDescriptorPool(enc, cmd_flags, device, pCreateInfo, pAllocator, pDescriptorPool);
296 vn_instance_submit_command(vn_instance, submit);
297 if (cmd_data != local_cmd_data)
298 free(cmd_data);
299 }
300 }
301
vn_submit_vkDestroyDescriptorPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator,struct vn_instance_submit_command * submit)302 static inline void vn_submit_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
303 {
304 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
305 void *cmd_data = local_cmd_data;
306 size_t cmd_size = vn_sizeof_vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
307 if (cmd_size > sizeof(local_cmd_data)) {
308 cmd_data = malloc(cmd_size);
309 if (!cmd_data)
310 cmd_size = 0;
311 }
312 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyDescriptorPool_reply(device, descriptorPool, pAllocator) : 0;
313
314 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
315 if (cmd_size) {
316 vn_encode_vkDestroyDescriptorPool(enc, cmd_flags, device, descriptorPool, pAllocator);
317 vn_instance_submit_command(vn_instance, submit);
318 if (cmd_data != local_cmd_data)
319 free(cmd_data);
320 }
321 }
322
vn_submit_vkResetDescriptorPool(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags,struct vn_instance_submit_command * submit)323 static inline void vn_submit_vkResetDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags, struct vn_instance_submit_command *submit)
324 {
325 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
326 void *cmd_data = local_cmd_data;
327 size_t cmd_size = vn_sizeof_vkResetDescriptorPool(device, descriptorPool, flags);
328 if (cmd_size > sizeof(local_cmd_data)) {
329 cmd_data = malloc(cmd_size);
330 if (!cmd_data)
331 cmd_size = 0;
332 }
333 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetDescriptorPool_reply(device, descriptorPool, flags) : 0;
334
335 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
336 if (cmd_size) {
337 vn_encode_vkResetDescriptorPool(enc, cmd_flags, device, descriptorPool, flags);
338 vn_instance_submit_command(vn_instance, submit);
339 if (cmd_data != local_cmd_data)
340 free(cmd_data);
341 }
342 }
343
vn_call_vkCreateDescriptorPool(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)344 static inline VkResult vn_call_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
345 {
346 VN_TRACE_FUNC();
347
348 struct vn_instance_submit_command submit;
349 vn_submit_vkCreateDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pDescriptorPool, &submit);
350 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
351 if (dec) {
352 const VkResult ret = vn_decode_vkCreateDescriptorPool_reply(dec, device, pCreateInfo, pAllocator, pDescriptorPool);
353 vn_instance_free_command_reply(vn_instance, &submit);
354 return ret;
355 } else {
356 return VK_ERROR_OUT_OF_HOST_MEMORY;
357 }
358 }
359
vn_async_vkCreateDescriptorPool(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)360 static inline void vn_async_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
361 {
362 struct vn_instance_submit_command submit;
363 vn_submit_vkCreateDescriptorPool(vn_instance, 0, device, pCreateInfo, pAllocator, pDescriptorPool, &submit);
364 }
365
vn_call_vkDestroyDescriptorPool(struct vn_instance * vn_instance,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)366 static inline void vn_call_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
367 {
368 VN_TRACE_FUNC();
369
370 struct vn_instance_submit_command submit;
371 vn_submit_vkDestroyDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, descriptorPool, pAllocator, &submit);
372 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
373 if (dec) {
374 vn_decode_vkDestroyDescriptorPool_reply(dec, device, descriptorPool, pAllocator);
375 vn_instance_free_command_reply(vn_instance, &submit);
376 }
377 }
378
vn_async_vkDestroyDescriptorPool(struct vn_instance * vn_instance,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)379 static inline void vn_async_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
380 {
381 struct vn_instance_submit_command submit;
382 vn_submit_vkDestroyDescriptorPool(vn_instance, 0, device, descriptorPool, pAllocator, &submit);
383 }
384
vn_call_vkResetDescriptorPool(struct vn_instance * vn_instance,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)385 static inline VkResult vn_call_vkResetDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
386 {
387 VN_TRACE_FUNC();
388
389 struct vn_instance_submit_command submit;
390 vn_submit_vkResetDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, descriptorPool, flags, &submit);
391 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
392 if (dec) {
393 const VkResult ret = vn_decode_vkResetDescriptorPool_reply(dec, device, descriptorPool, flags);
394 vn_instance_free_command_reply(vn_instance, &submit);
395 return ret;
396 } else {
397 return VK_ERROR_OUT_OF_HOST_MEMORY;
398 }
399 }
400
vn_async_vkResetDescriptorPool(struct vn_instance * vn_instance,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)401 static inline void vn_async_vkResetDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)
402 {
403 struct vn_instance_submit_command submit;
404 vn_submit_vkResetDescriptorPool(vn_instance, 0, device, descriptorPool, flags, &submit);
405 }
406
407 #endif /* VN_PROTOCOL_DRIVER_DESCRIPTOR_POOL_H */
408