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