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