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