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