• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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         pnext = pnext->pNext;
390     }
391 
392     switch ((int32_t)pnext->sType) {
393     case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
394         vn_decode_VkDescriptorSetLayoutSupport_pnext(dec, pnext->pNext);
395         vn_decode_VkDescriptorSetVariableDescriptorCountLayoutSupport_self(dec, (VkDescriptorSetVariableDescriptorCountLayoutSupport *)pnext);
396         break;
397     default:
398         assert(false);
399         break;
400     }
401 }
402 
403 static inline void
vn_decode_VkDescriptorSetLayoutSupport_self(struct vn_cs_decoder * dec,VkDescriptorSetLayoutSupport * val)404 vn_decode_VkDescriptorSetLayoutSupport_self(struct vn_cs_decoder *dec, VkDescriptorSetLayoutSupport *val)
405 {
406     /* skip val->{sType,pNext} */
407     vn_decode_VkBool32(dec, &val->supported);
408 }
409 
410 static inline void
vn_decode_VkDescriptorSetLayoutSupport(struct vn_cs_decoder * dec,VkDescriptorSetLayoutSupport * val)411 vn_decode_VkDescriptorSetLayoutSupport(struct vn_cs_decoder *dec, VkDescriptorSetLayoutSupport *val)
412 {
413     VkStructureType stype;
414     vn_decode_VkStructureType(dec, &stype);
415     assert(stype == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT);
416 
417     assert(val->sType == stype);
418     vn_decode_VkDescriptorSetLayoutSupport_pnext(dec, val->pNext);
419     vn_decode_VkDescriptorSetLayoutSupport_self(dec, val);
420 }
421 
422 static inline size_t
vn_sizeof_VkDescriptorSetLayoutSupport_pnext_partial(const void * val)423 vn_sizeof_VkDescriptorSetLayoutSupport_pnext_partial(const void *val)
424 {
425     const VkBaseInStructure *pnext = val;
426     size_t size = 0;
427 
428     while (pnext) {
429         switch ((int32_t)pnext->sType) {
430         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
431             size += vn_sizeof_simple_pointer(pnext);
432             size += vn_sizeof_VkStructureType(&pnext->sType);
433             size += vn_sizeof_VkDescriptorSetLayoutSupport_pnext_partial(pnext->pNext);
434             size += vn_sizeof_VkDescriptorSetVariableDescriptorCountLayoutSupport_self_partial((const VkDescriptorSetVariableDescriptorCountLayoutSupport *)pnext);
435             return size;
436         default:
437             /* ignore unknown/unsupported struct */
438             break;
439         }
440         pnext = pnext->pNext;
441     }
442 
443     return vn_sizeof_simple_pointer(NULL);
444 }
445 
446 static inline size_t
vn_sizeof_VkDescriptorSetLayoutSupport_self_partial(const VkDescriptorSetLayoutSupport * val)447 vn_sizeof_VkDescriptorSetLayoutSupport_self_partial(const VkDescriptorSetLayoutSupport *val)
448 {
449     size_t size = 0;
450     /* skip val->{sType,pNext} */
451     /* skip val->supported */
452     return size;
453 }
454 
455 static inline size_t
vn_sizeof_VkDescriptorSetLayoutSupport_partial(const VkDescriptorSetLayoutSupport * val)456 vn_sizeof_VkDescriptorSetLayoutSupport_partial(const VkDescriptorSetLayoutSupport *val)
457 {
458     size_t size = 0;
459 
460     size += vn_sizeof_VkStructureType(&val->sType);
461     size += vn_sizeof_VkDescriptorSetLayoutSupport_pnext_partial(val->pNext);
462     size += vn_sizeof_VkDescriptorSetLayoutSupport_self_partial(val);
463 
464     return size;
465 }
466 
467 static inline void
vn_encode_VkDescriptorSetLayoutSupport_pnext_partial(struct vn_cs_encoder * enc,const void * val)468 vn_encode_VkDescriptorSetLayoutSupport_pnext_partial(struct vn_cs_encoder *enc, const void *val)
469 {
470     const VkBaseInStructure *pnext = val;
471 
472     while (pnext) {
473         switch ((int32_t)pnext->sType) {
474         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
475             vn_encode_simple_pointer(enc, pnext);
476             vn_encode_VkStructureType(enc, &pnext->sType);
477             vn_encode_VkDescriptorSetLayoutSupport_pnext_partial(enc, pnext->pNext);
478             vn_encode_VkDescriptorSetVariableDescriptorCountLayoutSupport_self_partial(enc, (const VkDescriptorSetVariableDescriptorCountLayoutSupport *)pnext);
479             return;
480         default:
481             /* ignore unknown/unsupported struct */
482             break;
483         }
484         pnext = pnext->pNext;
485     }
486 
487     vn_encode_simple_pointer(enc, NULL);
488 }
489 
490 static inline void
vn_encode_VkDescriptorSetLayoutSupport_self_partial(struct vn_cs_encoder * enc,const VkDescriptorSetLayoutSupport * val)491 vn_encode_VkDescriptorSetLayoutSupport_self_partial(struct vn_cs_encoder *enc, const VkDescriptorSetLayoutSupport *val)
492 {
493     /* skip val->{sType,pNext} */
494     /* skip val->supported */
495 }
496 
497 static inline void
vn_encode_VkDescriptorSetLayoutSupport_partial(struct vn_cs_encoder * enc,const VkDescriptorSetLayoutSupport * val)498 vn_encode_VkDescriptorSetLayoutSupport_partial(struct vn_cs_encoder *enc, const VkDescriptorSetLayoutSupport *val)
499 {
500     assert(val->sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT);
501     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT });
502     vn_encode_VkDescriptorSetLayoutSupport_pnext_partial(enc, val->pNext);
503     vn_encode_VkDescriptorSetLayoutSupport_self_partial(enc, val);
504 }
505 
vn_sizeof_vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)506 static inline size_t vn_sizeof_vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
507 {
508     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT;
509     const VkFlags cmd_flags = 0;
510     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
511 
512     cmd_size += vn_sizeof_VkDevice(&device);
513     cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
514     if (pCreateInfo)
515         cmd_size += vn_sizeof_VkDescriptorSetLayoutCreateInfo(pCreateInfo);
516     cmd_size += vn_sizeof_simple_pointer(pAllocator);
517     if (pAllocator)
518         assert(false);
519     cmd_size += vn_sizeof_simple_pointer(pSetLayout);
520     if (pSetLayout)
521         cmd_size += vn_sizeof_VkDescriptorSetLayout(pSetLayout);
522 
523     return cmd_size;
524 }
525 
vn_encode_vkCreateDescriptorSetLayout(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)526 static inline void vn_encode_vkCreateDescriptorSetLayout(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
527 {
528     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT;
529 
530     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
531     vn_encode_VkFlags(enc, &cmd_flags);
532 
533     vn_encode_VkDevice(enc, &device);
534     if (vn_encode_simple_pointer(enc, pCreateInfo))
535         vn_encode_VkDescriptorSetLayoutCreateInfo(enc, pCreateInfo);
536     if (vn_encode_simple_pointer(enc, pAllocator))
537         assert(false);
538     if (vn_encode_simple_pointer(enc, pSetLayout))
539         vn_encode_VkDescriptorSetLayout(enc, pSetLayout);
540 }
541 
vn_sizeof_vkCreateDescriptorSetLayout_reply(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)542 static inline size_t vn_sizeof_vkCreateDescriptorSetLayout_reply(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
543 {
544     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT;
545     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
546 
547     VkResult ret;
548     cmd_size += vn_sizeof_VkResult(&ret);
549     /* skip device */
550     /* skip pCreateInfo */
551     /* skip pAllocator */
552     cmd_size += vn_sizeof_simple_pointer(pSetLayout);
553     if (pSetLayout)
554         cmd_size += vn_sizeof_VkDescriptorSetLayout(pSetLayout);
555 
556     return cmd_size;
557 }
558 
vn_decode_vkCreateDescriptorSetLayout_reply(struct vn_cs_decoder * dec,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)559 static inline VkResult vn_decode_vkCreateDescriptorSetLayout_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
560 {
561     VkCommandTypeEXT command_type;
562     vn_decode_VkCommandTypeEXT(dec, &command_type);
563     assert(command_type == VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT);
564 
565     VkResult ret;
566     vn_decode_VkResult(dec, &ret);
567     /* skip device */
568     /* skip pCreateInfo */
569     /* skip pAllocator */
570     if (vn_decode_simple_pointer(dec)) {
571         vn_decode_VkDescriptorSetLayout(dec, pSetLayout);
572     } else {
573         pSetLayout = NULL;
574     }
575 
576     return ret;
577 }
578 
vn_sizeof_vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)579 static inline size_t vn_sizeof_vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
580 {
581     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT;
582     const VkFlags cmd_flags = 0;
583     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
584 
585     cmd_size += vn_sizeof_VkDevice(&device);
586     cmd_size += vn_sizeof_VkDescriptorSetLayout(&descriptorSetLayout);
587     cmd_size += vn_sizeof_simple_pointer(pAllocator);
588     if (pAllocator)
589         assert(false);
590 
591     return cmd_size;
592 }
593 
vn_encode_vkDestroyDescriptorSetLayout(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)594 static inline void vn_encode_vkDestroyDescriptorSetLayout(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
595 {
596     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT;
597 
598     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
599     vn_encode_VkFlags(enc, &cmd_flags);
600 
601     vn_encode_VkDevice(enc, &device);
602     vn_encode_VkDescriptorSetLayout(enc, &descriptorSetLayout);
603     if (vn_encode_simple_pointer(enc, pAllocator))
604         assert(false);
605 }
606 
vn_sizeof_vkDestroyDescriptorSetLayout_reply(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)607 static inline size_t vn_sizeof_vkDestroyDescriptorSetLayout_reply(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
608 {
609     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT;
610     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
611 
612     /* skip device */
613     /* skip descriptorSetLayout */
614     /* skip pAllocator */
615 
616     return cmd_size;
617 }
618 
vn_decode_vkDestroyDescriptorSetLayout_reply(struct vn_cs_decoder * dec,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)619 static inline void vn_decode_vkDestroyDescriptorSetLayout_reply(struct vn_cs_decoder *dec, VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
620 {
621     VkCommandTypeEXT command_type;
622     vn_decode_VkCommandTypeEXT(dec, &command_type);
623     assert(command_type == VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT);
624 
625     /* skip device */
626     /* skip descriptorSetLayout */
627     /* skip pAllocator */
628 }
629 
vn_sizeof_vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)630 static inline size_t vn_sizeof_vkGetDescriptorSetLayoutSupport(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
631 {
632     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT;
633     const VkFlags cmd_flags = 0;
634     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
635 
636     cmd_size += vn_sizeof_VkDevice(&device);
637     cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
638     if (pCreateInfo)
639         cmd_size += vn_sizeof_VkDescriptorSetLayoutCreateInfo(pCreateInfo);
640     cmd_size += vn_sizeof_simple_pointer(pSupport);
641     if (pSupport)
642         cmd_size += vn_sizeof_VkDescriptorSetLayoutSupport_partial(pSupport);
643 
644     return cmd_size;
645 }
646 
vn_encode_vkGetDescriptorSetLayoutSupport(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)647 static inline void vn_encode_vkGetDescriptorSetLayoutSupport(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
648 {
649     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT;
650 
651     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
652     vn_encode_VkFlags(enc, &cmd_flags);
653 
654     vn_encode_VkDevice(enc, &device);
655     if (vn_encode_simple_pointer(enc, pCreateInfo))
656         vn_encode_VkDescriptorSetLayoutCreateInfo(enc, pCreateInfo);
657     if (vn_encode_simple_pointer(enc, pSupport))
658         vn_encode_VkDescriptorSetLayoutSupport_partial(enc, pSupport);
659 }
660 
vn_sizeof_vkGetDescriptorSetLayoutSupport_reply(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)661 static inline size_t vn_sizeof_vkGetDescriptorSetLayoutSupport_reply(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
662 {
663     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT;
664     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
665 
666     /* skip device */
667     /* skip pCreateInfo */
668     cmd_size += vn_sizeof_simple_pointer(pSupport);
669     if (pSupport)
670         cmd_size += vn_sizeof_VkDescriptorSetLayoutSupport(pSupport);
671 
672     return cmd_size;
673 }
674 
vn_decode_vkGetDescriptorSetLayoutSupport_reply(struct vn_cs_decoder * dec,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)675 static inline void vn_decode_vkGetDescriptorSetLayoutSupport_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
676 {
677     VkCommandTypeEXT command_type;
678     vn_decode_VkCommandTypeEXT(dec, &command_type);
679     assert(command_type == VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT);
680 
681     /* skip device */
682     /* skip pCreateInfo */
683     if (vn_decode_simple_pointer(dec)) {
684         vn_decode_VkDescriptorSetLayoutSupport(dec, pSupport);
685     } else {
686         pSupport = NULL;
687     }
688 }
689 
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)690 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)
691 {
692     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
693     void *cmd_data = local_cmd_data;
694     size_t cmd_size = vn_sizeof_vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
695     if (cmd_size > sizeof(local_cmd_data)) {
696         cmd_data = malloc(cmd_size);
697         if (!cmd_data)
698             cmd_size = 0;
699     }
700     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateDescriptorSetLayout_reply(device, pCreateInfo, pAllocator, pSetLayout) : 0;
701 
702     struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
703     if (cmd_size) {
704         vn_encode_vkCreateDescriptorSetLayout(enc, cmd_flags, device, pCreateInfo, pAllocator, pSetLayout);
705         vn_instance_submit_command(vn_instance, submit);
706         if (cmd_data != local_cmd_data)
707             free(cmd_data);
708     }
709 }
710 
vn_submit_vkDestroyDescriptorSetLayout(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator,struct vn_instance_submit_command * submit)711 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)
712 {
713     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
714     void *cmd_data = local_cmd_data;
715     size_t cmd_size = vn_sizeof_vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
716     if (cmd_size > sizeof(local_cmd_data)) {
717         cmd_data = malloc(cmd_size);
718         if (!cmd_data)
719             cmd_size = 0;
720     }
721     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyDescriptorSetLayout_reply(device, descriptorSetLayout, pAllocator) : 0;
722 
723     struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
724     if (cmd_size) {
725         vn_encode_vkDestroyDescriptorSetLayout(enc, cmd_flags, device, descriptorSetLayout, pAllocator);
726         vn_instance_submit_command(vn_instance, submit);
727         if (cmd_data != local_cmd_data)
728             free(cmd_data);
729     }
730 }
731 
vn_submit_vkGetDescriptorSetLayoutSupport(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport,struct vn_instance_submit_command * submit)732 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)
733 {
734     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
735     void *cmd_data = local_cmd_data;
736     size_t cmd_size = vn_sizeof_vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
737     if (cmd_size > sizeof(local_cmd_data)) {
738         cmd_data = malloc(cmd_size);
739         if (!cmd_data)
740             cmd_size = 0;
741     }
742     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetDescriptorSetLayoutSupport_reply(device, pCreateInfo, pSupport) : 0;
743 
744     struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
745     if (cmd_size) {
746         vn_encode_vkGetDescriptorSetLayoutSupport(enc, cmd_flags, device, pCreateInfo, pSupport);
747         vn_instance_submit_command(vn_instance, submit);
748         if (cmd_data != local_cmd_data)
749             free(cmd_data);
750     }
751 }
752 
vn_call_vkCreateDescriptorSetLayout(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)753 static inline VkResult vn_call_vkCreateDescriptorSetLayout(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
754 {
755     VN_TRACE_FUNC();
756 
757     struct vn_instance_submit_command submit;
758     vn_submit_vkCreateDescriptorSetLayout(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pSetLayout, &submit);
759     struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
760     if (dec) {
761         const VkResult ret = vn_decode_vkCreateDescriptorSetLayout_reply(dec, device, pCreateInfo, pAllocator, pSetLayout);
762         vn_instance_free_command_reply(vn_instance, &submit);
763         return ret;
764     } else {
765         return VK_ERROR_OUT_OF_HOST_MEMORY;
766     }
767 }
768 
vn_async_vkCreateDescriptorSetLayout(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)769 static inline void vn_async_vkCreateDescriptorSetLayout(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
770 {
771     struct vn_instance_submit_command submit;
772     vn_submit_vkCreateDescriptorSetLayout(vn_instance, 0, device, pCreateInfo, pAllocator, pSetLayout, &submit);
773 }
774 
vn_call_vkDestroyDescriptorSetLayout(struct vn_instance * vn_instance,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)775 static inline void vn_call_vkDestroyDescriptorSetLayout(struct vn_instance *vn_instance, VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
776 {
777     VN_TRACE_FUNC();
778 
779     struct vn_instance_submit_command submit;
780     vn_submit_vkDestroyDescriptorSetLayout(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, descriptorSetLayout, pAllocator, &submit);
781     struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
782     if (dec) {
783         vn_decode_vkDestroyDescriptorSetLayout_reply(dec, device, descriptorSetLayout, pAllocator);
784         vn_instance_free_command_reply(vn_instance, &submit);
785     }
786 }
787 
vn_async_vkDestroyDescriptorSetLayout(struct vn_instance * vn_instance,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)788 static inline void vn_async_vkDestroyDescriptorSetLayout(struct vn_instance *vn_instance, VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
789 {
790     struct vn_instance_submit_command submit;
791     vn_submit_vkDestroyDescriptorSetLayout(vn_instance, 0, device, descriptorSetLayout, pAllocator, &submit);
792 }
793 
vn_call_vkGetDescriptorSetLayoutSupport(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)794 static inline void vn_call_vkGetDescriptorSetLayoutSupport(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
795 {
796     VN_TRACE_FUNC();
797 
798     struct vn_instance_submit_command submit;
799     vn_submit_vkGetDescriptorSetLayoutSupport(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pSupport, &submit);
800     struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
801     if (dec) {
802         vn_decode_vkGetDescriptorSetLayoutSupport_reply(dec, device, pCreateInfo, pSupport);
803         vn_instance_free_command_reply(vn_instance, &submit);
804     }
805 }
806 
vn_async_vkGetDescriptorSetLayoutSupport(struct vn_instance * vn_instance,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)807 static inline void vn_async_vkGetDescriptorSetLayoutSupport(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
808 {
809     struct vn_instance_submit_command submit;
810     vn_submit_vkGetDescriptorSetLayoutSupport(vn_instance, 0, device, pCreateInfo, pSupport, &submit);
811 }
812 
813 #endif /* VN_PROTOCOL_DRIVER_DESCRIPTOR_SET_LAYOUT_H */
814