• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* This file is generated by venus-protocol.  See vn_protocol_renderer.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_RENDERER_COMMAND_BUFFER_H
9 #define VN_PROTOCOL_RENDERER_COMMAND_BUFFER_H
10 
11 #include "vn_protocol_renderer_structs.h"
12 
13 #pragma GCC diagnostic push
14 #pragma GCC diagnostic ignored "-Wpointer-arith"
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
16 
17 /* struct VkCommandBufferAllocateInfo chain */
18 
19 static inline void *
vn_decode_VkCommandBufferAllocateInfo_pnext_temp(struct vn_cs_decoder * dec)20 vn_decode_VkCommandBufferAllocateInfo_pnext_temp(struct vn_cs_decoder *dec)
21 {
22     /* no known/supported struct */
23     if (vn_decode_simple_pointer(dec))
24         vn_cs_decoder_set_fatal(dec);
25     return NULL;
26 }
27 
28 static inline void
vn_decode_VkCommandBufferAllocateInfo_self_temp(struct vn_cs_decoder * dec,VkCommandBufferAllocateInfo * val)29 vn_decode_VkCommandBufferAllocateInfo_self_temp(struct vn_cs_decoder *dec, VkCommandBufferAllocateInfo *val)
30 {
31     /* skip val->{sType,pNext} */
32     vn_decode_VkCommandPool_lookup(dec, &val->commandPool);
33     vn_decode_VkCommandBufferLevel(dec, &val->level);
34     vn_decode_uint32_t(dec, &val->commandBufferCount);
35 }
36 
37 static inline void
vn_decode_VkCommandBufferAllocateInfo_temp(struct vn_cs_decoder * dec,VkCommandBufferAllocateInfo * val)38 vn_decode_VkCommandBufferAllocateInfo_temp(struct vn_cs_decoder *dec, VkCommandBufferAllocateInfo *val)
39 {
40     VkStructureType stype;
41     vn_decode_VkStructureType(dec, &stype);
42     if (stype != VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
43         vn_cs_decoder_set_fatal(dec);
44 
45     val->sType = stype;
46     val->pNext = vn_decode_VkCommandBufferAllocateInfo_pnext_temp(dec);
47     vn_decode_VkCommandBufferAllocateInfo_self_temp(dec, val);
48 }
49 
50 static inline void
vn_replace_VkCommandBufferAllocateInfo_handle_self(VkCommandBufferAllocateInfo * val)51 vn_replace_VkCommandBufferAllocateInfo_handle_self(VkCommandBufferAllocateInfo *val)
52 {
53     /* skip val->sType */
54     /* skip val->pNext */
55     vn_replace_VkCommandPool_handle(&val->commandPool);
56     /* skip val->level */
57     /* skip val->commandBufferCount */
58 }
59 
60 static inline void
vn_replace_VkCommandBufferAllocateInfo_handle(VkCommandBufferAllocateInfo * val)61 vn_replace_VkCommandBufferAllocateInfo_handle(VkCommandBufferAllocateInfo *val)
62 {
63     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
64 
65     do {
66         switch ((int32_t)pnext->sType) {
67         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:
68             vn_replace_VkCommandBufferAllocateInfo_handle_self((VkCommandBufferAllocateInfo *)pnext);
69             break;
70         default:
71             /* ignore unknown/unsupported struct */
72             break;
73         }
74         pnext = pnext->pNext;
75     } while (pnext);
76 }
77 
78 /* struct VkCommandBufferInheritanceInfo chain */
79 
80 static inline void
vn_encode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_encoder * enc,const void * val)81 vn_encode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_encoder *enc, const void *val)
82 {
83     /* no known/supported struct */
84     vn_encode_simple_pointer(enc, NULL);
85 }
86 
87 static inline void
vn_encode_VkCommandBufferInheritanceInfo_self(struct vn_cs_encoder * enc,const VkCommandBufferInheritanceInfo * val)88 vn_encode_VkCommandBufferInheritanceInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceInfo *val)
89 {
90     /* skip val->{sType,pNext} */
91     vn_encode_VkRenderPass(enc, &val->renderPass);
92     vn_encode_uint32_t(enc, &val->subpass);
93     vn_encode_VkFramebuffer(enc, &val->framebuffer);
94     vn_encode_VkBool32(enc, &val->occlusionQueryEnable);
95     vn_encode_VkFlags(enc, &val->queryFlags);
96     vn_encode_VkFlags(enc, &val->pipelineStatistics);
97 }
98 
99 static inline void
vn_encode_VkCommandBufferInheritanceInfo(struct vn_cs_encoder * enc,const VkCommandBufferInheritanceInfo * val)100 vn_encode_VkCommandBufferInheritanceInfo(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceInfo *val)
101 {
102     assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO);
103     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO });
104     vn_encode_VkCommandBufferInheritanceInfo_pnext(enc, val->pNext);
105     vn_encode_VkCommandBufferInheritanceInfo_self(enc, val);
106 }
107 
108 static inline void *
vn_decode_VkCommandBufferInheritanceInfo_pnext_temp(struct vn_cs_decoder * dec)109 vn_decode_VkCommandBufferInheritanceInfo_pnext_temp(struct vn_cs_decoder *dec)
110 {
111     /* no known/supported struct */
112     if (vn_decode_simple_pointer(dec))
113         vn_cs_decoder_set_fatal(dec);
114     return NULL;
115 }
116 
117 static inline void
vn_decode_VkCommandBufferInheritanceInfo_self_temp(struct vn_cs_decoder * dec,VkCommandBufferInheritanceInfo * val)118 vn_decode_VkCommandBufferInheritanceInfo_self_temp(struct vn_cs_decoder *dec, VkCommandBufferInheritanceInfo *val)
119 {
120     /* skip val->{sType,pNext} */
121     vn_decode_VkRenderPass_lookup(dec, &val->renderPass);
122     vn_decode_uint32_t(dec, &val->subpass);
123     vn_decode_VkFramebuffer_lookup(dec, &val->framebuffer);
124     vn_decode_VkBool32(dec, &val->occlusionQueryEnable);
125     vn_decode_VkFlags(dec, &val->queryFlags);
126     vn_decode_VkFlags(dec, &val->pipelineStatistics);
127 }
128 
129 static inline void
vn_decode_VkCommandBufferInheritanceInfo_temp(struct vn_cs_decoder * dec,VkCommandBufferInheritanceInfo * val)130 vn_decode_VkCommandBufferInheritanceInfo_temp(struct vn_cs_decoder *dec, VkCommandBufferInheritanceInfo *val)
131 {
132     VkStructureType stype;
133     vn_decode_VkStructureType(dec, &stype);
134     if (stype != VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO)
135         vn_cs_decoder_set_fatal(dec);
136 
137     val->sType = stype;
138     val->pNext = vn_decode_VkCommandBufferInheritanceInfo_pnext_temp(dec);
139     vn_decode_VkCommandBufferInheritanceInfo_self_temp(dec, val);
140 }
141 
142 static inline void
vn_replace_VkCommandBufferInheritanceInfo_handle_self(VkCommandBufferInheritanceInfo * val)143 vn_replace_VkCommandBufferInheritanceInfo_handle_self(VkCommandBufferInheritanceInfo *val)
144 {
145     /* skip val->sType */
146     /* skip val->pNext */
147     vn_replace_VkRenderPass_handle(&val->renderPass);
148     /* skip val->subpass */
149     vn_replace_VkFramebuffer_handle(&val->framebuffer);
150     /* skip val->occlusionQueryEnable */
151     /* skip val->queryFlags */
152     /* skip val->pipelineStatistics */
153 }
154 
155 static inline void
vn_replace_VkCommandBufferInheritanceInfo_handle(VkCommandBufferInheritanceInfo * val)156 vn_replace_VkCommandBufferInheritanceInfo_handle(VkCommandBufferInheritanceInfo *val)
157 {
158     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
159 
160     do {
161         switch ((int32_t)pnext->sType) {
162         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:
163             vn_replace_VkCommandBufferInheritanceInfo_handle_self((VkCommandBufferInheritanceInfo *)pnext);
164             break;
165         default:
166             /* ignore unknown/unsupported struct */
167             break;
168         }
169         pnext = pnext->pNext;
170     } while (pnext);
171 }
172 
173 /* struct VkDeviceGroupCommandBufferBeginInfo chain */
174 
175 static inline void
vn_encode_VkDeviceGroupCommandBufferBeginInfo_pnext(struct vn_cs_encoder * enc,const void * val)176 vn_encode_VkDeviceGroupCommandBufferBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val)
177 {
178     /* no known/supported struct */
179     vn_encode_simple_pointer(enc, NULL);
180 }
181 
182 static inline void
vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(struct vn_cs_encoder * enc,const VkDeviceGroupCommandBufferBeginInfo * val)183 vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(struct vn_cs_encoder *enc, const VkDeviceGroupCommandBufferBeginInfo *val)
184 {
185     /* skip val->{sType,pNext} */
186     vn_encode_uint32_t(enc, &val->deviceMask);
187 }
188 
189 static inline void
vn_encode_VkDeviceGroupCommandBufferBeginInfo(struct vn_cs_encoder * enc,const VkDeviceGroupCommandBufferBeginInfo * val)190 vn_encode_VkDeviceGroupCommandBufferBeginInfo(struct vn_cs_encoder *enc, const VkDeviceGroupCommandBufferBeginInfo *val)
191 {
192     assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO);
193     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO });
194     vn_encode_VkDeviceGroupCommandBufferBeginInfo_pnext(enc, val->pNext);
195     vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(enc, val);
196 }
197 
198 static inline void *
vn_decode_VkDeviceGroupCommandBufferBeginInfo_pnext_temp(struct vn_cs_decoder * dec)199 vn_decode_VkDeviceGroupCommandBufferBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
200 {
201     /* no known/supported struct */
202     if (vn_decode_simple_pointer(dec))
203         vn_cs_decoder_set_fatal(dec);
204     return NULL;
205 }
206 
207 static inline void
vn_decode_VkDeviceGroupCommandBufferBeginInfo_self_temp(struct vn_cs_decoder * dec,VkDeviceGroupCommandBufferBeginInfo * val)208 vn_decode_VkDeviceGroupCommandBufferBeginInfo_self_temp(struct vn_cs_decoder *dec, VkDeviceGroupCommandBufferBeginInfo *val)
209 {
210     /* skip val->{sType,pNext} */
211     vn_decode_uint32_t(dec, &val->deviceMask);
212 }
213 
214 static inline void
vn_decode_VkDeviceGroupCommandBufferBeginInfo_temp(struct vn_cs_decoder * dec,VkDeviceGroupCommandBufferBeginInfo * val)215 vn_decode_VkDeviceGroupCommandBufferBeginInfo_temp(struct vn_cs_decoder *dec, VkDeviceGroupCommandBufferBeginInfo *val)
216 {
217     VkStructureType stype;
218     vn_decode_VkStructureType(dec, &stype);
219     if (stype != VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO)
220         vn_cs_decoder_set_fatal(dec);
221 
222     val->sType = stype;
223     val->pNext = vn_decode_VkDeviceGroupCommandBufferBeginInfo_pnext_temp(dec);
224     vn_decode_VkDeviceGroupCommandBufferBeginInfo_self_temp(dec, val);
225 }
226 
227 static inline void
vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle_self(VkDeviceGroupCommandBufferBeginInfo * val)228 vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle_self(VkDeviceGroupCommandBufferBeginInfo *val)
229 {
230     /* skip val->sType */
231     /* skip val->pNext */
232     /* skip val->deviceMask */
233 }
234 
235 static inline void
vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle(VkDeviceGroupCommandBufferBeginInfo * val)236 vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle(VkDeviceGroupCommandBufferBeginInfo *val)
237 {
238     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
239 
240     do {
241         switch ((int32_t)pnext->sType) {
242         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
243             vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle_self((VkDeviceGroupCommandBufferBeginInfo *)pnext);
244             break;
245         default:
246             /* ignore unknown/unsupported struct */
247             break;
248         }
249         pnext = pnext->pNext;
250     } while (pnext);
251 }
252 
253 /* struct VkCommandBufferBeginInfo chain */
254 
255 static inline void
vn_encode_VkCommandBufferBeginInfo_pnext(struct vn_cs_encoder * enc,const void * val)256 vn_encode_VkCommandBufferBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val)
257 {
258     const VkBaseInStructure *pnext = val;
259 
260     while (pnext) {
261         switch ((int32_t)pnext->sType) {
262         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
263             vn_encode_simple_pointer(enc, pnext);
264             vn_encode_VkStructureType(enc, &pnext->sType);
265             vn_encode_VkCommandBufferBeginInfo_pnext(enc, pnext->pNext);
266             vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(enc, (const VkDeviceGroupCommandBufferBeginInfo *)pnext);
267             return;
268         default:
269             /* ignore unknown/unsupported struct */
270             break;
271         }
272         pnext = pnext->pNext;
273     }
274 
275     vn_encode_simple_pointer(enc, NULL);
276 }
277 
278 static inline void
vn_encode_VkCommandBufferBeginInfo_self(struct vn_cs_encoder * enc,const VkCommandBufferBeginInfo * val)279 vn_encode_VkCommandBufferBeginInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferBeginInfo *val)
280 {
281     /* skip val->{sType,pNext} */
282     vn_encode_VkFlags(enc, &val->flags);
283     if (vn_encode_simple_pointer(enc, val->pInheritanceInfo))
284         vn_encode_VkCommandBufferInheritanceInfo(enc, val->pInheritanceInfo);
285 }
286 
287 static inline void
vn_encode_VkCommandBufferBeginInfo(struct vn_cs_encoder * enc,const VkCommandBufferBeginInfo * val)288 vn_encode_VkCommandBufferBeginInfo(struct vn_cs_encoder *enc, const VkCommandBufferBeginInfo *val)
289 {
290     assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO);
291     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO });
292     vn_encode_VkCommandBufferBeginInfo_pnext(enc, val->pNext);
293     vn_encode_VkCommandBufferBeginInfo_self(enc, val);
294 }
295 
296 static inline void *
vn_decode_VkCommandBufferBeginInfo_pnext_temp(struct vn_cs_decoder * dec)297 vn_decode_VkCommandBufferBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
298 {
299     VkBaseOutStructure *pnext;
300     VkStructureType stype;
301 
302     if (!vn_decode_simple_pointer(dec))
303         return NULL;
304 
305     vn_decode_VkStructureType(dec, &stype);
306     switch ((int32_t)stype) {
307     case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
308         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDeviceGroupCommandBufferBeginInfo));
309         if (pnext) {
310             pnext->sType = stype;
311             pnext->pNext = vn_decode_VkCommandBufferBeginInfo_pnext_temp(dec);
312             vn_decode_VkDeviceGroupCommandBufferBeginInfo_self_temp(dec, (VkDeviceGroupCommandBufferBeginInfo *)pnext);
313         }
314         break;
315     default:
316         /* unexpected struct */
317         pnext = NULL;
318         vn_cs_decoder_set_fatal(dec);
319         break;
320     }
321 
322     return pnext;
323 }
324 
325 static inline void
vn_decode_VkCommandBufferBeginInfo_self_temp(struct vn_cs_decoder * dec,VkCommandBufferBeginInfo * val)326 vn_decode_VkCommandBufferBeginInfo_self_temp(struct vn_cs_decoder *dec, VkCommandBufferBeginInfo *val)
327 {
328     /* skip val->{sType,pNext} */
329     vn_decode_VkFlags(dec, &val->flags);
330     if (vn_decode_simple_pointer(dec)) {
331         val->pInheritanceInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pInheritanceInfo));
332         if (!val->pInheritanceInfo) return;
333         vn_decode_VkCommandBufferInheritanceInfo_temp(dec, (VkCommandBufferInheritanceInfo *)val->pInheritanceInfo);
334     } else {
335         val->pInheritanceInfo = NULL;
336     }
337 }
338 
339 static inline void
vn_decode_VkCommandBufferBeginInfo_temp(struct vn_cs_decoder * dec,VkCommandBufferBeginInfo * val)340 vn_decode_VkCommandBufferBeginInfo_temp(struct vn_cs_decoder *dec, VkCommandBufferBeginInfo *val)
341 {
342     VkStructureType stype;
343     vn_decode_VkStructureType(dec, &stype);
344     if (stype != VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
345         vn_cs_decoder_set_fatal(dec);
346 
347     val->sType = stype;
348     val->pNext = vn_decode_VkCommandBufferBeginInfo_pnext_temp(dec);
349     vn_decode_VkCommandBufferBeginInfo_self_temp(dec, val);
350 }
351 
352 static inline void
vn_replace_VkCommandBufferBeginInfo_handle_self(VkCommandBufferBeginInfo * val)353 vn_replace_VkCommandBufferBeginInfo_handle_self(VkCommandBufferBeginInfo *val)
354 {
355     /* skip val->sType */
356     /* skip val->pNext */
357     /* skip val->flags */
358     if (val->pInheritanceInfo)
359         vn_replace_VkCommandBufferInheritanceInfo_handle((VkCommandBufferInheritanceInfo *)val->pInheritanceInfo);
360 }
361 
362 static inline void
vn_replace_VkCommandBufferBeginInfo_handle(VkCommandBufferBeginInfo * val)363 vn_replace_VkCommandBufferBeginInfo_handle(VkCommandBufferBeginInfo *val)
364 {
365     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
366 
367     do {
368         switch ((int32_t)pnext->sType) {
369         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:
370             vn_replace_VkCommandBufferBeginInfo_handle_self((VkCommandBufferBeginInfo *)pnext);
371             break;
372         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
373             vn_replace_VkDeviceGroupCommandBufferBeginInfo_handle_self((VkDeviceGroupCommandBufferBeginInfo *)pnext);
374             break;
375         default:
376             /* ignore unknown/unsupported struct */
377             break;
378         }
379         pnext = pnext->pNext;
380     } while (pnext);
381 }
382 
383 /* struct VkBufferCopy */
384 
385 static inline void
vn_decode_VkBufferCopy_temp(struct vn_cs_decoder * dec,VkBufferCopy * val)386 vn_decode_VkBufferCopy_temp(struct vn_cs_decoder *dec, VkBufferCopy *val)
387 {
388     vn_decode_VkDeviceSize(dec, &val->srcOffset);
389     vn_decode_VkDeviceSize(dec, &val->dstOffset);
390     vn_decode_VkDeviceSize(dec, &val->size);
391 }
392 
393 static inline void
vn_replace_VkBufferCopy_handle(VkBufferCopy * val)394 vn_replace_VkBufferCopy_handle(VkBufferCopy *val)
395 {
396     /* skip val->srcOffset */
397     /* skip val->dstOffset */
398     /* skip val->size */
399 }
400 
401 /* struct VkImageSubresourceLayers */
402 
403 static inline void
vn_decode_VkImageSubresourceLayers_temp(struct vn_cs_decoder * dec,VkImageSubresourceLayers * val)404 vn_decode_VkImageSubresourceLayers_temp(struct vn_cs_decoder *dec, VkImageSubresourceLayers *val)
405 {
406     vn_decode_VkFlags(dec, &val->aspectMask);
407     vn_decode_uint32_t(dec, &val->mipLevel);
408     vn_decode_uint32_t(dec, &val->baseArrayLayer);
409     vn_decode_uint32_t(dec, &val->layerCount);
410 }
411 
412 static inline void
vn_replace_VkImageSubresourceLayers_handle(VkImageSubresourceLayers * val)413 vn_replace_VkImageSubresourceLayers_handle(VkImageSubresourceLayers *val)
414 {
415     /* skip val->aspectMask */
416     /* skip val->mipLevel */
417     /* skip val->baseArrayLayer */
418     /* skip val->layerCount */
419 }
420 
421 /* struct VkImageCopy */
422 
423 static inline void
vn_decode_VkImageCopy_temp(struct vn_cs_decoder * dec,VkImageCopy * val)424 vn_decode_VkImageCopy_temp(struct vn_cs_decoder *dec, VkImageCopy *val)
425 {
426     vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource);
427     vn_decode_VkOffset3D_temp(dec, &val->srcOffset);
428     vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource);
429     vn_decode_VkOffset3D_temp(dec, &val->dstOffset);
430     vn_decode_VkExtent3D_temp(dec, &val->extent);
431 }
432 
433 static inline void
vn_replace_VkImageCopy_handle(VkImageCopy * val)434 vn_replace_VkImageCopy_handle(VkImageCopy *val)
435 {
436     vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource);
437     vn_replace_VkOffset3D_handle(&val->srcOffset);
438     vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource);
439     vn_replace_VkOffset3D_handle(&val->dstOffset);
440     vn_replace_VkExtent3D_handle(&val->extent);
441 }
442 
443 /* struct VkImageBlit */
444 
445 static inline void
vn_decode_VkImageBlit_temp(struct vn_cs_decoder * dec,VkImageBlit * val)446 vn_decode_VkImageBlit_temp(struct vn_cs_decoder *dec, VkImageBlit *val)
447 {
448     vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource);
449     {
450         const uint32_t iter_count = vn_decode_array_size(dec, 2);
451         for (uint32_t i = 0; i < iter_count; i++)
452             vn_decode_VkOffset3D_temp(dec, &val->srcOffsets[i]);
453     }
454     vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource);
455     {
456         const uint32_t iter_count = vn_decode_array_size(dec, 2);
457         for (uint32_t i = 0; i < iter_count; i++)
458             vn_decode_VkOffset3D_temp(dec, &val->dstOffsets[i]);
459     }
460 }
461 
462 static inline void
vn_replace_VkImageBlit_handle(VkImageBlit * val)463 vn_replace_VkImageBlit_handle(VkImageBlit *val)
464 {
465     vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource);
466     for (uint32_t i = 0; i < 2; i++)
467         vn_replace_VkOffset3D_handle(&val->srcOffsets[i]);
468     vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource);
469     for (uint32_t i = 0; i < 2; i++)
470         vn_replace_VkOffset3D_handle(&val->dstOffsets[i]);
471 }
472 
473 /* struct VkBufferImageCopy */
474 
475 static inline void
vn_decode_VkBufferImageCopy_temp(struct vn_cs_decoder * dec,VkBufferImageCopy * val)476 vn_decode_VkBufferImageCopy_temp(struct vn_cs_decoder *dec, VkBufferImageCopy *val)
477 {
478     vn_decode_VkDeviceSize(dec, &val->bufferOffset);
479     vn_decode_uint32_t(dec, &val->bufferRowLength);
480     vn_decode_uint32_t(dec, &val->bufferImageHeight);
481     vn_decode_VkImageSubresourceLayers_temp(dec, &val->imageSubresource);
482     vn_decode_VkOffset3D_temp(dec, &val->imageOffset);
483     vn_decode_VkExtent3D_temp(dec, &val->imageExtent);
484 }
485 
486 static inline void
vn_replace_VkBufferImageCopy_handle(VkBufferImageCopy * val)487 vn_replace_VkBufferImageCopy_handle(VkBufferImageCopy *val)
488 {
489     /* skip val->bufferOffset */
490     /* skip val->bufferRowLength */
491     /* skip val->bufferImageHeight */
492     vn_replace_VkImageSubresourceLayers_handle(&val->imageSubresource);
493     vn_replace_VkOffset3D_handle(&val->imageOffset);
494     vn_replace_VkExtent3D_handle(&val->imageExtent);
495 }
496 
497 /* union VkClearColorValue */
498 
499 static inline void
vn_decode_VkClearColorValue_temp(struct vn_cs_decoder * dec,VkClearColorValue * val)500 vn_decode_VkClearColorValue_temp(struct vn_cs_decoder *dec, VkClearColorValue *val)
501 {
502     uint32_t tag;
503     vn_decode_uint32_t(dec, &tag);
504     switch (tag) {
505     case 0:
506         {
507         const size_t array_size = vn_decode_array_size(dec, 4);
508         vn_decode_float_array(dec, val->float32, array_size);
509     }
510         break;
511     case 1:
512         {
513         const size_t array_size = vn_decode_array_size(dec, 4);
514         vn_decode_int32_t_array(dec, val->int32, array_size);
515     }
516         break;
517     case 2:
518         {
519         const size_t array_size = vn_decode_array_size(dec, 4);
520         vn_decode_uint32_t_array(dec, val->uint32, array_size);
521     }
522         break;
523     default:
524         vn_cs_decoder_set_fatal(dec);
525         break;
526     }
527 }
528 
529 /* struct VkClearDepthStencilValue */
530 
531 static inline void
vn_decode_VkClearDepthStencilValue_temp(struct vn_cs_decoder * dec,VkClearDepthStencilValue * val)532 vn_decode_VkClearDepthStencilValue_temp(struct vn_cs_decoder *dec, VkClearDepthStencilValue *val)
533 {
534     vn_decode_float(dec, &val->depth);
535     vn_decode_uint32_t(dec, &val->stencil);
536 }
537 
538 static inline void
vn_replace_VkClearDepthStencilValue_handle(VkClearDepthStencilValue * val)539 vn_replace_VkClearDepthStencilValue_handle(VkClearDepthStencilValue *val)
540 {
541     /* skip val->depth */
542     /* skip val->stencil */
543 }
544 
545 /* union VkClearValue */
546 
547 static inline void
vn_decode_VkClearValue_temp(struct vn_cs_decoder * dec,VkClearValue * val)548 vn_decode_VkClearValue_temp(struct vn_cs_decoder *dec, VkClearValue *val)
549 {
550     uint32_t tag;
551     vn_decode_uint32_t(dec, &tag);
552     switch (tag) {
553     case 0:
554         vn_decode_VkClearColorValue_temp(dec, &val->color);
555         break;
556     case 1:
557         vn_decode_VkClearDepthStencilValue_temp(dec, &val->depthStencil);
558         break;
559     default:
560         vn_cs_decoder_set_fatal(dec);
561         break;
562     }
563 }
564 
565 /* struct VkClearAttachment */
566 
567 static inline void
vn_decode_VkClearAttachment_temp(struct vn_cs_decoder * dec,VkClearAttachment * val)568 vn_decode_VkClearAttachment_temp(struct vn_cs_decoder *dec, VkClearAttachment *val)
569 {
570     vn_decode_VkFlags(dec, &val->aspectMask);
571     vn_decode_uint32_t(dec, &val->colorAttachment);
572     vn_decode_VkClearValue_temp(dec, &val->clearValue);
573 }
574 
575 static inline void
vn_replace_VkClearAttachment_handle(VkClearAttachment * val)576 vn_replace_VkClearAttachment_handle(VkClearAttachment *val)
577 {
578     /* skip val->aspectMask */
579     /* skip val->colorAttachment */
580     /* skip val->clearValue */
581 }
582 
583 /* struct VkClearRect */
584 
585 static inline void
vn_decode_VkClearRect_temp(struct vn_cs_decoder * dec,VkClearRect * val)586 vn_decode_VkClearRect_temp(struct vn_cs_decoder *dec, VkClearRect *val)
587 {
588     vn_decode_VkRect2D_temp(dec, &val->rect);
589     vn_decode_uint32_t(dec, &val->baseArrayLayer);
590     vn_decode_uint32_t(dec, &val->layerCount);
591 }
592 
593 static inline void
vn_replace_VkClearRect_handle(VkClearRect * val)594 vn_replace_VkClearRect_handle(VkClearRect *val)
595 {
596     vn_replace_VkRect2D_handle(&val->rect);
597     /* skip val->baseArrayLayer */
598     /* skip val->layerCount */
599 }
600 
601 /* struct VkImageResolve */
602 
603 static inline void
vn_decode_VkImageResolve_temp(struct vn_cs_decoder * dec,VkImageResolve * val)604 vn_decode_VkImageResolve_temp(struct vn_cs_decoder *dec, VkImageResolve *val)
605 {
606     vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource);
607     vn_decode_VkOffset3D_temp(dec, &val->srcOffset);
608     vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource);
609     vn_decode_VkOffset3D_temp(dec, &val->dstOffset);
610     vn_decode_VkExtent3D_temp(dec, &val->extent);
611 }
612 
613 static inline void
vn_replace_VkImageResolve_handle(VkImageResolve * val)614 vn_replace_VkImageResolve_handle(VkImageResolve *val)
615 {
616     vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource);
617     vn_replace_VkOffset3D_handle(&val->srcOffset);
618     vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource);
619     vn_replace_VkOffset3D_handle(&val->dstOffset);
620     vn_replace_VkExtent3D_handle(&val->extent);
621 }
622 
623 /* struct VkMemoryBarrier chain */
624 
625 static inline void *
vn_decode_VkMemoryBarrier_pnext_temp(struct vn_cs_decoder * dec)626 vn_decode_VkMemoryBarrier_pnext_temp(struct vn_cs_decoder *dec)
627 {
628     /* no known/supported struct */
629     if (vn_decode_simple_pointer(dec))
630         vn_cs_decoder_set_fatal(dec);
631     return NULL;
632 }
633 
634 static inline void
vn_decode_VkMemoryBarrier_self_temp(struct vn_cs_decoder * dec,VkMemoryBarrier * val)635 vn_decode_VkMemoryBarrier_self_temp(struct vn_cs_decoder *dec, VkMemoryBarrier *val)
636 {
637     /* skip val->{sType,pNext} */
638     vn_decode_VkFlags(dec, &val->srcAccessMask);
639     vn_decode_VkFlags(dec, &val->dstAccessMask);
640 }
641 
642 static inline void
vn_decode_VkMemoryBarrier_temp(struct vn_cs_decoder * dec,VkMemoryBarrier * val)643 vn_decode_VkMemoryBarrier_temp(struct vn_cs_decoder *dec, VkMemoryBarrier *val)
644 {
645     VkStructureType stype;
646     vn_decode_VkStructureType(dec, &stype);
647     if (stype != VK_STRUCTURE_TYPE_MEMORY_BARRIER)
648         vn_cs_decoder_set_fatal(dec);
649 
650     val->sType = stype;
651     val->pNext = vn_decode_VkMemoryBarrier_pnext_temp(dec);
652     vn_decode_VkMemoryBarrier_self_temp(dec, val);
653 }
654 
655 static inline void
vn_replace_VkMemoryBarrier_handle_self(VkMemoryBarrier * val)656 vn_replace_VkMemoryBarrier_handle_self(VkMemoryBarrier *val)
657 {
658     /* skip val->sType */
659     /* skip val->pNext */
660     /* skip val->srcAccessMask */
661     /* skip val->dstAccessMask */
662 }
663 
664 static inline void
vn_replace_VkMemoryBarrier_handle(VkMemoryBarrier * val)665 vn_replace_VkMemoryBarrier_handle(VkMemoryBarrier *val)
666 {
667     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
668 
669     do {
670         switch ((int32_t)pnext->sType) {
671         case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
672             vn_replace_VkMemoryBarrier_handle_self((VkMemoryBarrier *)pnext);
673             break;
674         default:
675             /* ignore unknown/unsupported struct */
676             break;
677         }
678         pnext = pnext->pNext;
679     } while (pnext);
680 }
681 
682 /* struct VkBufferMemoryBarrier chain */
683 
684 static inline void *
vn_decode_VkBufferMemoryBarrier_pnext_temp(struct vn_cs_decoder * dec)685 vn_decode_VkBufferMemoryBarrier_pnext_temp(struct vn_cs_decoder *dec)
686 {
687     /* no known/supported struct */
688     if (vn_decode_simple_pointer(dec))
689         vn_cs_decoder_set_fatal(dec);
690     return NULL;
691 }
692 
693 static inline void
vn_decode_VkBufferMemoryBarrier_self_temp(struct vn_cs_decoder * dec,VkBufferMemoryBarrier * val)694 vn_decode_VkBufferMemoryBarrier_self_temp(struct vn_cs_decoder *dec, VkBufferMemoryBarrier *val)
695 {
696     /* skip val->{sType,pNext} */
697     vn_decode_VkFlags(dec, &val->srcAccessMask);
698     vn_decode_VkFlags(dec, &val->dstAccessMask);
699     vn_decode_uint32_t(dec, &val->srcQueueFamilyIndex);
700     vn_decode_uint32_t(dec, &val->dstQueueFamilyIndex);
701     vn_decode_VkBuffer_lookup(dec, &val->buffer);
702     vn_decode_VkDeviceSize(dec, &val->offset);
703     vn_decode_VkDeviceSize(dec, &val->size);
704 }
705 
706 static inline void
vn_decode_VkBufferMemoryBarrier_temp(struct vn_cs_decoder * dec,VkBufferMemoryBarrier * val)707 vn_decode_VkBufferMemoryBarrier_temp(struct vn_cs_decoder *dec, VkBufferMemoryBarrier *val)
708 {
709     VkStructureType stype;
710     vn_decode_VkStructureType(dec, &stype);
711     if (stype != VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)
712         vn_cs_decoder_set_fatal(dec);
713 
714     val->sType = stype;
715     val->pNext = vn_decode_VkBufferMemoryBarrier_pnext_temp(dec);
716     vn_decode_VkBufferMemoryBarrier_self_temp(dec, val);
717 }
718 
719 static inline void
vn_replace_VkBufferMemoryBarrier_handle_self(VkBufferMemoryBarrier * val)720 vn_replace_VkBufferMemoryBarrier_handle_self(VkBufferMemoryBarrier *val)
721 {
722     /* skip val->sType */
723     /* skip val->pNext */
724     /* skip val->srcAccessMask */
725     /* skip val->dstAccessMask */
726     /* skip val->srcQueueFamilyIndex */
727     /* skip val->dstQueueFamilyIndex */
728     vn_replace_VkBuffer_handle(&val->buffer);
729     /* skip val->offset */
730     /* skip val->size */
731 }
732 
733 static inline void
vn_replace_VkBufferMemoryBarrier_handle(VkBufferMemoryBarrier * val)734 vn_replace_VkBufferMemoryBarrier_handle(VkBufferMemoryBarrier *val)
735 {
736     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
737 
738     do {
739         switch ((int32_t)pnext->sType) {
740         case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
741             vn_replace_VkBufferMemoryBarrier_handle_self((VkBufferMemoryBarrier *)pnext);
742             break;
743         default:
744             /* ignore unknown/unsupported struct */
745             break;
746         }
747         pnext = pnext->pNext;
748     } while (pnext);
749 }
750 
751 /* struct VkImageMemoryBarrier chain */
752 
753 static inline void *
vn_decode_VkImageMemoryBarrier_pnext_temp(struct vn_cs_decoder * dec)754 vn_decode_VkImageMemoryBarrier_pnext_temp(struct vn_cs_decoder *dec)
755 {
756     /* no known/supported struct */
757     if (vn_decode_simple_pointer(dec))
758         vn_cs_decoder_set_fatal(dec);
759     return NULL;
760 }
761 
762 static inline void
vn_decode_VkImageMemoryBarrier_self_temp(struct vn_cs_decoder * dec,VkImageMemoryBarrier * val)763 vn_decode_VkImageMemoryBarrier_self_temp(struct vn_cs_decoder *dec, VkImageMemoryBarrier *val)
764 {
765     /* skip val->{sType,pNext} */
766     vn_decode_VkFlags(dec, &val->srcAccessMask);
767     vn_decode_VkFlags(dec, &val->dstAccessMask);
768     vn_decode_VkImageLayout(dec, &val->oldLayout);
769     vn_decode_VkImageLayout(dec, &val->newLayout);
770     vn_decode_uint32_t(dec, &val->srcQueueFamilyIndex);
771     vn_decode_uint32_t(dec, &val->dstQueueFamilyIndex);
772     vn_decode_VkImage_lookup(dec, &val->image);
773     vn_decode_VkImageSubresourceRange_temp(dec, &val->subresourceRange);
774 }
775 
776 static inline void
vn_decode_VkImageMemoryBarrier_temp(struct vn_cs_decoder * dec,VkImageMemoryBarrier * val)777 vn_decode_VkImageMemoryBarrier_temp(struct vn_cs_decoder *dec, VkImageMemoryBarrier *val)
778 {
779     VkStructureType stype;
780     vn_decode_VkStructureType(dec, &stype);
781     if (stype != VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)
782         vn_cs_decoder_set_fatal(dec);
783 
784     val->sType = stype;
785     val->pNext = vn_decode_VkImageMemoryBarrier_pnext_temp(dec);
786     vn_decode_VkImageMemoryBarrier_self_temp(dec, val);
787 }
788 
789 static inline void
vn_replace_VkImageMemoryBarrier_handle_self(VkImageMemoryBarrier * val)790 vn_replace_VkImageMemoryBarrier_handle_self(VkImageMemoryBarrier *val)
791 {
792     /* skip val->sType */
793     /* skip val->pNext */
794     /* skip val->srcAccessMask */
795     /* skip val->dstAccessMask */
796     /* skip val->oldLayout */
797     /* skip val->newLayout */
798     /* skip val->srcQueueFamilyIndex */
799     /* skip val->dstQueueFamilyIndex */
800     vn_replace_VkImage_handle(&val->image);
801     vn_replace_VkImageSubresourceRange_handle(&val->subresourceRange);
802 }
803 
804 static inline void
vn_replace_VkImageMemoryBarrier_handle(VkImageMemoryBarrier * val)805 vn_replace_VkImageMemoryBarrier_handle(VkImageMemoryBarrier *val)
806 {
807     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
808 
809     do {
810         switch ((int32_t)pnext->sType) {
811         case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
812             vn_replace_VkImageMemoryBarrier_handle_self((VkImageMemoryBarrier *)pnext);
813             break;
814         default:
815             /* ignore unknown/unsupported struct */
816             break;
817         }
818         pnext = pnext->pNext;
819     } while (pnext);
820 }
821 
822 /* struct VkDeviceGroupRenderPassBeginInfo chain */
823 
824 static inline void *
vn_decode_VkDeviceGroupRenderPassBeginInfo_pnext_temp(struct vn_cs_decoder * dec)825 vn_decode_VkDeviceGroupRenderPassBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
826 {
827     /* no known/supported struct */
828     if (vn_decode_simple_pointer(dec))
829         vn_cs_decoder_set_fatal(dec);
830     return NULL;
831 }
832 
833 static inline void
vn_decode_VkDeviceGroupRenderPassBeginInfo_self_temp(struct vn_cs_decoder * dec,VkDeviceGroupRenderPassBeginInfo * val)834 vn_decode_VkDeviceGroupRenderPassBeginInfo_self_temp(struct vn_cs_decoder *dec, VkDeviceGroupRenderPassBeginInfo *val)
835 {
836     /* skip val->{sType,pNext} */
837     vn_decode_uint32_t(dec, &val->deviceMask);
838     vn_decode_uint32_t(dec, &val->deviceRenderAreaCount);
839     if (vn_peek_array_size(dec)) {
840         const uint32_t iter_count = vn_decode_array_size(dec, val->deviceRenderAreaCount);
841         val->pDeviceRenderAreas = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDeviceRenderAreas) * iter_count);
842         if (!val->pDeviceRenderAreas) return;
843         for (uint32_t i = 0; i < iter_count; i++)
844             vn_decode_VkRect2D_temp(dec, &((VkRect2D *)val->pDeviceRenderAreas)[i]);
845     } else {
846         vn_decode_array_size(dec, val->deviceRenderAreaCount);
847         val->pDeviceRenderAreas = NULL;
848     }
849 }
850 
851 static inline void
vn_decode_VkDeviceGroupRenderPassBeginInfo_temp(struct vn_cs_decoder * dec,VkDeviceGroupRenderPassBeginInfo * val)852 vn_decode_VkDeviceGroupRenderPassBeginInfo_temp(struct vn_cs_decoder *dec, VkDeviceGroupRenderPassBeginInfo *val)
853 {
854     VkStructureType stype;
855     vn_decode_VkStructureType(dec, &stype);
856     if (stype != VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO)
857         vn_cs_decoder_set_fatal(dec);
858 
859     val->sType = stype;
860     val->pNext = vn_decode_VkDeviceGroupRenderPassBeginInfo_pnext_temp(dec);
861     vn_decode_VkDeviceGroupRenderPassBeginInfo_self_temp(dec, val);
862 }
863 
864 static inline void
vn_replace_VkDeviceGroupRenderPassBeginInfo_handle_self(VkDeviceGroupRenderPassBeginInfo * val)865 vn_replace_VkDeviceGroupRenderPassBeginInfo_handle_self(VkDeviceGroupRenderPassBeginInfo *val)
866 {
867     /* skip val->sType */
868     /* skip val->pNext */
869     /* skip val->deviceMask */
870     /* skip val->deviceRenderAreaCount */
871     if (val->pDeviceRenderAreas) {
872        for (uint32_t i = 0; i < val->deviceRenderAreaCount; i++)
873             vn_replace_VkRect2D_handle(&((VkRect2D *)val->pDeviceRenderAreas)[i]);
874     }
875 }
876 
877 static inline void
vn_replace_VkDeviceGroupRenderPassBeginInfo_handle(VkDeviceGroupRenderPassBeginInfo * val)878 vn_replace_VkDeviceGroupRenderPassBeginInfo_handle(VkDeviceGroupRenderPassBeginInfo *val)
879 {
880     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
881 
882     do {
883         switch ((int32_t)pnext->sType) {
884         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
885             vn_replace_VkDeviceGroupRenderPassBeginInfo_handle_self((VkDeviceGroupRenderPassBeginInfo *)pnext);
886             break;
887         default:
888             /* ignore unknown/unsupported struct */
889             break;
890         }
891         pnext = pnext->pNext;
892     } while (pnext);
893 }
894 
895 /* struct VkRenderPassAttachmentBeginInfo chain */
896 
897 static inline void *
vn_decode_VkRenderPassAttachmentBeginInfo_pnext_temp(struct vn_cs_decoder * dec)898 vn_decode_VkRenderPassAttachmentBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
899 {
900     /* no known/supported struct */
901     if (vn_decode_simple_pointer(dec))
902         vn_cs_decoder_set_fatal(dec);
903     return NULL;
904 }
905 
906 static inline void
vn_decode_VkRenderPassAttachmentBeginInfo_self_temp(struct vn_cs_decoder * dec,VkRenderPassAttachmentBeginInfo * val)907 vn_decode_VkRenderPassAttachmentBeginInfo_self_temp(struct vn_cs_decoder *dec, VkRenderPassAttachmentBeginInfo *val)
908 {
909     /* skip val->{sType,pNext} */
910     vn_decode_uint32_t(dec, &val->attachmentCount);
911     if (vn_peek_array_size(dec)) {
912         const uint32_t iter_count = vn_decode_array_size(dec, val->attachmentCount);
913         val->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pAttachments) * iter_count);
914         if (!val->pAttachments) return;
915         for (uint32_t i = 0; i < iter_count; i++)
916             vn_decode_VkImageView_lookup(dec, &((VkImageView *)val->pAttachments)[i]);
917     } else {
918         vn_decode_array_size(dec, val->attachmentCount);
919         val->pAttachments = NULL;
920     }
921 }
922 
923 static inline void
vn_decode_VkRenderPassAttachmentBeginInfo_temp(struct vn_cs_decoder * dec,VkRenderPassAttachmentBeginInfo * val)924 vn_decode_VkRenderPassAttachmentBeginInfo_temp(struct vn_cs_decoder *dec, VkRenderPassAttachmentBeginInfo *val)
925 {
926     VkStructureType stype;
927     vn_decode_VkStructureType(dec, &stype);
928     if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO)
929         vn_cs_decoder_set_fatal(dec);
930 
931     val->sType = stype;
932     val->pNext = vn_decode_VkRenderPassAttachmentBeginInfo_pnext_temp(dec);
933     vn_decode_VkRenderPassAttachmentBeginInfo_self_temp(dec, val);
934 }
935 
936 static inline void
vn_replace_VkRenderPassAttachmentBeginInfo_handle_self(VkRenderPassAttachmentBeginInfo * val)937 vn_replace_VkRenderPassAttachmentBeginInfo_handle_self(VkRenderPassAttachmentBeginInfo *val)
938 {
939     /* skip val->sType */
940     /* skip val->pNext */
941     /* skip val->attachmentCount */
942     if (val->pAttachments) {
943        for (uint32_t i = 0; i < val->attachmentCount; i++)
944             vn_replace_VkImageView_handle(&((VkImageView *)val->pAttachments)[i]);
945     }
946 }
947 
948 static inline void
vn_replace_VkRenderPassAttachmentBeginInfo_handle(VkRenderPassAttachmentBeginInfo * val)949 vn_replace_VkRenderPassAttachmentBeginInfo_handle(VkRenderPassAttachmentBeginInfo *val)
950 {
951     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
952 
953     do {
954         switch ((int32_t)pnext->sType) {
955         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
956             vn_replace_VkRenderPassAttachmentBeginInfo_handle_self((VkRenderPassAttachmentBeginInfo *)pnext);
957             break;
958         default:
959             /* ignore unknown/unsupported struct */
960             break;
961         }
962         pnext = pnext->pNext;
963     } while (pnext);
964 }
965 
966 /* struct VkRenderPassBeginInfo chain */
967 
968 static inline void *
vn_decode_VkRenderPassBeginInfo_pnext_temp(struct vn_cs_decoder * dec)969 vn_decode_VkRenderPassBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
970 {
971     VkBaseOutStructure *pnext;
972     VkStructureType stype;
973 
974     if (!vn_decode_simple_pointer(dec))
975         return NULL;
976 
977     vn_decode_VkStructureType(dec, &stype);
978     switch ((int32_t)stype) {
979     case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
980         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDeviceGroupRenderPassBeginInfo));
981         if (pnext) {
982             pnext->sType = stype;
983             pnext->pNext = vn_decode_VkRenderPassBeginInfo_pnext_temp(dec);
984             vn_decode_VkDeviceGroupRenderPassBeginInfo_self_temp(dec, (VkDeviceGroupRenderPassBeginInfo *)pnext);
985         }
986         break;
987     case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
988         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkRenderPassAttachmentBeginInfo));
989         if (pnext) {
990             pnext->sType = stype;
991             pnext->pNext = vn_decode_VkRenderPassBeginInfo_pnext_temp(dec);
992             vn_decode_VkRenderPassAttachmentBeginInfo_self_temp(dec, (VkRenderPassAttachmentBeginInfo *)pnext);
993         }
994         break;
995     default:
996         /* unexpected struct */
997         pnext = NULL;
998         vn_cs_decoder_set_fatal(dec);
999         break;
1000     }
1001 
1002     return pnext;
1003 }
1004 
1005 static inline void
vn_decode_VkRenderPassBeginInfo_self_temp(struct vn_cs_decoder * dec,VkRenderPassBeginInfo * val)1006 vn_decode_VkRenderPassBeginInfo_self_temp(struct vn_cs_decoder *dec, VkRenderPassBeginInfo *val)
1007 {
1008     /* skip val->{sType,pNext} */
1009     vn_decode_VkRenderPass_lookup(dec, &val->renderPass);
1010     vn_decode_VkFramebuffer_lookup(dec, &val->framebuffer);
1011     vn_decode_VkRect2D_temp(dec, &val->renderArea);
1012     vn_decode_uint32_t(dec, &val->clearValueCount);
1013     if (vn_peek_array_size(dec)) {
1014         const uint32_t iter_count = vn_decode_array_size(dec, val->clearValueCount);
1015         val->pClearValues = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pClearValues) * iter_count);
1016         if (!val->pClearValues) return;
1017         for (uint32_t i = 0; i < iter_count; i++)
1018             vn_decode_VkClearValue_temp(dec, &((VkClearValue *)val->pClearValues)[i]);
1019     } else {
1020         vn_decode_array_size_unchecked(dec);
1021         val->pClearValues = NULL;
1022     }
1023 }
1024 
1025 static inline void
vn_decode_VkRenderPassBeginInfo_temp(struct vn_cs_decoder * dec,VkRenderPassBeginInfo * val)1026 vn_decode_VkRenderPassBeginInfo_temp(struct vn_cs_decoder *dec, VkRenderPassBeginInfo *val)
1027 {
1028     VkStructureType stype;
1029     vn_decode_VkStructureType(dec, &stype);
1030     if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)
1031         vn_cs_decoder_set_fatal(dec);
1032 
1033     val->sType = stype;
1034     val->pNext = vn_decode_VkRenderPassBeginInfo_pnext_temp(dec);
1035     vn_decode_VkRenderPassBeginInfo_self_temp(dec, val);
1036 }
1037 
1038 static inline void
vn_replace_VkRenderPassBeginInfo_handle_self(VkRenderPassBeginInfo * val)1039 vn_replace_VkRenderPassBeginInfo_handle_self(VkRenderPassBeginInfo *val)
1040 {
1041     /* skip val->sType */
1042     /* skip val->pNext */
1043     vn_replace_VkRenderPass_handle(&val->renderPass);
1044     vn_replace_VkFramebuffer_handle(&val->framebuffer);
1045     vn_replace_VkRect2D_handle(&val->renderArea);
1046     /* skip val->clearValueCount */
1047     /* skip val->pClearValues */
1048 }
1049 
1050 static inline void
vn_replace_VkRenderPassBeginInfo_handle(VkRenderPassBeginInfo * val)1051 vn_replace_VkRenderPassBeginInfo_handle(VkRenderPassBeginInfo *val)
1052 {
1053     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1054 
1055     do {
1056         switch ((int32_t)pnext->sType) {
1057         case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:
1058             vn_replace_VkRenderPassBeginInfo_handle_self((VkRenderPassBeginInfo *)pnext);
1059             break;
1060         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
1061             vn_replace_VkDeviceGroupRenderPassBeginInfo_handle_self((VkDeviceGroupRenderPassBeginInfo *)pnext);
1062             break;
1063         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
1064             vn_replace_VkRenderPassAttachmentBeginInfo_handle_self((VkRenderPassAttachmentBeginInfo *)pnext);
1065             break;
1066         default:
1067             /* ignore unknown/unsupported struct */
1068             break;
1069         }
1070         pnext = pnext->pNext;
1071     } while (pnext);
1072 }
1073 
1074 /* struct VkSubpassBeginInfo chain */
1075 
1076 static inline void *
vn_decode_VkSubpassBeginInfo_pnext_temp(struct vn_cs_decoder * dec)1077 vn_decode_VkSubpassBeginInfo_pnext_temp(struct vn_cs_decoder *dec)
1078 {
1079     /* no known/supported struct */
1080     if (vn_decode_simple_pointer(dec))
1081         vn_cs_decoder_set_fatal(dec);
1082     return NULL;
1083 }
1084 
1085 static inline void
vn_decode_VkSubpassBeginInfo_self_temp(struct vn_cs_decoder * dec,VkSubpassBeginInfo * val)1086 vn_decode_VkSubpassBeginInfo_self_temp(struct vn_cs_decoder *dec, VkSubpassBeginInfo *val)
1087 {
1088     /* skip val->{sType,pNext} */
1089     vn_decode_VkSubpassContents(dec, &val->contents);
1090 }
1091 
1092 static inline void
vn_decode_VkSubpassBeginInfo_temp(struct vn_cs_decoder * dec,VkSubpassBeginInfo * val)1093 vn_decode_VkSubpassBeginInfo_temp(struct vn_cs_decoder *dec, VkSubpassBeginInfo *val)
1094 {
1095     VkStructureType stype;
1096     vn_decode_VkStructureType(dec, &stype);
1097     if (stype != VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO)
1098         vn_cs_decoder_set_fatal(dec);
1099 
1100     val->sType = stype;
1101     val->pNext = vn_decode_VkSubpassBeginInfo_pnext_temp(dec);
1102     vn_decode_VkSubpassBeginInfo_self_temp(dec, val);
1103 }
1104 
1105 static inline void
vn_replace_VkSubpassBeginInfo_handle_self(VkSubpassBeginInfo * val)1106 vn_replace_VkSubpassBeginInfo_handle_self(VkSubpassBeginInfo *val)
1107 {
1108     /* skip val->sType */
1109     /* skip val->pNext */
1110     /* skip val->contents */
1111 }
1112 
1113 static inline void
vn_replace_VkSubpassBeginInfo_handle(VkSubpassBeginInfo * val)1114 vn_replace_VkSubpassBeginInfo_handle(VkSubpassBeginInfo *val)
1115 {
1116     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1117 
1118     do {
1119         switch ((int32_t)pnext->sType) {
1120         case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:
1121             vn_replace_VkSubpassBeginInfo_handle_self((VkSubpassBeginInfo *)pnext);
1122             break;
1123         default:
1124             /* ignore unknown/unsupported struct */
1125             break;
1126         }
1127         pnext = pnext->pNext;
1128     } while (pnext);
1129 }
1130 
1131 /* struct VkSubpassEndInfo chain */
1132 
1133 static inline void *
vn_decode_VkSubpassEndInfo_pnext_temp(struct vn_cs_decoder * dec)1134 vn_decode_VkSubpassEndInfo_pnext_temp(struct vn_cs_decoder *dec)
1135 {
1136     /* no known/supported struct */
1137     if (vn_decode_simple_pointer(dec))
1138         vn_cs_decoder_set_fatal(dec);
1139     return NULL;
1140 }
1141 
1142 static inline void
vn_decode_VkSubpassEndInfo_self_temp(struct vn_cs_decoder * dec,VkSubpassEndInfo * val)1143 vn_decode_VkSubpassEndInfo_self_temp(struct vn_cs_decoder *dec, VkSubpassEndInfo *val)
1144 {
1145     /* skip val->{sType,pNext} */
1146 }
1147 
1148 static inline void
vn_decode_VkSubpassEndInfo_temp(struct vn_cs_decoder * dec,VkSubpassEndInfo * val)1149 vn_decode_VkSubpassEndInfo_temp(struct vn_cs_decoder *dec, VkSubpassEndInfo *val)
1150 {
1151     VkStructureType stype;
1152     vn_decode_VkStructureType(dec, &stype);
1153     if (stype != VK_STRUCTURE_TYPE_SUBPASS_END_INFO)
1154         vn_cs_decoder_set_fatal(dec);
1155 
1156     val->sType = stype;
1157     val->pNext = vn_decode_VkSubpassEndInfo_pnext_temp(dec);
1158     vn_decode_VkSubpassEndInfo_self_temp(dec, val);
1159 }
1160 
1161 static inline void
vn_replace_VkSubpassEndInfo_handle_self(VkSubpassEndInfo * val)1162 vn_replace_VkSubpassEndInfo_handle_self(VkSubpassEndInfo *val)
1163 {
1164     /* skip val->sType */
1165     /* skip val->pNext */
1166 }
1167 
1168 static inline void
vn_replace_VkSubpassEndInfo_handle(VkSubpassEndInfo * val)1169 vn_replace_VkSubpassEndInfo_handle(VkSubpassEndInfo *val)
1170 {
1171     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1172 
1173     do {
1174         switch ((int32_t)pnext->sType) {
1175         case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:
1176             vn_replace_VkSubpassEndInfo_handle_self((VkSubpassEndInfo *)pnext);
1177             break;
1178         default:
1179             /* ignore unknown/unsupported struct */
1180             break;
1181         }
1182         pnext = pnext->pNext;
1183     } while (pnext);
1184 }
1185 
vn_decode_vkAllocateCommandBuffers_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkAllocateCommandBuffers * args)1186 static inline void vn_decode_vkAllocateCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkAllocateCommandBuffers *args)
1187 {
1188     vn_decode_VkDevice_lookup(dec, &args->device);
1189     if (vn_decode_simple_pointer(dec)) {
1190         args->pAllocateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAllocateInfo));
1191         if (!args->pAllocateInfo) return;
1192         vn_decode_VkCommandBufferAllocateInfo_temp(dec, (VkCommandBufferAllocateInfo *)args->pAllocateInfo);
1193     } else {
1194         args->pAllocateInfo = NULL;
1195         vn_cs_decoder_set_fatal(dec);
1196     }
1197     if (vn_peek_array_size(dec)) {
1198         const uint32_t iter_count = vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0));
1199         args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count);
1200         if (!args->pCommandBuffers) return;
1201         for (uint32_t i = 0; i < iter_count; i++)
1202             vn_decode_VkCommandBuffer_temp(dec, &args->pCommandBuffers[i]);
1203     } else {
1204         vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0));
1205         args->pCommandBuffers = NULL;
1206     }
1207 }
1208 
vn_replace_vkAllocateCommandBuffers_args_handle(struct vn_command_vkAllocateCommandBuffers * args)1209 static inline void vn_replace_vkAllocateCommandBuffers_args_handle(struct vn_command_vkAllocateCommandBuffers *args)
1210 {
1211     vn_replace_VkDevice_handle(&args->device);
1212     if (args->pAllocateInfo)
1213         vn_replace_VkCommandBufferAllocateInfo_handle((VkCommandBufferAllocateInfo *)args->pAllocateInfo);
1214     /* skip args->pCommandBuffers */
1215 }
1216 
vn_encode_vkAllocateCommandBuffers_reply(struct vn_cs_encoder * enc,const struct vn_command_vkAllocateCommandBuffers * args)1217 static inline void vn_encode_vkAllocateCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkAllocateCommandBuffers *args)
1218 {
1219     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT});
1220 
1221     vn_encode_VkResult(enc, &args->ret);
1222     /* skip args->device */
1223     /* skip args->pAllocateInfo */
1224     if (args->pCommandBuffers) {
1225         vn_encode_array_size(enc, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0));
1226         for (uint32_t i = 0; i < (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0); i++)
1227             vn_encode_VkCommandBuffer(enc, &args->pCommandBuffers[i]);
1228     } else {
1229         vn_encode_array_size(enc, 0);
1230     }
1231 }
1232 
vn_decode_vkFreeCommandBuffers_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkFreeCommandBuffers * args)1233 static inline void vn_decode_vkFreeCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkFreeCommandBuffers *args)
1234 {
1235     vn_decode_VkDevice_lookup(dec, &args->device);
1236     vn_decode_VkCommandPool_lookup(dec, &args->commandPool);
1237     vn_decode_uint32_t(dec, &args->commandBufferCount);
1238     if (vn_peek_array_size(dec)) {
1239         const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount);
1240         args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count);
1241         if (!args->pCommandBuffers) return;
1242         for (uint32_t i = 0; i < iter_count; i++)
1243             vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]);
1244     } else {
1245         vn_decode_array_size_unchecked(dec);
1246         args->pCommandBuffers = NULL;
1247     }
1248 }
1249 
vn_replace_vkFreeCommandBuffers_args_handle(struct vn_command_vkFreeCommandBuffers * args)1250 static inline void vn_replace_vkFreeCommandBuffers_args_handle(struct vn_command_vkFreeCommandBuffers *args)
1251 {
1252     vn_replace_VkDevice_handle(&args->device);
1253     vn_replace_VkCommandPool_handle(&args->commandPool);
1254     /* skip args->commandBufferCount */
1255     if (args->pCommandBuffers) {
1256        for (uint32_t i = 0; i < args->commandBufferCount; i++)
1257             vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]);
1258     }
1259 }
1260 
vn_encode_vkFreeCommandBuffers_reply(struct vn_cs_encoder * enc,const struct vn_command_vkFreeCommandBuffers * args)1261 static inline void vn_encode_vkFreeCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkFreeCommandBuffers *args)
1262 {
1263     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT});
1264 
1265     /* skip args->device */
1266     /* skip args->commandPool */
1267     /* skip args->commandBufferCount */
1268     /* skip args->pCommandBuffers */
1269 }
1270 
vn_decode_vkBeginCommandBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkBeginCommandBuffer * args)1271 static inline void vn_decode_vkBeginCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBeginCommandBuffer *args)
1272 {
1273     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1274     if (vn_decode_simple_pointer(dec)) {
1275         args->pBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBeginInfo));
1276         if (!args->pBeginInfo) return;
1277         vn_decode_VkCommandBufferBeginInfo_temp(dec, (VkCommandBufferBeginInfo *)args->pBeginInfo);
1278     } else {
1279         args->pBeginInfo = NULL;
1280         vn_cs_decoder_set_fatal(dec);
1281     }
1282 }
1283 
vn_replace_vkBeginCommandBuffer_args_handle(struct vn_command_vkBeginCommandBuffer * args)1284 static inline void vn_replace_vkBeginCommandBuffer_args_handle(struct vn_command_vkBeginCommandBuffer *args)
1285 {
1286     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1287     if (args->pBeginInfo)
1288         vn_replace_VkCommandBufferBeginInfo_handle((VkCommandBufferBeginInfo *)args->pBeginInfo);
1289 }
1290 
vn_encode_vkBeginCommandBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkBeginCommandBuffer * args)1291 static inline void vn_encode_vkBeginCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBeginCommandBuffer *args)
1292 {
1293     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT});
1294 
1295     vn_encode_VkResult(enc, &args->ret);
1296     /* skip args->commandBuffer */
1297     /* skip args->pBeginInfo */
1298 }
1299 
vn_decode_vkEndCommandBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEndCommandBuffer * args)1300 static inline void vn_decode_vkEndCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEndCommandBuffer *args)
1301 {
1302     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1303 }
1304 
vn_replace_vkEndCommandBuffer_args_handle(struct vn_command_vkEndCommandBuffer * args)1305 static inline void vn_replace_vkEndCommandBuffer_args_handle(struct vn_command_vkEndCommandBuffer *args)
1306 {
1307     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1308 }
1309 
vn_encode_vkEndCommandBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEndCommandBuffer * args)1310 static inline void vn_encode_vkEndCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEndCommandBuffer *args)
1311 {
1312     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEndCommandBuffer_EXT});
1313 
1314     vn_encode_VkResult(enc, &args->ret);
1315     /* skip args->commandBuffer */
1316 }
1317 
vn_decode_vkResetCommandBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkResetCommandBuffer * args)1318 static inline void vn_decode_vkResetCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkResetCommandBuffer *args)
1319 {
1320     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1321     vn_decode_VkFlags(dec, &args->flags);
1322 }
1323 
vn_replace_vkResetCommandBuffer_args_handle(struct vn_command_vkResetCommandBuffer * args)1324 static inline void vn_replace_vkResetCommandBuffer_args_handle(struct vn_command_vkResetCommandBuffer *args)
1325 {
1326     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1327     /* skip args->flags */
1328 }
1329 
vn_encode_vkResetCommandBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkResetCommandBuffer * args)1330 static inline void vn_encode_vkResetCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkResetCommandBuffer *args)
1331 {
1332     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkResetCommandBuffer_EXT});
1333 
1334     vn_encode_VkResult(enc, &args->ret);
1335     /* skip args->commandBuffer */
1336     /* skip args->flags */
1337 }
1338 
vn_decode_vkCmdBindPipeline_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBindPipeline * args)1339 static inline void vn_decode_vkCmdBindPipeline_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindPipeline *args)
1340 {
1341     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1342     vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint);
1343     vn_decode_VkPipeline_lookup(dec, &args->pipeline);
1344 }
1345 
vn_replace_vkCmdBindPipeline_args_handle(struct vn_command_vkCmdBindPipeline * args)1346 static inline void vn_replace_vkCmdBindPipeline_args_handle(struct vn_command_vkCmdBindPipeline *args)
1347 {
1348     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1349     /* skip args->pipelineBindPoint */
1350     vn_replace_VkPipeline_handle(&args->pipeline);
1351 }
1352 
vn_encode_vkCmdBindPipeline_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBindPipeline * args)1353 static inline void vn_encode_vkCmdBindPipeline_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindPipeline *args)
1354 {
1355     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindPipeline_EXT});
1356 
1357     /* skip args->commandBuffer */
1358     /* skip args->pipelineBindPoint */
1359     /* skip args->pipeline */
1360 }
1361 
vn_decode_vkCmdSetViewport_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetViewport * args)1362 static inline void vn_decode_vkCmdSetViewport_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetViewport *args)
1363 {
1364     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1365     vn_decode_uint32_t(dec, &args->firstViewport);
1366     vn_decode_uint32_t(dec, &args->viewportCount);
1367     if (vn_peek_array_size(dec)) {
1368         const uint32_t iter_count = vn_decode_array_size(dec, args->viewportCount);
1369         args->pViewports = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pViewports) * iter_count);
1370         if (!args->pViewports) return;
1371         for (uint32_t i = 0; i < iter_count; i++)
1372             vn_decode_VkViewport_temp(dec, &((VkViewport *)args->pViewports)[i]);
1373     } else {
1374         vn_decode_array_size(dec, args->viewportCount);
1375         args->pViewports = NULL;
1376     }
1377 }
1378 
vn_replace_vkCmdSetViewport_args_handle(struct vn_command_vkCmdSetViewport * args)1379 static inline void vn_replace_vkCmdSetViewport_args_handle(struct vn_command_vkCmdSetViewport *args)
1380 {
1381     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1382     /* skip args->firstViewport */
1383     /* skip args->viewportCount */
1384     if (args->pViewports) {
1385        for (uint32_t i = 0; i < args->viewportCount; i++)
1386             vn_replace_VkViewport_handle(&((VkViewport *)args->pViewports)[i]);
1387     }
1388 }
1389 
vn_encode_vkCmdSetViewport_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetViewport * args)1390 static inline void vn_encode_vkCmdSetViewport_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetViewport *args)
1391 {
1392     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetViewport_EXT});
1393 
1394     /* skip args->commandBuffer */
1395     /* skip args->firstViewport */
1396     /* skip args->viewportCount */
1397     /* skip args->pViewports */
1398 }
1399 
vn_decode_vkCmdSetScissor_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetScissor * args)1400 static inline void vn_decode_vkCmdSetScissor_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetScissor *args)
1401 {
1402     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1403     vn_decode_uint32_t(dec, &args->firstScissor);
1404     vn_decode_uint32_t(dec, &args->scissorCount);
1405     if (vn_peek_array_size(dec)) {
1406         const uint32_t iter_count = vn_decode_array_size(dec, args->scissorCount);
1407         args->pScissors = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pScissors) * iter_count);
1408         if (!args->pScissors) return;
1409         for (uint32_t i = 0; i < iter_count; i++)
1410             vn_decode_VkRect2D_temp(dec, &((VkRect2D *)args->pScissors)[i]);
1411     } else {
1412         vn_decode_array_size(dec, args->scissorCount);
1413         args->pScissors = NULL;
1414     }
1415 }
1416 
vn_replace_vkCmdSetScissor_args_handle(struct vn_command_vkCmdSetScissor * args)1417 static inline void vn_replace_vkCmdSetScissor_args_handle(struct vn_command_vkCmdSetScissor *args)
1418 {
1419     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1420     /* skip args->firstScissor */
1421     /* skip args->scissorCount */
1422     if (args->pScissors) {
1423        for (uint32_t i = 0; i < args->scissorCount; i++)
1424             vn_replace_VkRect2D_handle(&((VkRect2D *)args->pScissors)[i]);
1425     }
1426 }
1427 
vn_encode_vkCmdSetScissor_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetScissor * args)1428 static inline void vn_encode_vkCmdSetScissor_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetScissor *args)
1429 {
1430     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetScissor_EXT});
1431 
1432     /* skip args->commandBuffer */
1433     /* skip args->firstScissor */
1434     /* skip args->scissorCount */
1435     /* skip args->pScissors */
1436 }
1437 
vn_decode_vkCmdSetLineWidth_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetLineWidth * args)1438 static inline void vn_decode_vkCmdSetLineWidth_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetLineWidth *args)
1439 {
1440     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1441     vn_decode_float(dec, &args->lineWidth);
1442 }
1443 
vn_replace_vkCmdSetLineWidth_args_handle(struct vn_command_vkCmdSetLineWidth * args)1444 static inline void vn_replace_vkCmdSetLineWidth_args_handle(struct vn_command_vkCmdSetLineWidth *args)
1445 {
1446     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1447     /* skip args->lineWidth */
1448 }
1449 
vn_encode_vkCmdSetLineWidth_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetLineWidth * args)1450 static inline void vn_encode_vkCmdSetLineWidth_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetLineWidth *args)
1451 {
1452     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT});
1453 
1454     /* skip args->commandBuffer */
1455     /* skip args->lineWidth */
1456 }
1457 
vn_decode_vkCmdSetDepthBias_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetDepthBias * args)1458 static inline void vn_decode_vkCmdSetDepthBias_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBias *args)
1459 {
1460     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1461     vn_decode_float(dec, &args->depthBiasConstantFactor);
1462     vn_decode_float(dec, &args->depthBiasClamp);
1463     vn_decode_float(dec, &args->depthBiasSlopeFactor);
1464 }
1465 
vn_replace_vkCmdSetDepthBias_args_handle(struct vn_command_vkCmdSetDepthBias * args)1466 static inline void vn_replace_vkCmdSetDepthBias_args_handle(struct vn_command_vkCmdSetDepthBias *args)
1467 {
1468     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1469     /* skip args->depthBiasConstantFactor */
1470     /* skip args->depthBiasClamp */
1471     /* skip args->depthBiasSlopeFactor */
1472 }
1473 
vn_encode_vkCmdSetDepthBias_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetDepthBias * args)1474 static inline void vn_encode_vkCmdSetDepthBias_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBias *args)
1475 {
1476     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT});
1477 
1478     /* skip args->commandBuffer */
1479     /* skip args->depthBiasConstantFactor */
1480     /* skip args->depthBiasClamp */
1481     /* skip args->depthBiasSlopeFactor */
1482 }
1483 
vn_decode_vkCmdSetBlendConstants_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetBlendConstants * args)1484 static inline void vn_decode_vkCmdSetBlendConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetBlendConstants *args)
1485 {
1486     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1487     {
1488         const size_t array_size = vn_decode_array_size(dec, 4);
1489         vn_decode_float_array(dec, (float *)args->blendConstants, array_size);
1490     }
1491 }
1492 
vn_replace_vkCmdSetBlendConstants_args_handle(struct vn_command_vkCmdSetBlendConstants * args)1493 static inline void vn_replace_vkCmdSetBlendConstants_args_handle(struct vn_command_vkCmdSetBlendConstants *args)
1494 {
1495     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1496     /* skip args->blendConstants */
1497 }
1498 
vn_encode_vkCmdSetBlendConstants_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetBlendConstants * args)1499 static inline void vn_encode_vkCmdSetBlendConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetBlendConstants *args)
1500 {
1501     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT});
1502 
1503     /* skip args->commandBuffer */
1504     /* skip args->blendConstants */
1505 }
1506 
vn_decode_vkCmdSetDepthBounds_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetDepthBounds * args)1507 static inline void vn_decode_vkCmdSetDepthBounds_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBounds *args)
1508 {
1509     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1510     vn_decode_float(dec, &args->minDepthBounds);
1511     vn_decode_float(dec, &args->maxDepthBounds);
1512 }
1513 
vn_replace_vkCmdSetDepthBounds_args_handle(struct vn_command_vkCmdSetDepthBounds * args)1514 static inline void vn_replace_vkCmdSetDepthBounds_args_handle(struct vn_command_vkCmdSetDepthBounds *args)
1515 {
1516     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1517     /* skip args->minDepthBounds */
1518     /* skip args->maxDepthBounds */
1519 }
1520 
vn_encode_vkCmdSetDepthBounds_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetDepthBounds * args)1521 static inline void vn_encode_vkCmdSetDepthBounds_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBounds *args)
1522 {
1523     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT});
1524 
1525     /* skip args->commandBuffer */
1526     /* skip args->minDepthBounds */
1527     /* skip args->maxDepthBounds */
1528 }
1529 
vn_decode_vkCmdSetStencilCompareMask_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetStencilCompareMask * args)1530 static inline void vn_decode_vkCmdSetStencilCompareMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilCompareMask *args)
1531 {
1532     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1533     vn_decode_VkFlags(dec, &args->faceMask);
1534     vn_decode_uint32_t(dec, &args->compareMask);
1535 }
1536 
vn_replace_vkCmdSetStencilCompareMask_args_handle(struct vn_command_vkCmdSetStencilCompareMask * args)1537 static inline void vn_replace_vkCmdSetStencilCompareMask_args_handle(struct vn_command_vkCmdSetStencilCompareMask *args)
1538 {
1539     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1540     /* skip args->faceMask */
1541     /* skip args->compareMask */
1542 }
1543 
vn_encode_vkCmdSetStencilCompareMask_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetStencilCompareMask * args)1544 static inline void vn_encode_vkCmdSetStencilCompareMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilCompareMask *args)
1545 {
1546     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT});
1547 
1548     /* skip args->commandBuffer */
1549     /* skip args->faceMask */
1550     /* skip args->compareMask */
1551 }
1552 
vn_decode_vkCmdSetStencilWriteMask_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetStencilWriteMask * args)1553 static inline void vn_decode_vkCmdSetStencilWriteMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilWriteMask *args)
1554 {
1555     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1556     vn_decode_VkFlags(dec, &args->faceMask);
1557     vn_decode_uint32_t(dec, &args->writeMask);
1558 }
1559 
vn_replace_vkCmdSetStencilWriteMask_args_handle(struct vn_command_vkCmdSetStencilWriteMask * args)1560 static inline void vn_replace_vkCmdSetStencilWriteMask_args_handle(struct vn_command_vkCmdSetStencilWriteMask *args)
1561 {
1562     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1563     /* skip args->faceMask */
1564     /* skip args->writeMask */
1565 }
1566 
vn_encode_vkCmdSetStencilWriteMask_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetStencilWriteMask * args)1567 static inline void vn_encode_vkCmdSetStencilWriteMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilWriteMask *args)
1568 {
1569     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT});
1570 
1571     /* skip args->commandBuffer */
1572     /* skip args->faceMask */
1573     /* skip args->writeMask */
1574 }
1575 
vn_decode_vkCmdSetStencilReference_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetStencilReference * args)1576 static inline void vn_decode_vkCmdSetStencilReference_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilReference *args)
1577 {
1578     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1579     vn_decode_VkFlags(dec, &args->faceMask);
1580     vn_decode_uint32_t(dec, &args->reference);
1581 }
1582 
vn_replace_vkCmdSetStencilReference_args_handle(struct vn_command_vkCmdSetStencilReference * args)1583 static inline void vn_replace_vkCmdSetStencilReference_args_handle(struct vn_command_vkCmdSetStencilReference *args)
1584 {
1585     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1586     /* skip args->faceMask */
1587     /* skip args->reference */
1588 }
1589 
vn_encode_vkCmdSetStencilReference_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetStencilReference * args)1590 static inline void vn_encode_vkCmdSetStencilReference_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilReference *args)
1591 {
1592     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT});
1593 
1594     /* skip args->commandBuffer */
1595     /* skip args->faceMask */
1596     /* skip args->reference */
1597 }
1598 
vn_decode_vkCmdBindDescriptorSets_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBindDescriptorSets * args)1599 static inline void vn_decode_vkCmdBindDescriptorSets_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindDescriptorSets *args)
1600 {
1601     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1602     vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint);
1603     vn_decode_VkPipelineLayout_lookup(dec, &args->layout);
1604     vn_decode_uint32_t(dec, &args->firstSet);
1605     vn_decode_uint32_t(dec, &args->descriptorSetCount);
1606     if (vn_peek_array_size(dec)) {
1607         const uint32_t iter_count = vn_decode_array_size(dec, args->descriptorSetCount);
1608         args->pDescriptorSets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDescriptorSets) * iter_count);
1609         if (!args->pDescriptorSets) return;
1610         for (uint32_t i = 0; i < iter_count; i++)
1611             vn_decode_VkDescriptorSet_lookup(dec, &((VkDescriptorSet *)args->pDescriptorSets)[i]);
1612     } else {
1613         vn_decode_array_size(dec, args->descriptorSetCount);
1614         args->pDescriptorSets = NULL;
1615     }
1616     vn_decode_uint32_t(dec, &args->dynamicOffsetCount);
1617     if (vn_peek_array_size(dec)) {
1618         const size_t array_size = vn_decode_array_size(dec, args->dynamicOffsetCount);
1619         args->pDynamicOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDynamicOffsets) * array_size);
1620         if (!args->pDynamicOffsets) return;
1621         vn_decode_uint32_t_array(dec, (uint32_t *)args->pDynamicOffsets, array_size);
1622     } else {
1623         vn_decode_array_size(dec, args->dynamicOffsetCount);
1624         args->pDynamicOffsets = NULL;
1625     }
1626 }
1627 
vn_replace_vkCmdBindDescriptorSets_args_handle(struct vn_command_vkCmdBindDescriptorSets * args)1628 static inline void vn_replace_vkCmdBindDescriptorSets_args_handle(struct vn_command_vkCmdBindDescriptorSets *args)
1629 {
1630     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1631     /* skip args->pipelineBindPoint */
1632     vn_replace_VkPipelineLayout_handle(&args->layout);
1633     /* skip args->firstSet */
1634     /* skip args->descriptorSetCount */
1635     if (args->pDescriptorSets) {
1636        for (uint32_t i = 0; i < args->descriptorSetCount; i++)
1637             vn_replace_VkDescriptorSet_handle(&((VkDescriptorSet *)args->pDescriptorSets)[i]);
1638     }
1639     /* skip args->dynamicOffsetCount */
1640     /* skip args->pDynamicOffsets */
1641 }
1642 
vn_encode_vkCmdBindDescriptorSets_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBindDescriptorSets * args)1643 static inline void vn_encode_vkCmdBindDescriptorSets_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindDescriptorSets *args)
1644 {
1645     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT});
1646 
1647     /* skip args->commandBuffer */
1648     /* skip args->pipelineBindPoint */
1649     /* skip args->layout */
1650     /* skip args->firstSet */
1651     /* skip args->descriptorSetCount */
1652     /* skip args->pDescriptorSets */
1653     /* skip args->dynamicOffsetCount */
1654     /* skip args->pDynamicOffsets */
1655 }
1656 
vn_decode_vkCmdBindIndexBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBindIndexBuffer * args)1657 static inline void vn_decode_vkCmdBindIndexBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindIndexBuffer *args)
1658 {
1659     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1660     vn_decode_VkBuffer_lookup(dec, &args->buffer);
1661     vn_decode_VkDeviceSize(dec, &args->offset);
1662     vn_decode_VkIndexType(dec, &args->indexType);
1663 }
1664 
vn_replace_vkCmdBindIndexBuffer_args_handle(struct vn_command_vkCmdBindIndexBuffer * args)1665 static inline void vn_replace_vkCmdBindIndexBuffer_args_handle(struct vn_command_vkCmdBindIndexBuffer *args)
1666 {
1667     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1668     vn_replace_VkBuffer_handle(&args->buffer);
1669     /* skip args->offset */
1670     /* skip args->indexType */
1671 }
1672 
vn_encode_vkCmdBindIndexBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBindIndexBuffer * args)1673 static inline void vn_encode_vkCmdBindIndexBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindIndexBuffer *args)
1674 {
1675     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT});
1676 
1677     /* skip args->commandBuffer */
1678     /* skip args->buffer */
1679     /* skip args->offset */
1680     /* skip args->indexType */
1681 }
1682 
vn_decode_vkCmdBindVertexBuffers_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBindVertexBuffers * args)1683 static inline void vn_decode_vkCmdBindVertexBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindVertexBuffers *args)
1684 {
1685     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1686     vn_decode_uint32_t(dec, &args->firstBinding);
1687     vn_decode_uint32_t(dec, &args->bindingCount);
1688     if (vn_peek_array_size(dec)) {
1689         const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount);
1690         args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count);
1691         if (!args->pBuffers) return;
1692         for (uint32_t i = 0; i < iter_count; i++)
1693             vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]);
1694     } else {
1695         vn_decode_array_size(dec, args->bindingCount);
1696         args->pBuffers = NULL;
1697     }
1698     if (vn_peek_array_size(dec)) {
1699         const size_t array_size = vn_decode_array_size(dec, args->bindingCount);
1700         args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size);
1701         if (!args->pOffsets) return;
1702         vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size);
1703     } else {
1704         vn_decode_array_size(dec, args->bindingCount);
1705         args->pOffsets = NULL;
1706     }
1707 }
1708 
vn_replace_vkCmdBindVertexBuffers_args_handle(struct vn_command_vkCmdBindVertexBuffers * args)1709 static inline void vn_replace_vkCmdBindVertexBuffers_args_handle(struct vn_command_vkCmdBindVertexBuffers *args)
1710 {
1711     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1712     /* skip args->firstBinding */
1713     /* skip args->bindingCount */
1714     if (args->pBuffers) {
1715        for (uint32_t i = 0; i < args->bindingCount; i++)
1716             vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]);
1717     }
1718     /* skip args->pOffsets */
1719 }
1720 
vn_encode_vkCmdBindVertexBuffers_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBindVertexBuffers * args)1721 static inline void vn_encode_vkCmdBindVertexBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindVertexBuffers *args)
1722 {
1723     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT});
1724 
1725     /* skip args->commandBuffer */
1726     /* skip args->firstBinding */
1727     /* skip args->bindingCount */
1728     /* skip args->pBuffers */
1729     /* skip args->pOffsets */
1730 }
1731 
vn_decode_vkCmdDraw_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDraw * args)1732 static inline void vn_decode_vkCmdDraw_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDraw *args)
1733 {
1734     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1735     vn_decode_uint32_t(dec, &args->vertexCount);
1736     vn_decode_uint32_t(dec, &args->instanceCount);
1737     vn_decode_uint32_t(dec, &args->firstVertex);
1738     vn_decode_uint32_t(dec, &args->firstInstance);
1739 }
1740 
vn_replace_vkCmdDraw_args_handle(struct vn_command_vkCmdDraw * args)1741 static inline void vn_replace_vkCmdDraw_args_handle(struct vn_command_vkCmdDraw *args)
1742 {
1743     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1744     /* skip args->vertexCount */
1745     /* skip args->instanceCount */
1746     /* skip args->firstVertex */
1747     /* skip args->firstInstance */
1748 }
1749 
vn_encode_vkCmdDraw_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDraw * args)1750 static inline void vn_encode_vkCmdDraw_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDraw *args)
1751 {
1752     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDraw_EXT});
1753 
1754     /* skip args->commandBuffer */
1755     /* skip args->vertexCount */
1756     /* skip args->instanceCount */
1757     /* skip args->firstVertex */
1758     /* skip args->firstInstance */
1759 }
1760 
vn_decode_vkCmdDrawIndexed_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndexed * args)1761 static inline void vn_decode_vkCmdDrawIndexed_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexed *args)
1762 {
1763     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1764     vn_decode_uint32_t(dec, &args->indexCount);
1765     vn_decode_uint32_t(dec, &args->instanceCount);
1766     vn_decode_uint32_t(dec, &args->firstIndex);
1767     vn_decode_int32_t(dec, &args->vertexOffset);
1768     vn_decode_uint32_t(dec, &args->firstInstance);
1769 }
1770 
vn_replace_vkCmdDrawIndexed_args_handle(struct vn_command_vkCmdDrawIndexed * args)1771 static inline void vn_replace_vkCmdDrawIndexed_args_handle(struct vn_command_vkCmdDrawIndexed *args)
1772 {
1773     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1774     /* skip args->indexCount */
1775     /* skip args->instanceCount */
1776     /* skip args->firstIndex */
1777     /* skip args->vertexOffset */
1778     /* skip args->firstInstance */
1779 }
1780 
vn_encode_vkCmdDrawIndexed_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndexed * args)1781 static inline void vn_encode_vkCmdDrawIndexed_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexed *args)
1782 {
1783     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT});
1784 
1785     /* skip args->commandBuffer */
1786     /* skip args->indexCount */
1787     /* skip args->instanceCount */
1788     /* skip args->firstIndex */
1789     /* skip args->vertexOffset */
1790     /* skip args->firstInstance */
1791 }
1792 
vn_decode_vkCmdDrawIndirect_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndirect * args)1793 static inline void vn_decode_vkCmdDrawIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirect *args)
1794 {
1795     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1796     vn_decode_VkBuffer_lookup(dec, &args->buffer);
1797     vn_decode_VkDeviceSize(dec, &args->offset);
1798     vn_decode_uint32_t(dec, &args->drawCount);
1799     vn_decode_uint32_t(dec, &args->stride);
1800 }
1801 
vn_replace_vkCmdDrawIndirect_args_handle(struct vn_command_vkCmdDrawIndirect * args)1802 static inline void vn_replace_vkCmdDrawIndirect_args_handle(struct vn_command_vkCmdDrawIndirect *args)
1803 {
1804     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1805     vn_replace_VkBuffer_handle(&args->buffer);
1806     /* skip args->offset */
1807     /* skip args->drawCount */
1808     /* skip args->stride */
1809 }
1810 
vn_encode_vkCmdDrawIndirect_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndirect * args)1811 static inline void vn_encode_vkCmdDrawIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirect *args)
1812 {
1813     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT});
1814 
1815     /* skip args->commandBuffer */
1816     /* skip args->buffer */
1817     /* skip args->offset */
1818     /* skip args->drawCount */
1819     /* skip args->stride */
1820 }
1821 
vn_decode_vkCmdDrawIndexedIndirect_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndexedIndirect * args)1822 static inline void vn_decode_vkCmdDrawIndexedIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirect *args)
1823 {
1824     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1825     vn_decode_VkBuffer_lookup(dec, &args->buffer);
1826     vn_decode_VkDeviceSize(dec, &args->offset);
1827     vn_decode_uint32_t(dec, &args->drawCount);
1828     vn_decode_uint32_t(dec, &args->stride);
1829 }
1830 
vn_replace_vkCmdDrawIndexedIndirect_args_handle(struct vn_command_vkCmdDrawIndexedIndirect * args)1831 static inline void vn_replace_vkCmdDrawIndexedIndirect_args_handle(struct vn_command_vkCmdDrawIndexedIndirect *args)
1832 {
1833     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1834     vn_replace_VkBuffer_handle(&args->buffer);
1835     /* skip args->offset */
1836     /* skip args->drawCount */
1837     /* skip args->stride */
1838 }
1839 
vn_encode_vkCmdDrawIndexedIndirect_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndexedIndirect * args)1840 static inline void vn_encode_vkCmdDrawIndexedIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirect *args)
1841 {
1842     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT});
1843 
1844     /* skip args->commandBuffer */
1845     /* skip args->buffer */
1846     /* skip args->offset */
1847     /* skip args->drawCount */
1848     /* skip args->stride */
1849 }
1850 
vn_decode_vkCmdDispatch_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDispatch * args)1851 static inline void vn_decode_vkCmdDispatch_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatch *args)
1852 {
1853     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1854     vn_decode_uint32_t(dec, &args->groupCountX);
1855     vn_decode_uint32_t(dec, &args->groupCountY);
1856     vn_decode_uint32_t(dec, &args->groupCountZ);
1857 }
1858 
vn_replace_vkCmdDispatch_args_handle(struct vn_command_vkCmdDispatch * args)1859 static inline void vn_replace_vkCmdDispatch_args_handle(struct vn_command_vkCmdDispatch *args)
1860 {
1861     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1862     /* skip args->groupCountX */
1863     /* skip args->groupCountY */
1864     /* skip args->groupCountZ */
1865 }
1866 
vn_encode_vkCmdDispatch_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDispatch * args)1867 static inline void vn_encode_vkCmdDispatch_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatch *args)
1868 {
1869     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatch_EXT});
1870 
1871     /* skip args->commandBuffer */
1872     /* skip args->groupCountX */
1873     /* skip args->groupCountY */
1874     /* skip args->groupCountZ */
1875 }
1876 
vn_decode_vkCmdDispatchIndirect_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDispatchIndirect * args)1877 static inline void vn_decode_vkCmdDispatchIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchIndirect *args)
1878 {
1879     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1880     vn_decode_VkBuffer_lookup(dec, &args->buffer);
1881     vn_decode_VkDeviceSize(dec, &args->offset);
1882 }
1883 
vn_replace_vkCmdDispatchIndirect_args_handle(struct vn_command_vkCmdDispatchIndirect * args)1884 static inline void vn_replace_vkCmdDispatchIndirect_args_handle(struct vn_command_vkCmdDispatchIndirect *args)
1885 {
1886     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1887     vn_replace_VkBuffer_handle(&args->buffer);
1888     /* skip args->offset */
1889 }
1890 
vn_encode_vkCmdDispatchIndirect_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDispatchIndirect * args)1891 static inline void vn_encode_vkCmdDispatchIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchIndirect *args)
1892 {
1893     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT});
1894 
1895     /* skip args->commandBuffer */
1896     /* skip args->buffer */
1897     /* skip args->offset */
1898 }
1899 
vn_decode_vkCmdCopyBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdCopyBuffer * args)1900 static inline void vn_decode_vkCmdCopyBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBuffer *args)
1901 {
1902     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1903     vn_decode_VkBuffer_lookup(dec, &args->srcBuffer);
1904     vn_decode_VkBuffer_lookup(dec, &args->dstBuffer);
1905     vn_decode_uint32_t(dec, &args->regionCount);
1906     if (vn_peek_array_size(dec)) {
1907         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
1908         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
1909         if (!args->pRegions) return;
1910         for (uint32_t i = 0; i < iter_count; i++)
1911             vn_decode_VkBufferCopy_temp(dec, &((VkBufferCopy *)args->pRegions)[i]);
1912     } else {
1913         vn_decode_array_size(dec, args->regionCount);
1914         args->pRegions = NULL;
1915     }
1916 }
1917 
vn_replace_vkCmdCopyBuffer_args_handle(struct vn_command_vkCmdCopyBuffer * args)1918 static inline void vn_replace_vkCmdCopyBuffer_args_handle(struct vn_command_vkCmdCopyBuffer *args)
1919 {
1920     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1921     vn_replace_VkBuffer_handle(&args->srcBuffer);
1922     vn_replace_VkBuffer_handle(&args->dstBuffer);
1923     /* skip args->regionCount */
1924     if (args->pRegions) {
1925        for (uint32_t i = 0; i < args->regionCount; i++)
1926             vn_replace_VkBufferCopy_handle(&((VkBufferCopy *)args->pRegions)[i]);
1927     }
1928 }
1929 
vn_encode_vkCmdCopyBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdCopyBuffer * args)1930 static inline void vn_encode_vkCmdCopyBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBuffer *args)
1931 {
1932     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT});
1933 
1934     /* skip args->commandBuffer */
1935     /* skip args->srcBuffer */
1936     /* skip args->dstBuffer */
1937     /* skip args->regionCount */
1938     /* skip args->pRegions */
1939 }
1940 
vn_decode_vkCmdCopyImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdCopyImage * args)1941 static inline void vn_decode_vkCmdCopyImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImage *args)
1942 {
1943     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1944     vn_decode_VkImage_lookup(dec, &args->srcImage);
1945     vn_decode_VkImageLayout(dec, &args->srcImageLayout);
1946     vn_decode_VkImage_lookup(dec, &args->dstImage);
1947     vn_decode_VkImageLayout(dec, &args->dstImageLayout);
1948     vn_decode_uint32_t(dec, &args->regionCount);
1949     if (vn_peek_array_size(dec)) {
1950         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
1951         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
1952         if (!args->pRegions) return;
1953         for (uint32_t i = 0; i < iter_count; i++)
1954             vn_decode_VkImageCopy_temp(dec, &((VkImageCopy *)args->pRegions)[i]);
1955     } else {
1956         vn_decode_array_size(dec, args->regionCount);
1957         args->pRegions = NULL;
1958     }
1959 }
1960 
vn_replace_vkCmdCopyImage_args_handle(struct vn_command_vkCmdCopyImage * args)1961 static inline void vn_replace_vkCmdCopyImage_args_handle(struct vn_command_vkCmdCopyImage *args)
1962 {
1963     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
1964     vn_replace_VkImage_handle(&args->srcImage);
1965     /* skip args->srcImageLayout */
1966     vn_replace_VkImage_handle(&args->dstImage);
1967     /* skip args->dstImageLayout */
1968     /* skip args->regionCount */
1969     if (args->pRegions) {
1970        for (uint32_t i = 0; i < args->regionCount; i++)
1971             vn_replace_VkImageCopy_handle(&((VkImageCopy *)args->pRegions)[i]);
1972     }
1973 }
1974 
vn_encode_vkCmdCopyImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdCopyImage * args)1975 static inline void vn_encode_vkCmdCopyImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImage *args)
1976 {
1977     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImage_EXT});
1978 
1979     /* skip args->commandBuffer */
1980     /* skip args->srcImage */
1981     /* skip args->srcImageLayout */
1982     /* skip args->dstImage */
1983     /* skip args->dstImageLayout */
1984     /* skip args->regionCount */
1985     /* skip args->pRegions */
1986 }
1987 
vn_decode_vkCmdBlitImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBlitImage * args)1988 static inline void vn_decode_vkCmdBlitImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBlitImage *args)
1989 {
1990     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
1991     vn_decode_VkImage_lookup(dec, &args->srcImage);
1992     vn_decode_VkImageLayout(dec, &args->srcImageLayout);
1993     vn_decode_VkImage_lookup(dec, &args->dstImage);
1994     vn_decode_VkImageLayout(dec, &args->dstImageLayout);
1995     vn_decode_uint32_t(dec, &args->regionCount);
1996     if (vn_peek_array_size(dec)) {
1997         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
1998         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
1999         if (!args->pRegions) return;
2000         for (uint32_t i = 0; i < iter_count; i++)
2001             vn_decode_VkImageBlit_temp(dec, &((VkImageBlit *)args->pRegions)[i]);
2002     } else {
2003         vn_decode_array_size(dec, args->regionCount);
2004         args->pRegions = NULL;
2005     }
2006     vn_decode_VkFilter(dec, &args->filter);
2007 }
2008 
vn_replace_vkCmdBlitImage_args_handle(struct vn_command_vkCmdBlitImage * args)2009 static inline void vn_replace_vkCmdBlitImage_args_handle(struct vn_command_vkCmdBlitImage *args)
2010 {
2011     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2012     vn_replace_VkImage_handle(&args->srcImage);
2013     /* skip args->srcImageLayout */
2014     vn_replace_VkImage_handle(&args->dstImage);
2015     /* skip args->dstImageLayout */
2016     /* skip args->regionCount */
2017     if (args->pRegions) {
2018        for (uint32_t i = 0; i < args->regionCount; i++)
2019             vn_replace_VkImageBlit_handle(&((VkImageBlit *)args->pRegions)[i]);
2020     }
2021     /* skip args->filter */
2022 }
2023 
vn_encode_vkCmdBlitImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBlitImage * args)2024 static inline void vn_encode_vkCmdBlitImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBlitImage *args)
2025 {
2026     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBlitImage_EXT});
2027 
2028     /* skip args->commandBuffer */
2029     /* skip args->srcImage */
2030     /* skip args->srcImageLayout */
2031     /* skip args->dstImage */
2032     /* skip args->dstImageLayout */
2033     /* skip args->regionCount */
2034     /* skip args->pRegions */
2035     /* skip args->filter */
2036 }
2037 
vn_decode_vkCmdCopyBufferToImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdCopyBufferToImage * args)2038 static inline void vn_decode_vkCmdCopyBufferToImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBufferToImage *args)
2039 {
2040     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2041     vn_decode_VkBuffer_lookup(dec, &args->srcBuffer);
2042     vn_decode_VkImage_lookup(dec, &args->dstImage);
2043     vn_decode_VkImageLayout(dec, &args->dstImageLayout);
2044     vn_decode_uint32_t(dec, &args->regionCount);
2045     if (vn_peek_array_size(dec)) {
2046         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
2047         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
2048         if (!args->pRegions) return;
2049         for (uint32_t i = 0; i < iter_count; i++)
2050             vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]);
2051     } else {
2052         vn_decode_array_size(dec, args->regionCount);
2053         args->pRegions = NULL;
2054     }
2055 }
2056 
vn_replace_vkCmdCopyBufferToImage_args_handle(struct vn_command_vkCmdCopyBufferToImage * args)2057 static inline void vn_replace_vkCmdCopyBufferToImage_args_handle(struct vn_command_vkCmdCopyBufferToImage *args)
2058 {
2059     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2060     vn_replace_VkBuffer_handle(&args->srcBuffer);
2061     vn_replace_VkImage_handle(&args->dstImage);
2062     /* skip args->dstImageLayout */
2063     /* skip args->regionCount */
2064     if (args->pRegions) {
2065        for (uint32_t i = 0; i < args->regionCount; i++)
2066             vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]);
2067     }
2068 }
2069 
vn_encode_vkCmdCopyBufferToImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdCopyBufferToImage * args)2070 static inline void vn_encode_vkCmdCopyBufferToImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBufferToImage *args)
2071 {
2072     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT});
2073 
2074     /* skip args->commandBuffer */
2075     /* skip args->srcBuffer */
2076     /* skip args->dstImage */
2077     /* skip args->dstImageLayout */
2078     /* skip args->regionCount */
2079     /* skip args->pRegions */
2080 }
2081 
vn_decode_vkCmdCopyImageToBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdCopyImageToBuffer * args)2082 static inline void vn_decode_vkCmdCopyImageToBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImageToBuffer *args)
2083 {
2084     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2085     vn_decode_VkImage_lookup(dec, &args->srcImage);
2086     vn_decode_VkImageLayout(dec, &args->srcImageLayout);
2087     vn_decode_VkBuffer_lookup(dec, &args->dstBuffer);
2088     vn_decode_uint32_t(dec, &args->regionCount);
2089     if (vn_peek_array_size(dec)) {
2090         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
2091         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
2092         if (!args->pRegions) return;
2093         for (uint32_t i = 0; i < iter_count; i++)
2094             vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]);
2095     } else {
2096         vn_decode_array_size(dec, args->regionCount);
2097         args->pRegions = NULL;
2098     }
2099 }
2100 
vn_replace_vkCmdCopyImageToBuffer_args_handle(struct vn_command_vkCmdCopyImageToBuffer * args)2101 static inline void vn_replace_vkCmdCopyImageToBuffer_args_handle(struct vn_command_vkCmdCopyImageToBuffer *args)
2102 {
2103     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2104     vn_replace_VkImage_handle(&args->srcImage);
2105     /* skip args->srcImageLayout */
2106     vn_replace_VkBuffer_handle(&args->dstBuffer);
2107     /* skip args->regionCount */
2108     if (args->pRegions) {
2109        for (uint32_t i = 0; i < args->regionCount; i++)
2110             vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]);
2111     }
2112 }
2113 
vn_encode_vkCmdCopyImageToBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdCopyImageToBuffer * args)2114 static inline void vn_encode_vkCmdCopyImageToBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImageToBuffer *args)
2115 {
2116     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT});
2117 
2118     /* skip args->commandBuffer */
2119     /* skip args->srcImage */
2120     /* skip args->srcImageLayout */
2121     /* skip args->dstBuffer */
2122     /* skip args->regionCount */
2123     /* skip args->pRegions */
2124 }
2125 
vn_decode_vkCmdUpdateBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdUpdateBuffer * args)2126 static inline void vn_decode_vkCmdUpdateBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdUpdateBuffer *args)
2127 {
2128     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2129     vn_decode_VkBuffer_lookup(dec, &args->dstBuffer);
2130     vn_decode_VkDeviceSize(dec, &args->dstOffset);
2131     vn_decode_VkDeviceSize(dec, &args->dataSize);
2132     if (vn_peek_array_size(dec)) {
2133         const size_t array_size = vn_decode_array_size(dec, args->dataSize);
2134         args->pData = vn_cs_decoder_alloc_temp(dec, array_size);
2135         if (!args->pData) return;
2136         vn_decode_blob_array(dec, (void *)args->pData, array_size);
2137     } else {
2138         vn_decode_array_size(dec, args->dataSize);
2139         args->pData = NULL;
2140     }
2141 }
2142 
vn_replace_vkCmdUpdateBuffer_args_handle(struct vn_command_vkCmdUpdateBuffer * args)2143 static inline void vn_replace_vkCmdUpdateBuffer_args_handle(struct vn_command_vkCmdUpdateBuffer *args)
2144 {
2145     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2146     vn_replace_VkBuffer_handle(&args->dstBuffer);
2147     /* skip args->dstOffset */
2148     /* skip args->dataSize */
2149     /* skip args->pData */
2150 }
2151 
vn_encode_vkCmdUpdateBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdUpdateBuffer * args)2152 static inline void vn_encode_vkCmdUpdateBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdUpdateBuffer *args)
2153 {
2154     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT});
2155 
2156     /* skip args->commandBuffer */
2157     /* skip args->dstBuffer */
2158     /* skip args->dstOffset */
2159     /* skip args->dataSize */
2160     /* skip args->pData */
2161 }
2162 
vn_decode_vkCmdFillBuffer_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdFillBuffer * args)2163 static inline void vn_decode_vkCmdFillBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdFillBuffer *args)
2164 {
2165     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2166     vn_decode_VkBuffer_lookup(dec, &args->dstBuffer);
2167     vn_decode_VkDeviceSize(dec, &args->dstOffset);
2168     vn_decode_VkDeviceSize(dec, &args->size);
2169     vn_decode_uint32_t(dec, &args->data);
2170 }
2171 
vn_replace_vkCmdFillBuffer_args_handle(struct vn_command_vkCmdFillBuffer * args)2172 static inline void vn_replace_vkCmdFillBuffer_args_handle(struct vn_command_vkCmdFillBuffer *args)
2173 {
2174     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2175     vn_replace_VkBuffer_handle(&args->dstBuffer);
2176     /* skip args->dstOffset */
2177     /* skip args->size */
2178     /* skip args->data */
2179 }
2180 
vn_encode_vkCmdFillBuffer_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdFillBuffer * args)2181 static inline void vn_encode_vkCmdFillBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdFillBuffer *args)
2182 {
2183     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdFillBuffer_EXT});
2184 
2185     /* skip args->commandBuffer */
2186     /* skip args->dstBuffer */
2187     /* skip args->dstOffset */
2188     /* skip args->size */
2189     /* skip args->data */
2190 }
2191 
vn_decode_vkCmdClearColorImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdClearColorImage * args)2192 static inline void vn_decode_vkCmdClearColorImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearColorImage *args)
2193 {
2194     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2195     vn_decode_VkImage_lookup(dec, &args->image);
2196     vn_decode_VkImageLayout(dec, &args->imageLayout);
2197     if (vn_decode_simple_pointer(dec)) {
2198         args->pColor = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pColor));
2199         if (!args->pColor) return;
2200         vn_decode_VkClearColorValue_temp(dec, (VkClearColorValue *)args->pColor);
2201     } else {
2202         args->pColor = NULL;
2203     }
2204     vn_decode_uint32_t(dec, &args->rangeCount);
2205     if (vn_peek_array_size(dec)) {
2206         const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount);
2207         args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count);
2208         if (!args->pRanges) return;
2209         for (uint32_t i = 0; i < iter_count; i++)
2210             vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]);
2211     } else {
2212         vn_decode_array_size(dec, args->rangeCount);
2213         args->pRanges = NULL;
2214     }
2215 }
2216 
vn_replace_vkCmdClearColorImage_args_handle(struct vn_command_vkCmdClearColorImage * args)2217 static inline void vn_replace_vkCmdClearColorImage_args_handle(struct vn_command_vkCmdClearColorImage *args)
2218 {
2219     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2220     vn_replace_VkImage_handle(&args->image);
2221     /* skip args->imageLayout */
2222     /* skip args->pColor */
2223     /* skip args->rangeCount */
2224     if (args->pRanges) {
2225        for (uint32_t i = 0; i < args->rangeCount; i++)
2226             vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]);
2227     }
2228 }
2229 
vn_encode_vkCmdClearColorImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdClearColorImage * args)2230 static inline void vn_encode_vkCmdClearColorImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearColorImage *args)
2231 {
2232     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearColorImage_EXT});
2233 
2234     /* skip args->commandBuffer */
2235     /* skip args->image */
2236     /* skip args->imageLayout */
2237     /* skip args->pColor */
2238     /* skip args->rangeCount */
2239     /* skip args->pRanges */
2240 }
2241 
vn_decode_vkCmdClearDepthStencilImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdClearDepthStencilImage * args)2242 static inline void vn_decode_vkCmdClearDepthStencilImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearDepthStencilImage *args)
2243 {
2244     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2245     vn_decode_VkImage_lookup(dec, &args->image);
2246     vn_decode_VkImageLayout(dec, &args->imageLayout);
2247     if (vn_decode_simple_pointer(dec)) {
2248         args->pDepthStencil = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDepthStencil));
2249         if (!args->pDepthStencil) return;
2250         vn_decode_VkClearDepthStencilValue_temp(dec, (VkClearDepthStencilValue *)args->pDepthStencil);
2251     } else {
2252         args->pDepthStencil = NULL;
2253         vn_cs_decoder_set_fatal(dec);
2254     }
2255     vn_decode_uint32_t(dec, &args->rangeCount);
2256     if (vn_peek_array_size(dec)) {
2257         const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount);
2258         args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count);
2259         if (!args->pRanges) return;
2260         for (uint32_t i = 0; i < iter_count; i++)
2261             vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]);
2262     } else {
2263         vn_decode_array_size(dec, args->rangeCount);
2264         args->pRanges = NULL;
2265     }
2266 }
2267 
vn_replace_vkCmdClearDepthStencilImage_args_handle(struct vn_command_vkCmdClearDepthStencilImage * args)2268 static inline void vn_replace_vkCmdClearDepthStencilImage_args_handle(struct vn_command_vkCmdClearDepthStencilImage *args)
2269 {
2270     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2271     vn_replace_VkImage_handle(&args->image);
2272     /* skip args->imageLayout */
2273     if (args->pDepthStencil)
2274         vn_replace_VkClearDepthStencilValue_handle((VkClearDepthStencilValue *)args->pDepthStencil);
2275     /* skip args->rangeCount */
2276     if (args->pRanges) {
2277        for (uint32_t i = 0; i < args->rangeCount; i++)
2278             vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]);
2279     }
2280 }
2281 
vn_encode_vkCmdClearDepthStencilImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdClearDepthStencilImage * args)2282 static inline void vn_encode_vkCmdClearDepthStencilImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearDepthStencilImage *args)
2283 {
2284     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT});
2285 
2286     /* skip args->commandBuffer */
2287     /* skip args->image */
2288     /* skip args->imageLayout */
2289     /* skip args->pDepthStencil */
2290     /* skip args->rangeCount */
2291     /* skip args->pRanges */
2292 }
2293 
vn_decode_vkCmdClearAttachments_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdClearAttachments * args)2294 static inline void vn_decode_vkCmdClearAttachments_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearAttachments *args)
2295 {
2296     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2297     vn_decode_uint32_t(dec, &args->attachmentCount);
2298     if (vn_peek_array_size(dec)) {
2299         const uint32_t iter_count = vn_decode_array_size(dec, args->attachmentCount);
2300         args->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAttachments) * iter_count);
2301         if (!args->pAttachments) return;
2302         for (uint32_t i = 0; i < iter_count; i++)
2303             vn_decode_VkClearAttachment_temp(dec, &((VkClearAttachment *)args->pAttachments)[i]);
2304     } else {
2305         vn_decode_array_size(dec, args->attachmentCount);
2306         args->pAttachments = NULL;
2307     }
2308     vn_decode_uint32_t(dec, &args->rectCount);
2309     if (vn_peek_array_size(dec)) {
2310         const uint32_t iter_count = vn_decode_array_size(dec, args->rectCount);
2311         args->pRects = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRects) * iter_count);
2312         if (!args->pRects) return;
2313         for (uint32_t i = 0; i < iter_count; i++)
2314             vn_decode_VkClearRect_temp(dec, &((VkClearRect *)args->pRects)[i]);
2315     } else {
2316         vn_decode_array_size(dec, args->rectCount);
2317         args->pRects = NULL;
2318     }
2319 }
2320 
vn_replace_vkCmdClearAttachments_args_handle(struct vn_command_vkCmdClearAttachments * args)2321 static inline void vn_replace_vkCmdClearAttachments_args_handle(struct vn_command_vkCmdClearAttachments *args)
2322 {
2323     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2324     /* skip args->attachmentCount */
2325     if (args->pAttachments) {
2326        for (uint32_t i = 0; i < args->attachmentCount; i++)
2327             vn_replace_VkClearAttachment_handle(&((VkClearAttachment *)args->pAttachments)[i]);
2328     }
2329     /* skip args->rectCount */
2330     if (args->pRects) {
2331        for (uint32_t i = 0; i < args->rectCount; i++)
2332             vn_replace_VkClearRect_handle(&((VkClearRect *)args->pRects)[i]);
2333     }
2334 }
2335 
vn_encode_vkCmdClearAttachments_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdClearAttachments * args)2336 static inline void vn_encode_vkCmdClearAttachments_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearAttachments *args)
2337 {
2338     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearAttachments_EXT});
2339 
2340     /* skip args->commandBuffer */
2341     /* skip args->attachmentCount */
2342     /* skip args->pAttachments */
2343     /* skip args->rectCount */
2344     /* skip args->pRects */
2345 }
2346 
vn_decode_vkCmdResolveImage_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdResolveImage * args)2347 static inline void vn_decode_vkCmdResolveImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResolveImage *args)
2348 {
2349     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2350     vn_decode_VkImage_lookup(dec, &args->srcImage);
2351     vn_decode_VkImageLayout(dec, &args->srcImageLayout);
2352     vn_decode_VkImage_lookup(dec, &args->dstImage);
2353     vn_decode_VkImageLayout(dec, &args->dstImageLayout);
2354     vn_decode_uint32_t(dec, &args->regionCount);
2355     if (vn_peek_array_size(dec)) {
2356         const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount);
2357         args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count);
2358         if (!args->pRegions) return;
2359         for (uint32_t i = 0; i < iter_count; i++)
2360             vn_decode_VkImageResolve_temp(dec, &((VkImageResolve *)args->pRegions)[i]);
2361     } else {
2362         vn_decode_array_size(dec, args->regionCount);
2363         args->pRegions = NULL;
2364     }
2365 }
2366 
vn_replace_vkCmdResolveImage_args_handle(struct vn_command_vkCmdResolveImage * args)2367 static inline void vn_replace_vkCmdResolveImage_args_handle(struct vn_command_vkCmdResolveImage *args)
2368 {
2369     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2370     vn_replace_VkImage_handle(&args->srcImage);
2371     /* skip args->srcImageLayout */
2372     vn_replace_VkImage_handle(&args->dstImage);
2373     /* skip args->dstImageLayout */
2374     /* skip args->regionCount */
2375     if (args->pRegions) {
2376        for (uint32_t i = 0; i < args->regionCount; i++)
2377             vn_replace_VkImageResolve_handle(&((VkImageResolve *)args->pRegions)[i]);
2378     }
2379 }
2380 
vn_encode_vkCmdResolveImage_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdResolveImage * args)2381 static inline void vn_encode_vkCmdResolveImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResolveImage *args)
2382 {
2383     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResolveImage_EXT});
2384 
2385     /* skip args->commandBuffer */
2386     /* skip args->srcImage */
2387     /* skip args->srcImageLayout */
2388     /* skip args->dstImage */
2389     /* skip args->dstImageLayout */
2390     /* skip args->regionCount */
2391     /* skip args->pRegions */
2392 }
2393 
vn_decode_vkCmdSetEvent_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetEvent * args)2394 static inline void vn_decode_vkCmdSetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetEvent *args)
2395 {
2396     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2397     vn_decode_VkEvent_lookup(dec, &args->event);
2398     vn_decode_VkFlags(dec, &args->stageMask);
2399 }
2400 
vn_replace_vkCmdSetEvent_args_handle(struct vn_command_vkCmdSetEvent * args)2401 static inline void vn_replace_vkCmdSetEvent_args_handle(struct vn_command_vkCmdSetEvent *args)
2402 {
2403     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2404     vn_replace_VkEvent_handle(&args->event);
2405     /* skip args->stageMask */
2406 }
2407 
vn_encode_vkCmdSetEvent_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetEvent * args)2408 static inline void vn_encode_vkCmdSetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetEvent *args)
2409 {
2410     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetEvent_EXT});
2411 
2412     /* skip args->commandBuffer */
2413     /* skip args->event */
2414     /* skip args->stageMask */
2415 }
2416 
vn_decode_vkCmdResetEvent_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdResetEvent * args)2417 static inline void vn_decode_vkCmdResetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetEvent *args)
2418 {
2419     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2420     vn_decode_VkEvent_lookup(dec, &args->event);
2421     vn_decode_VkFlags(dec, &args->stageMask);
2422 }
2423 
vn_replace_vkCmdResetEvent_args_handle(struct vn_command_vkCmdResetEvent * args)2424 static inline void vn_replace_vkCmdResetEvent_args_handle(struct vn_command_vkCmdResetEvent *args)
2425 {
2426     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2427     vn_replace_VkEvent_handle(&args->event);
2428     /* skip args->stageMask */
2429 }
2430 
vn_encode_vkCmdResetEvent_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdResetEvent * args)2431 static inline void vn_encode_vkCmdResetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetEvent *args)
2432 {
2433     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetEvent_EXT});
2434 
2435     /* skip args->commandBuffer */
2436     /* skip args->event */
2437     /* skip args->stageMask */
2438 }
2439 
vn_decode_vkCmdWaitEvents_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdWaitEvents * args)2440 static inline void vn_decode_vkCmdWaitEvents_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWaitEvents *args)
2441 {
2442     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2443     vn_decode_uint32_t(dec, &args->eventCount);
2444     if (vn_peek_array_size(dec)) {
2445         const uint32_t iter_count = vn_decode_array_size(dec, args->eventCount);
2446         args->pEvents = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pEvents) * iter_count);
2447         if (!args->pEvents) return;
2448         for (uint32_t i = 0; i < iter_count; i++)
2449             vn_decode_VkEvent_lookup(dec, &((VkEvent *)args->pEvents)[i]);
2450     } else {
2451         vn_decode_array_size(dec, args->eventCount);
2452         args->pEvents = NULL;
2453     }
2454     vn_decode_VkFlags(dec, &args->srcStageMask);
2455     vn_decode_VkFlags(dec, &args->dstStageMask);
2456     vn_decode_uint32_t(dec, &args->memoryBarrierCount);
2457     if (vn_peek_array_size(dec)) {
2458         const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount);
2459         args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count);
2460         if (!args->pMemoryBarriers) return;
2461         for (uint32_t i = 0; i < iter_count; i++)
2462             vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]);
2463     } else {
2464         vn_decode_array_size(dec, args->memoryBarrierCount);
2465         args->pMemoryBarriers = NULL;
2466     }
2467     vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount);
2468     if (vn_peek_array_size(dec)) {
2469         const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount);
2470         args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count);
2471         if (!args->pBufferMemoryBarriers) return;
2472         for (uint32_t i = 0; i < iter_count; i++)
2473             vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]);
2474     } else {
2475         vn_decode_array_size(dec, args->bufferMemoryBarrierCount);
2476         args->pBufferMemoryBarriers = NULL;
2477     }
2478     vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount);
2479     if (vn_peek_array_size(dec)) {
2480         const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount);
2481         args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count);
2482         if (!args->pImageMemoryBarriers) return;
2483         for (uint32_t i = 0; i < iter_count; i++)
2484             vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]);
2485     } else {
2486         vn_decode_array_size(dec, args->imageMemoryBarrierCount);
2487         args->pImageMemoryBarriers = NULL;
2488     }
2489 }
2490 
vn_replace_vkCmdWaitEvents_args_handle(struct vn_command_vkCmdWaitEvents * args)2491 static inline void vn_replace_vkCmdWaitEvents_args_handle(struct vn_command_vkCmdWaitEvents *args)
2492 {
2493     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2494     /* skip args->eventCount */
2495     if (args->pEvents) {
2496        for (uint32_t i = 0; i < args->eventCount; i++)
2497             vn_replace_VkEvent_handle(&((VkEvent *)args->pEvents)[i]);
2498     }
2499     /* skip args->srcStageMask */
2500     /* skip args->dstStageMask */
2501     /* skip args->memoryBarrierCount */
2502     if (args->pMemoryBarriers) {
2503        for (uint32_t i = 0; i < args->memoryBarrierCount; i++)
2504             vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]);
2505     }
2506     /* skip args->bufferMemoryBarrierCount */
2507     if (args->pBufferMemoryBarriers) {
2508        for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++)
2509             vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]);
2510     }
2511     /* skip args->imageMemoryBarrierCount */
2512     if (args->pImageMemoryBarriers) {
2513        for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++)
2514             vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]);
2515     }
2516 }
2517 
vn_encode_vkCmdWaitEvents_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdWaitEvents * args)2518 static inline void vn_encode_vkCmdWaitEvents_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWaitEvents *args)
2519 {
2520     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWaitEvents_EXT});
2521 
2522     /* skip args->commandBuffer */
2523     /* skip args->eventCount */
2524     /* skip args->pEvents */
2525     /* skip args->srcStageMask */
2526     /* skip args->dstStageMask */
2527     /* skip args->memoryBarrierCount */
2528     /* skip args->pMemoryBarriers */
2529     /* skip args->bufferMemoryBarrierCount */
2530     /* skip args->pBufferMemoryBarriers */
2531     /* skip args->imageMemoryBarrierCount */
2532     /* skip args->pImageMemoryBarriers */
2533 }
2534 
vn_decode_vkCmdPipelineBarrier_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdPipelineBarrier * args)2535 static inline void vn_decode_vkCmdPipelineBarrier_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPipelineBarrier *args)
2536 {
2537     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2538     vn_decode_VkFlags(dec, &args->srcStageMask);
2539     vn_decode_VkFlags(dec, &args->dstStageMask);
2540     vn_decode_VkFlags(dec, &args->dependencyFlags);
2541     vn_decode_uint32_t(dec, &args->memoryBarrierCount);
2542     if (vn_peek_array_size(dec)) {
2543         const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount);
2544         args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count);
2545         if (!args->pMemoryBarriers) return;
2546         for (uint32_t i = 0; i < iter_count; i++)
2547             vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]);
2548     } else {
2549         vn_decode_array_size(dec, args->memoryBarrierCount);
2550         args->pMemoryBarriers = NULL;
2551     }
2552     vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount);
2553     if (vn_peek_array_size(dec)) {
2554         const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount);
2555         args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count);
2556         if (!args->pBufferMemoryBarriers) return;
2557         for (uint32_t i = 0; i < iter_count; i++)
2558             vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]);
2559     } else {
2560         vn_decode_array_size(dec, args->bufferMemoryBarrierCount);
2561         args->pBufferMemoryBarriers = NULL;
2562     }
2563     vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount);
2564     if (vn_peek_array_size(dec)) {
2565         const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount);
2566         args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count);
2567         if (!args->pImageMemoryBarriers) return;
2568         for (uint32_t i = 0; i < iter_count; i++)
2569             vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]);
2570     } else {
2571         vn_decode_array_size(dec, args->imageMemoryBarrierCount);
2572         args->pImageMemoryBarriers = NULL;
2573     }
2574 }
2575 
vn_replace_vkCmdPipelineBarrier_args_handle(struct vn_command_vkCmdPipelineBarrier * args)2576 static inline void vn_replace_vkCmdPipelineBarrier_args_handle(struct vn_command_vkCmdPipelineBarrier *args)
2577 {
2578     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2579     /* skip args->srcStageMask */
2580     /* skip args->dstStageMask */
2581     /* skip args->dependencyFlags */
2582     /* skip args->memoryBarrierCount */
2583     if (args->pMemoryBarriers) {
2584        for (uint32_t i = 0; i < args->memoryBarrierCount; i++)
2585             vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]);
2586     }
2587     /* skip args->bufferMemoryBarrierCount */
2588     if (args->pBufferMemoryBarriers) {
2589        for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++)
2590             vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]);
2591     }
2592     /* skip args->imageMemoryBarrierCount */
2593     if (args->pImageMemoryBarriers) {
2594        for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++)
2595             vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]);
2596     }
2597 }
2598 
vn_encode_vkCmdPipelineBarrier_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdPipelineBarrier * args)2599 static inline void vn_encode_vkCmdPipelineBarrier_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPipelineBarrier *args)
2600 {
2601     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT});
2602 
2603     /* skip args->commandBuffer */
2604     /* skip args->srcStageMask */
2605     /* skip args->dstStageMask */
2606     /* skip args->dependencyFlags */
2607     /* skip args->memoryBarrierCount */
2608     /* skip args->pMemoryBarriers */
2609     /* skip args->bufferMemoryBarrierCount */
2610     /* skip args->pBufferMemoryBarriers */
2611     /* skip args->imageMemoryBarrierCount */
2612     /* skip args->pImageMemoryBarriers */
2613 }
2614 
vn_decode_vkCmdBeginQuery_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBeginQuery * args)2615 static inline void vn_decode_vkCmdBeginQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQuery *args)
2616 {
2617     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2618     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
2619     vn_decode_uint32_t(dec, &args->query);
2620     vn_decode_VkFlags(dec, &args->flags);
2621 }
2622 
vn_replace_vkCmdBeginQuery_args_handle(struct vn_command_vkCmdBeginQuery * args)2623 static inline void vn_replace_vkCmdBeginQuery_args_handle(struct vn_command_vkCmdBeginQuery *args)
2624 {
2625     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2626     vn_replace_VkQueryPool_handle(&args->queryPool);
2627     /* skip args->query */
2628     /* skip args->flags */
2629 }
2630 
vn_encode_vkCmdBeginQuery_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBeginQuery * args)2631 static inline void vn_encode_vkCmdBeginQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQuery *args)
2632 {
2633     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQuery_EXT});
2634 
2635     /* skip args->commandBuffer */
2636     /* skip args->queryPool */
2637     /* skip args->query */
2638     /* skip args->flags */
2639 }
2640 
vn_decode_vkCmdEndQuery_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdEndQuery * args)2641 static inline void vn_decode_vkCmdEndQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQuery *args)
2642 {
2643     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2644     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
2645     vn_decode_uint32_t(dec, &args->query);
2646 }
2647 
vn_replace_vkCmdEndQuery_args_handle(struct vn_command_vkCmdEndQuery * args)2648 static inline void vn_replace_vkCmdEndQuery_args_handle(struct vn_command_vkCmdEndQuery *args)
2649 {
2650     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2651     vn_replace_VkQueryPool_handle(&args->queryPool);
2652     /* skip args->query */
2653 }
2654 
vn_encode_vkCmdEndQuery_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdEndQuery * args)2655 static inline void vn_encode_vkCmdEndQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQuery *args)
2656 {
2657     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQuery_EXT});
2658 
2659     /* skip args->commandBuffer */
2660     /* skip args->queryPool */
2661     /* skip args->query */
2662 }
2663 
vn_decode_vkCmdResetQueryPool_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdResetQueryPool * args)2664 static inline void vn_decode_vkCmdResetQueryPool_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetQueryPool *args)
2665 {
2666     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2667     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
2668     vn_decode_uint32_t(dec, &args->firstQuery);
2669     vn_decode_uint32_t(dec, &args->queryCount);
2670 }
2671 
vn_replace_vkCmdResetQueryPool_args_handle(struct vn_command_vkCmdResetQueryPool * args)2672 static inline void vn_replace_vkCmdResetQueryPool_args_handle(struct vn_command_vkCmdResetQueryPool *args)
2673 {
2674     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2675     vn_replace_VkQueryPool_handle(&args->queryPool);
2676     /* skip args->firstQuery */
2677     /* skip args->queryCount */
2678 }
2679 
vn_encode_vkCmdResetQueryPool_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdResetQueryPool * args)2680 static inline void vn_encode_vkCmdResetQueryPool_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetQueryPool *args)
2681 {
2682     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT});
2683 
2684     /* skip args->commandBuffer */
2685     /* skip args->queryPool */
2686     /* skip args->firstQuery */
2687     /* skip args->queryCount */
2688 }
2689 
vn_decode_vkCmdWriteTimestamp_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdWriteTimestamp * args)2690 static inline void vn_decode_vkCmdWriteTimestamp_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWriteTimestamp *args)
2691 {
2692     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2693     vn_decode_VkPipelineStageFlagBits(dec, &args->pipelineStage);
2694     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
2695     vn_decode_uint32_t(dec, &args->query);
2696 }
2697 
vn_replace_vkCmdWriteTimestamp_args_handle(struct vn_command_vkCmdWriteTimestamp * args)2698 static inline void vn_replace_vkCmdWriteTimestamp_args_handle(struct vn_command_vkCmdWriteTimestamp *args)
2699 {
2700     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2701     /* skip args->pipelineStage */
2702     vn_replace_VkQueryPool_handle(&args->queryPool);
2703     /* skip args->query */
2704 }
2705 
vn_encode_vkCmdWriteTimestamp_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdWriteTimestamp * args)2706 static inline void vn_encode_vkCmdWriteTimestamp_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWriteTimestamp *args)
2707 {
2708     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT});
2709 
2710     /* skip args->commandBuffer */
2711     /* skip args->pipelineStage */
2712     /* skip args->queryPool */
2713     /* skip args->query */
2714 }
2715 
vn_decode_vkCmdCopyQueryPoolResults_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdCopyQueryPoolResults * args)2716 static inline void vn_decode_vkCmdCopyQueryPoolResults_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyQueryPoolResults *args)
2717 {
2718     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2719     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
2720     vn_decode_uint32_t(dec, &args->firstQuery);
2721     vn_decode_uint32_t(dec, &args->queryCount);
2722     vn_decode_VkBuffer_lookup(dec, &args->dstBuffer);
2723     vn_decode_VkDeviceSize(dec, &args->dstOffset);
2724     vn_decode_VkDeviceSize(dec, &args->stride);
2725     vn_decode_VkFlags(dec, &args->flags);
2726 }
2727 
vn_replace_vkCmdCopyQueryPoolResults_args_handle(struct vn_command_vkCmdCopyQueryPoolResults * args)2728 static inline void vn_replace_vkCmdCopyQueryPoolResults_args_handle(struct vn_command_vkCmdCopyQueryPoolResults *args)
2729 {
2730     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2731     vn_replace_VkQueryPool_handle(&args->queryPool);
2732     /* skip args->firstQuery */
2733     /* skip args->queryCount */
2734     vn_replace_VkBuffer_handle(&args->dstBuffer);
2735     /* skip args->dstOffset */
2736     /* skip args->stride */
2737     /* skip args->flags */
2738 }
2739 
vn_encode_vkCmdCopyQueryPoolResults_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdCopyQueryPoolResults * args)2740 static inline void vn_encode_vkCmdCopyQueryPoolResults_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyQueryPoolResults *args)
2741 {
2742     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT});
2743 
2744     /* skip args->commandBuffer */
2745     /* skip args->queryPool */
2746     /* skip args->firstQuery */
2747     /* skip args->queryCount */
2748     /* skip args->dstBuffer */
2749     /* skip args->dstOffset */
2750     /* skip args->stride */
2751     /* skip args->flags */
2752 }
2753 
vn_decode_vkCmdPushConstants_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdPushConstants * args)2754 static inline void vn_decode_vkCmdPushConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPushConstants *args)
2755 {
2756     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2757     vn_decode_VkPipelineLayout_lookup(dec, &args->layout);
2758     vn_decode_VkFlags(dec, &args->stageFlags);
2759     vn_decode_uint32_t(dec, &args->offset);
2760     vn_decode_uint32_t(dec, &args->size);
2761     if (vn_peek_array_size(dec)) {
2762         const size_t array_size = vn_decode_array_size(dec, args->size);
2763         args->pValues = vn_cs_decoder_alloc_temp(dec, array_size);
2764         if (!args->pValues) return;
2765         vn_decode_blob_array(dec, (void *)args->pValues, array_size);
2766     } else {
2767         vn_decode_array_size(dec, args->size);
2768         args->pValues = NULL;
2769     }
2770 }
2771 
vn_replace_vkCmdPushConstants_args_handle(struct vn_command_vkCmdPushConstants * args)2772 static inline void vn_replace_vkCmdPushConstants_args_handle(struct vn_command_vkCmdPushConstants *args)
2773 {
2774     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2775     vn_replace_VkPipelineLayout_handle(&args->layout);
2776     /* skip args->stageFlags */
2777     /* skip args->offset */
2778     /* skip args->size */
2779     /* skip args->pValues */
2780 }
2781 
vn_encode_vkCmdPushConstants_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdPushConstants * args)2782 static inline void vn_encode_vkCmdPushConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPushConstants *args)
2783 {
2784     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPushConstants_EXT});
2785 
2786     /* skip args->commandBuffer */
2787     /* skip args->layout */
2788     /* skip args->stageFlags */
2789     /* skip args->offset */
2790     /* skip args->size */
2791     /* skip args->pValues */
2792 }
2793 
vn_decode_vkCmdBeginRenderPass_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBeginRenderPass * args)2794 static inline void vn_decode_vkCmdBeginRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass *args)
2795 {
2796     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2797     if (vn_decode_simple_pointer(dec)) {
2798         args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin));
2799         if (!args->pRenderPassBegin) return;
2800         vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin);
2801     } else {
2802         args->pRenderPassBegin = NULL;
2803         vn_cs_decoder_set_fatal(dec);
2804     }
2805     vn_decode_VkSubpassContents(dec, &args->contents);
2806 }
2807 
vn_replace_vkCmdBeginRenderPass_args_handle(struct vn_command_vkCmdBeginRenderPass * args)2808 static inline void vn_replace_vkCmdBeginRenderPass_args_handle(struct vn_command_vkCmdBeginRenderPass *args)
2809 {
2810     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2811     if (args->pRenderPassBegin)
2812         vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin);
2813     /* skip args->contents */
2814 }
2815 
vn_encode_vkCmdBeginRenderPass_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBeginRenderPass * args)2816 static inline void vn_encode_vkCmdBeginRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass *args)
2817 {
2818     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT});
2819 
2820     /* skip args->commandBuffer */
2821     /* skip args->pRenderPassBegin */
2822     /* skip args->contents */
2823 }
2824 
vn_decode_vkCmdNextSubpass_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdNextSubpass * args)2825 static inline void vn_decode_vkCmdNextSubpass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass *args)
2826 {
2827     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2828     vn_decode_VkSubpassContents(dec, &args->contents);
2829 }
2830 
vn_replace_vkCmdNextSubpass_args_handle(struct vn_command_vkCmdNextSubpass * args)2831 static inline void vn_replace_vkCmdNextSubpass_args_handle(struct vn_command_vkCmdNextSubpass *args)
2832 {
2833     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2834     /* skip args->contents */
2835 }
2836 
vn_encode_vkCmdNextSubpass_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdNextSubpass * args)2837 static inline void vn_encode_vkCmdNextSubpass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass *args)
2838 {
2839     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass_EXT});
2840 
2841     /* skip args->commandBuffer */
2842     /* skip args->contents */
2843 }
2844 
vn_decode_vkCmdEndRenderPass_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdEndRenderPass * args)2845 static inline void vn_decode_vkCmdEndRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass *args)
2846 {
2847     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2848 }
2849 
vn_replace_vkCmdEndRenderPass_args_handle(struct vn_command_vkCmdEndRenderPass * args)2850 static inline void vn_replace_vkCmdEndRenderPass_args_handle(struct vn_command_vkCmdEndRenderPass *args)
2851 {
2852     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2853 }
2854 
vn_encode_vkCmdEndRenderPass_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdEndRenderPass * args)2855 static inline void vn_encode_vkCmdEndRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass *args)
2856 {
2857     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT});
2858 
2859     /* skip args->commandBuffer */
2860 }
2861 
vn_decode_vkCmdExecuteCommands_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdExecuteCommands * args)2862 static inline void vn_decode_vkCmdExecuteCommands_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdExecuteCommands *args)
2863 {
2864     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2865     vn_decode_uint32_t(dec, &args->commandBufferCount);
2866     if (vn_peek_array_size(dec)) {
2867         const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount);
2868         args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count);
2869         if (!args->pCommandBuffers) return;
2870         for (uint32_t i = 0; i < iter_count; i++)
2871             vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]);
2872     } else {
2873         vn_decode_array_size(dec, args->commandBufferCount);
2874         args->pCommandBuffers = NULL;
2875     }
2876 }
2877 
vn_replace_vkCmdExecuteCommands_args_handle(struct vn_command_vkCmdExecuteCommands * args)2878 static inline void vn_replace_vkCmdExecuteCommands_args_handle(struct vn_command_vkCmdExecuteCommands *args)
2879 {
2880     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2881     /* skip args->commandBufferCount */
2882     if (args->pCommandBuffers) {
2883        for (uint32_t i = 0; i < args->commandBufferCount; i++)
2884             vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]);
2885     }
2886 }
2887 
vn_encode_vkCmdExecuteCommands_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdExecuteCommands * args)2888 static inline void vn_encode_vkCmdExecuteCommands_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdExecuteCommands *args)
2889 {
2890     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT});
2891 
2892     /* skip args->commandBuffer */
2893     /* skip args->commandBufferCount */
2894     /* skip args->pCommandBuffers */
2895 }
2896 
vn_decode_vkCmdSetDeviceMask_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdSetDeviceMask * args)2897 static inline void vn_decode_vkCmdSetDeviceMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDeviceMask *args)
2898 {
2899     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2900     vn_decode_uint32_t(dec, &args->deviceMask);
2901 }
2902 
vn_replace_vkCmdSetDeviceMask_args_handle(struct vn_command_vkCmdSetDeviceMask * args)2903 static inline void vn_replace_vkCmdSetDeviceMask_args_handle(struct vn_command_vkCmdSetDeviceMask *args)
2904 {
2905     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2906     /* skip args->deviceMask */
2907 }
2908 
vn_encode_vkCmdSetDeviceMask_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdSetDeviceMask * args)2909 static inline void vn_encode_vkCmdSetDeviceMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDeviceMask *args)
2910 {
2911     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT});
2912 
2913     /* skip args->commandBuffer */
2914     /* skip args->deviceMask */
2915 }
2916 
vn_decode_vkCmdDispatchBase_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDispatchBase * args)2917 static inline void vn_decode_vkCmdDispatchBase_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchBase *args)
2918 {
2919     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2920     vn_decode_uint32_t(dec, &args->baseGroupX);
2921     vn_decode_uint32_t(dec, &args->baseGroupY);
2922     vn_decode_uint32_t(dec, &args->baseGroupZ);
2923     vn_decode_uint32_t(dec, &args->groupCountX);
2924     vn_decode_uint32_t(dec, &args->groupCountY);
2925     vn_decode_uint32_t(dec, &args->groupCountZ);
2926 }
2927 
vn_replace_vkCmdDispatchBase_args_handle(struct vn_command_vkCmdDispatchBase * args)2928 static inline void vn_replace_vkCmdDispatchBase_args_handle(struct vn_command_vkCmdDispatchBase *args)
2929 {
2930     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2931     /* skip args->baseGroupX */
2932     /* skip args->baseGroupY */
2933     /* skip args->baseGroupZ */
2934     /* skip args->groupCountX */
2935     /* skip args->groupCountY */
2936     /* skip args->groupCountZ */
2937 }
2938 
vn_encode_vkCmdDispatchBase_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDispatchBase * args)2939 static inline void vn_encode_vkCmdDispatchBase_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchBase *args)
2940 {
2941     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchBase_EXT});
2942 
2943     /* skip args->commandBuffer */
2944     /* skip args->baseGroupX */
2945     /* skip args->baseGroupY */
2946     /* skip args->baseGroupZ */
2947     /* skip args->groupCountX */
2948     /* skip args->groupCountY */
2949     /* skip args->groupCountZ */
2950 }
2951 
vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBeginRenderPass2 * args)2952 static inline void vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass2 *args)
2953 {
2954     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2955     if (vn_decode_simple_pointer(dec)) {
2956         args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin));
2957         if (!args->pRenderPassBegin) return;
2958         vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin);
2959     } else {
2960         args->pRenderPassBegin = NULL;
2961         vn_cs_decoder_set_fatal(dec);
2962     }
2963     if (vn_decode_simple_pointer(dec)) {
2964         args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo));
2965         if (!args->pSubpassBeginInfo) return;
2966         vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo);
2967     } else {
2968         args->pSubpassBeginInfo = NULL;
2969         vn_cs_decoder_set_fatal(dec);
2970     }
2971 }
2972 
vn_replace_vkCmdBeginRenderPass2_args_handle(struct vn_command_vkCmdBeginRenderPass2 * args)2973 static inline void vn_replace_vkCmdBeginRenderPass2_args_handle(struct vn_command_vkCmdBeginRenderPass2 *args)
2974 {
2975     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
2976     if (args->pRenderPassBegin)
2977         vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin);
2978     if (args->pSubpassBeginInfo)
2979         vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo);
2980 }
2981 
vn_encode_vkCmdBeginRenderPass2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBeginRenderPass2 * args)2982 static inline void vn_encode_vkCmdBeginRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass2 *args)
2983 {
2984     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT});
2985 
2986     /* skip args->commandBuffer */
2987     /* skip args->pRenderPassBegin */
2988     /* skip args->pSubpassBeginInfo */
2989 }
2990 
vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdNextSubpass2 * args)2991 static inline void vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass2 *args)
2992 {
2993     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
2994     if (vn_decode_simple_pointer(dec)) {
2995         args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo));
2996         if (!args->pSubpassBeginInfo) return;
2997         vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo);
2998     } else {
2999         args->pSubpassBeginInfo = NULL;
3000         vn_cs_decoder_set_fatal(dec);
3001     }
3002     if (vn_decode_simple_pointer(dec)) {
3003         args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo));
3004         if (!args->pSubpassEndInfo) return;
3005         vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo);
3006     } else {
3007         args->pSubpassEndInfo = NULL;
3008         vn_cs_decoder_set_fatal(dec);
3009     }
3010 }
3011 
vn_replace_vkCmdNextSubpass2_args_handle(struct vn_command_vkCmdNextSubpass2 * args)3012 static inline void vn_replace_vkCmdNextSubpass2_args_handle(struct vn_command_vkCmdNextSubpass2 *args)
3013 {
3014     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3015     if (args->pSubpassBeginInfo)
3016         vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo);
3017     if (args->pSubpassEndInfo)
3018         vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo);
3019 }
3020 
vn_encode_vkCmdNextSubpass2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdNextSubpass2 * args)3021 static inline void vn_encode_vkCmdNextSubpass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass2 *args)
3022 {
3023     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT});
3024 
3025     /* skip args->commandBuffer */
3026     /* skip args->pSubpassBeginInfo */
3027     /* skip args->pSubpassEndInfo */
3028 }
3029 
vn_decode_vkCmdEndRenderPass2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdEndRenderPass2 * args)3030 static inline void vn_decode_vkCmdEndRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass2 *args)
3031 {
3032     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3033     if (vn_decode_simple_pointer(dec)) {
3034         args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo));
3035         if (!args->pSubpassEndInfo) return;
3036         vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo);
3037     } else {
3038         args->pSubpassEndInfo = NULL;
3039         vn_cs_decoder_set_fatal(dec);
3040     }
3041 }
3042 
vn_replace_vkCmdEndRenderPass2_args_handle(struct vn_command_vkCmdEndRenderPass2 * args)3043 static inline void vn_replace_vkCmdEndRenderPass2_args_handle(struct vn_command_vkCmdEndRenderPass2 *args)
3044 {
3045     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3046     if (args->pSubpassEndInfo)
3047         vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo);
3048 }
3049 
vn_encode_vkCmdEndRenderPass2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdEndRenderPass2 * args)3050 static inline void vn_encode_vkCmdEndRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass2 *args)
3051 {
3052     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT});
3053 
3054     /* skip args->commandBuffer */
3055     /* skip args->pSubpassEndInfo */
3056 }
3057 
vn_decode_vkCmdDrawIndirectCount_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndirectCount * args)3058 static inline void vn_decode_vkCmdDrawIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectCount *args)
3059 {
3060     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3061     vn_decode_VkBuffer_lookup(dec, &args->buffer);
3062     vn_decode_VkDeviceSize(dec, &args->offset);
3063     vn_decode_VkBuffer_lookup(dec, &args->countBuffer);
3064     vn_decode_VkDeviceSize(dec, &args->countBufferOffset);
3065     vn_decode_uint32_t(dec, &args->maxDrawCount);
3066     vn_decode_uint32_t(dec, &args->stride);
3067 }
3068 
vn_replace_vkCmdDrawIndirectCount_args_handle(struct vn_command_vkCmdDrawIndirectCount * args)3069 static inline void vn_replace_vkCmdDrawIndirectCount_args_handle(struct vn_command_vkCmdDrawIndirectCount *args)
3070 {
3071     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3072     vn_replace_VkBuffer_handle(&args->buffer);
3073     /* skip args->offset */
3074     vn_replace_VkBuffer_handle(&args->countBuffer);
3075     /* skip args->countBufferOffset */
3076     /* skip args->maxDrawCount */
3077     /* skip args->stride */
3078 }
3079 
vn_encode_vkCmdDrawIndirectCount_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndirectCount * args)3080 static inline void vn_encode_vkCmdDrawIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectCount *args)
3081 {
3082     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT});
3083 
3084     /* skip args->commandBuffer */
3085     /* skip args->buffer */
3086     /* skip args->offset */
3087     /* skip args->countBuffer */
3088     /* skip args->countBufferOffset */
3089     /* skip args->maxDrawCount */
3090     /* skip args->stride */
3091 }
3092 
vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndexedIndirectCount * args)3093 static inline void vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirectCount *args)
3094 {
3095     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3096     vn_decode_VkBuffer_lookup(dec, &args->buffer);
3097     vn_decode_VkDeviceSize(dec, &args->offset);
3098     vn_decode_VkBuffer_lookup(dec, &args->countBuffer);
3099     vn_decode_VkDeviceSize(dec, &args->countBufferOffset);
3100     vn_decode_uint32_t(dec, &args->maxDrawCount);
3101     vn_decode_uint32_t(dec, &args->stride);
3102 }
3103 
vn_replace_vkCmdDrawIndexedIndirectCount_args_handle(struct vn_command_vkCmdDrawIndexedIndirectCount * args)3104 static inline void vn_replace_vkCmdDrawIndexedIndirectCount_args_handle(struct vn_command_vkCmdDrawIndexedIndirectCount *args)
3105 {
3106     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3107     vn_replace_VkBuffer_handle(&args->buffer);
3108     /* skip args->offset */
3109     vn_replace_VkBuffer_handle(&args->countBuffer);
3110     /* skip args->countBufferOffset */
3111     /* skip args->maxDrawCount */
3112     /* skip args->stride */
3113 }
3114 
vn_encode_vkCmdDrawIndexedIndirectCount_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndexedIndirectCount * args)3115 static inline void vn_encode_vkCmdDrawIndexedIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirectCount *args)
3116 {
3117     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT});
3118 
3119     /* skip args->commandBuffer */
3120     /* skip args->buffer */
3121     /* skip args->offset */
3122     /* skip args->countBuffer */
3123     /* skip args->countBufferOffset */
3124     /* skip args->maxDrawCount */
3125     /* skip args->stride */
3126 }
3127 
vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBindTransformFeedbackBuffersEXT * args)3128 static inline void vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args)
3129 {
3130     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3131     vn_decode_uint32_t(dec, &args->firstBinding);
3132     vn_decode_uint32_t(dec, &args->bindingCount);
3133     if (vn_peek_array_size(dec)) {
3134         const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount);
3135         args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count);
3136         if (!args->pBuffers) return;
3137         for (uint32_t i = 0; i < iter_count; i++)
3138             vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]);
3139     } else {
3140         vn_decode_array_size(dec, args->bindingCount);
3141         args->pBuffers = NULL;
3142     }
3143     if (vn_peek_array_size(dec)) {
3144         const size_t array_size = vn_decode_array_size(dec, args->bindingCount);
3145         args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size);
3146         if (!args->pOffsets) return;
3147         vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size);
3148     } else {
3149         vn_decode_array_size(dec, args->bindingCount);
3150         args->pOffsets = NULL;
3151     }
3152     if (vn_peek_array_size(dec)) {
3153         const size_t array_size = vn_decode_array_size(dec, args->bindingCount);
3154         args->pSizes = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSizes) * array_size);
3155         if (!args->pSizes) return;
3156         vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pSizes, array_size);
3157     } else {
3158         vn_decode_array_size_unchecked(dec);
3159         args->pSizes = NULL;
3160     }
3161 }
3162 
vn_replace_vkCmdBindTransformFeedbackBuffersEXT_args_handle(struct vn_command_vkCmdBindTransformFeedbackBuffersEXT * args)3163 static inline void vn_replace_vkCmdBindTransformFeedbackBuffersEXT_args_handle(struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args)
3164 {
3165     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3166     /* skip args->firstBinding */
3167     /* skip args->bindingCount */
3168     if (args->pBuffers) {
3169        for (uint32_t i = 0; i < args->bindingCount; i++)
3170             vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]);
3171     }
3172     /* skip args->pOffsets */
3173     /* skip args->pSizes */
3174 }
3175 
vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBindTransformFeedbackBuffersEXT * args)3176 static inline void vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args)
3177 {
3178     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT});
3179 
3180     /* skip args->commandBuffer */
3181     /* skip args->firstBinding */
3182     /* skip args->bindingCount */
3183     /* skip args->pBuffers */
3184     /* skip args->pOffsets */
3185     /* skip args->pSizes */
3186 }
3187 
vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBeginTransformFeedbackEXT * args)3188 static inline void vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginTransformFeedbackEXT *args)
3189 {
3190     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3191     vn_decode_uint32_t(dec, &args->firstCounterBuffer);
3192     vn_decode_uint32_t(dec, &args->counterBufferCount);
3193     if (vn_peek_array_size(dec)) {
3194         const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount);
3195         args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count);
3196         if (!args->pCounterBuffers) return;
3197         for (uint32_t i = 0; i < iter_count; i++)
3198             vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]);
3199     } else {
3200         vn_decode_array_size_unchecked(dec);
3201         args->pCounterBuffers = NULL;
3202     }
3203     if (vn_peek_array_size(dec)) {
3204         const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount);
3205         args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size);
3206         if (!args->pCounterBufferOffsets) return;
3207         vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size);
3208     } else {
3209         vn_decode_array_size_unchecked(dec);
3210         args->pCounterBufferOffsets = NULL;
3211     }
3212 }
3213 
vn_replace_vkCmdBeginTransformFeedbackEXT_args_handle(struct vn_command_vkCmdBeginTransformFeedbackEXT * args)3214 static inline void vn_replace_vkCmdBeginTransformFeedbackEXT_args_handle(struct vn_command_vkCmdBeginTransformFeedbackEXT *args)
3215 {
3216     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3217     /* skip args->firstCounterBuffer */
3218     /* skip args->counterBufferCount */
3219     if (args->pCounterBuffers) {
3220        for (uint32_t i = 0; i < args->counterBufferCount; i++)
3221             vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]);
3222     }
3223     /* skip args->pCounterBufferOffsets */
3224 }
3225 
vn_encode_vkCmdBeginTransformFeedbackEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBeginTransformFeedbackEXT * args)3226 static inline void vn_encode_vkCmdBeginTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginTransformFeedbackEXT *args)
3227 {
3228     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT});
3229 
3230     /* skip args->commandBuffer */
3231     /* skip args->firstCounterBuffer */
3232     /* skip args->counterBufferCount */
3233     /* skip args->pCounterBuffers */
3234     /* skip args->pCounterBufferOffsets */
3235 }
3236 
vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdEndTransformFeedbackEXT * args)3237 static inline void vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndTransformFeedbackEXT *args)
3238 {
3239     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3240     vn_decode_uint32_t(dec, &args->firstCounterBuffer);
3241     vn_decode_uint32_t(dec, &args->counterBufferCount);
3242     if (vn_peek_array_size(dec)) {
3243         const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount);
3244         args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count);
3245         if (!args->pCounterBuffers) return;
3246         for (uint32_t i = 0; i < iter_count; i++)
3247             vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]);
3248     } else {
3249         vn_decode_array_size_unchecked(dec);
3250         args->pCounterBuffers = NULL;
3251     }
3252     if (vn_peek_array_size(dec)) {
3253         const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount);
3254         args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size);
3255         if (!args->pCounterBufferOffsets) return;
3256         vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size);
3257     } else {
3258         vn_decode_array_size_unchecked(dec);
3259         args->pCounterBufferOffsets = NULL;
3260     }
3261 }
3262 
vn_replace_vkCmdEndTransformFeedbackEXT_args_handle(struct vn_command_vkCmdEndTransformFeedbackEXT * args)3263 static inline void vn_replace_vkCmdEndTransformFeedbackEXT_args_handle(struct vn_command_vkCmdEndTransformFeedbackEXT *args)
3264 {
3265     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3266     /* skip args->firstCounterBuffer */
3267     /* skip args->counterBufferCount */
3268     if (args->pCounterBuffers) {
3269        for (uint32_t i = 0; i < args->counterBufferCount; i++)
3270             vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]);
3271     }
3272     /* skip args->pCounterBufferOffsets */
3273 }
3274 
vn_encode_vkCmdEndTransformFeedbackEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdEndTransformFeedbackEXT * args)3275 static inline void vn_encode_vkCmdEndTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndTransformFeedbackEXT *args)
3276 {
3277     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT});
3278 
3279     /* skip args->commandBuffer */
3280     /* skip args->firstCounterBuffer */
3281     /* skip args->counterBufferCount */
3282     /* skip args->pCounterBuffers */
3283     /* skip args->pCounterBufferOffsets */
3284 }
3285 
vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdBeginQueryIndexedEXT * args)3286 static inline void vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQueryIndexedEXT *args)
3287 {
3288     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3289     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
3290     vn_decode_uint32_t(dec, &args->query);
3291     vn_decode_VkFlags(dec, &args->flags);
3292     vn_decode_uint32_t(dec, &args->index);
3293 }
3294 
vn_replace_vkCmdBeginQueryIndexedEXT_args_handle(struct vn_command_vkCmdBeginQueryIndexedEXT * args)3295 static inline void vn_replace_vkCmdBeginQueryIndexedEXT_args_handle(struct vn_command_vkCmdBeginQueryIndexedEXT *args)
3296 {
3297     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3298     vn_replace_VkQueryPool_handle(&args->queryPool);
3299     /* skip args->query */
3300     /* skip args->flags */
3301     /* skip args->index */
3302 }
3303 
vn_encode_vkCmdBeginQueryIndexedEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdBeginQueryIndexedEXT * args)3304 static inline void vn_encode_vkCmdBeginQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQueryIndexedEXT *args)
3305 {
3306     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT});
3307 
3308     /* skip args->commandBuffer */
3309     /* skip args->queryPool */
3310     /* skip args->query */
3311     /* skip args->flags */
3312     /* skip args->index */
3313 }
3314 
vn_decode_vkCmdEndQueryIndexedEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdEndQueryIndexedEXT * args)3315 static inline void vn_decode_vkCmdEndQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQueryIndexedEXT *args)
3316 {
3317     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3318     vn_decode_VkQueryPool_lookup(dec, &args->queryPool);
3319     vn_decode_uint32_t(dec, &args->query);
3320     vn_decode_uint32_t(dec, &args->index);
3321 }
3322 
vn_replace_vkCmdEndQueryIndexedEXT_args_handle(struct vn_command_vkCmdEndQueryIndexedEXT * args)3323 static inline void vn_replace_vkCmdEndQueryIndexedEXT_args_handle(struct vn_command_vkCmdEndQueryIndexedEXT *args)
3324 {
3325     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3326     vn_replace_VkQueryPool_handle(&args->queryPool);
3327     /* skip args->query */
3328     /* skip args->index */
3329 }
3330 
vn_encode_vkCmdEndQueryIndexedEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdEndQueryIndexedEXT * args)3331 static inline void vn_encode_vkCmdEndQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQueryIndexedEXT *args)
3332 {
3333     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT});
3334 
3335     /* skip args->commandBuffer */
3336     /* skip args->queryPool */
3337     /* skip args->query */
3338     /* skip args->index */
3339 }
3340 
vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCmdDrawIndirectByteCountEXT * args)3341 static inline void vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectByteCountEXT *args)
3342 {
3343     vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
3344     vn_decode_uint32_t(dec, &args->instanceCount);
3345     vn_decode_uint32_t(dec, &args->firstInstance);
3346     vn_decode_VkBuffer_lookup(dec, &args->counterBuffer);
3347     vn_decode_VkDeviceSize(dec, &args->counterBufferOffset);
3348     vn_decode_uint32_t(dec, &args->counterOffset);
3349     vn_decode_uint32_t(dec, &args->vertexStride);
3350 }
3351 
vn_replace_vkCmdDrawIndirectByteCountEXT_args_handle(struct vn_command_vkCmdDrawIndirectByteCountEXT * args)3352 static inline void vn_replace_vkCmdDrawIndirectByteCountEXT_args_handle(struct vn_command_vkCmdDrawIndirectByteCountEXT *args)
3353 {
3354     vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
3355     /* skip args->instanceCount */
3356     /* skip args->firstInstance */
3357     vn_replace_VkBuffer_handle(&args->counterBuffer);
3358     /* skip args->counterBufferOffset */
3359     /* skip args->counterOffset */
3360     /* skip args->vertexStride */
3361 }
3362 
vn_encode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCmdDrawIndirectByteCountEXT * args)3363 static inline void vn_encode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectByteCountEXT *args)
3364 {
3365     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT});
3366 
3367     /* skip args->commandBuffer */
3368     /* skip args->instanceCount */
3369     /* skip args->firstInstance */
3370     /* skip args->counterBuffer */
3371     /* skip args->counterBufferOffset */
3372     /* skip args->counterOffset */
3373     /* skip args->vertexStride */
3374 }
3375 
vn_dispatch_vkAllocateCommandBuffers(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3376 static inline void vn_dispatch_vkAllocateCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3377 {
3378     struct vn_command_vkAllocateCommandBuffers args;
3379 
3380     if (!ctx->dispatch_vkAllocateCommandBuffers) {
3381         vn_cs_decoder_set_fatal(ctx->decoder);
3382         return;
3383     }
3384 
3385     vn_decode_vkAllocateCommandBuffers_args_temp(ctx->decoder, &args);
3386     if (!args.device) {
3387         vn_cs_decoder_set_fatal(ctx->decoder);
3388         return;
3389     }
3390 
3391     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3392         ctx->dispatch_vkAllocateCommandBuffers(ctx, &args);
3393 
3394 #ifdef DEBUG
3395     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
3396         vn_dispatch_debug_log(ctx, "vkAllocateCommandBuffers returned %d", args.ret);
3397 #endif
3398 
3399     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3400        vn_encode_vkAllocateCommandBuffers_reply(ctx->encoder, &args);
3401 
3402     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3403 }
3404 
vn_dispatch_vkFreeCommandBuffers(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3405 static inline void vn_dispatch_vkFreeCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3406 {
3407     struct vn_command_vkFreeCommandBuffers args;
3408 
3409     if (!ctx->dispatch_vkFreeCommandBuffers) {
3410         vn_cs_decoder_set_fatal(ctx->decoder);
3411         return;
3412     }
3413 
3414     vn_decode_vkFreeCommandBuffers_args_temp(ctx->decoder, &args);
3415     if (!args.device) {
3416         vn_cs_decoder_set_fatal(ctx->decoder);
3417         return;
3418     }
3419 
3420     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3421         ctx->dispatch_vkFreeCommandBuffers(ctx, &args);
3422 
3423 
3424     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3425        vn_encode_vkFreeCommandBuffers_reply(ctx->encoder, &args);
3426 
3427     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3428 }
3429 
vn_dispatch_vkBeginCommandBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3430 static inline void vn_dispatch_vkBeginCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3431 {
3432     struct vn_command_vkBeginCommandBuffer args;
3433 
3434     if (!ctx->dispatch_vkBeginCommandBuffer) {
3435         vn_cs_decoder_set_fatal(ctx->decoder);
3436         return;
3437     }
3438 
3439     vn_decode_vkBeginCommandBuffer_args_temp(ctx->decoder, &args);
3440     if (!args.commandBuffer) {
3441         vn_cs_decoder_set_fatal(ctx->decoder);
3442         return;
3443     }
3444 
3445     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3446         ctx->dispatch_vkBeginCommandBuffer(ctx, &args);
3447 
3448 #ifdef DEBUG
3449     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
3450         vn_dispatch_debug_log(ctx, "vkBeginCommandBuffer returned %d", args.ret);
3451 #endif
3452 
3453     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3454        vn_encode_vkBeginCommandBuffer_reply(ctx->encoder, &args);
3455 
3456     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3457 }
3458 
vn_dispatch_vkEndCommandBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3459 static inline void vn_dispatch_vkEndCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3460 {
3461     struct vn_command_vkEndCommandBuffer args;
3462 
3463     if (!ctx->dispatch_vkEndCommandBuffer) {
3464         vn_cs_decoder_set_fatal(ctx->decoder);
3465         return;
3466     }
3467 
3468     vn_decode_vkEndCommandBuffer_args_temp(ctx->decoder, &args);
3469     if (!args.commandBuffer) {
3470         vn_cs_decoder_set_fatal(ctx->decoder);
3471         return;
3472     }
3473 
3474     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3475         ctx->dispatch_vkEndCommandBuffer(ctx, &args);
3476 
3477 #ifdef DEBUG
3478     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
3479         vn_dispatch_debug_log(ctx, "vkEndCommandBuffer returned %d", args.ret);
3480 #endif
3481 
3482     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3483        vn_encode_vkEndCommandBuffer_reply(ctx->encoder, &args);
3484 
3485     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3486 }
3487 
vn_dispatch_vkResetCommandBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3488 static inline void vn_dispatch_vkResetCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3489 {
3490     struct vn_command_vkResetCommandBuffer args;
3491 
3492     if (!ctx->dispatch_vkResetCommandBuffer) {
3493         vn_cs_decoder_set_fatal(ctx->decoder);
3494         return;
3495     }
3496 
3497     vn_decode_vkResetCommandBuffer_args_temp(ctx->decoder, &args);
3498     if (!args.commandBuffer) {
3499         vn_cs_decoder_set_fatal(ctx->decoder);
3500         return;
3501     }
3502 
3503     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3504         ctx->dispatch_vkResetCommandBuffer(ctx, &args);
3505 
3506 #ifdef DEBUG
3507     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
3508         vn_dispatch_debug_log(ctx, "vkResetCommandBuffer returned %d", args.ret);
3509 #endif
3510 
3511     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3512        vn_encode_vkResetCommandBuffer_reply(ctx->encoder, &args);
3513 
3514     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3515 }
3516 
vn_dispatch_vkCmdBindPipeline(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3517 static inline void vn_dispatch_vkCmdBindPipeline(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3518 {
3519     struct vn_command_vkCmdBindPipeline args;
3520 
3521     if (!ctx->dispatch_vkCmdBindPipeline) {
3522         vn_cs_decoder_set_fatal(ctx->decoder);
3523         return;
3524     }
3525 
3526     vn_decode_vkCmdBindPipeline_args_temp(ctx->decoder, &args);
3527     if (!args.commandBuffer) {
3528         vn_cs_decoder_set_fatal(ctx->decoder);
3529         return;
3530     }
3531 
3532     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3533         ctx->dispatch_vkCmdBindPipeline(ctx, &args);
3534 
3535 
3536     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3537        vn_encode_vkCmdBindPipeline_reply(ctx->encoder, &args);
3538 
3539     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3540 }
3541 
vn_dispatch_vkCmdSetViewport(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3542 static inline void vn_dispatch_vkCmdSetViewport(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3543 {
3544     struct vn_command_vkCmdSetViewport args;
3545 
3546     if (!ctx->dispatch_vkCmdSetViewport) {
3547         vn_cs_decoder_set_fatal(ctx->decoder);
3548         return;
3549     }
3550 
3551     vn_decode_vkCmdSetViewport_args_temp(ctx->decoder, &args);
3552     if (!args.commandBuffer) {
3553         vn_cs_decoder_set_fatal(ctx->decoder);
3554         return;
3555     }
3556 
3557     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3558         ctx->dispatch_vkCmdSetViewport(ctx, &args);
3559 
3560 
3561     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3562        vn_encode_vkCmdSetViewport_reply(ctx->encoder, &args);
3563 
3564     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3565 }
3566 
vn_dispatch_vkCmdSetScissor(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3567 static inline void vn_dispatch_vkCmdSetScissor(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3568 {
3569     struct vn_command_vkCmdSetScissor args;
3570 
3571     if (!ctx->dispatch_vkCmdSetScissor) {
3572         vn_cs_decoder_set_fatal(ctx->decoder);
3573         return;
3574     }
3575 
3576     vn_decode_vkCmdSetScissor_args_temp(ctx->decoder, &args);
3577     if (!args.commandBuffer) {
3578         vn_cs_decoder_set_fatal(ctx->decoder);
3579         return;
3580     }
3581 
3582     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3583         ctx->dispatch_vkCmdSetScissor(ctx, &args);
3584 
3585 
3586     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3587        vn_encode_vkCmdSetScissor_reply(ctx->encoder, &args);
3588 
3589     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3590 }
3591 
vn_dispatch_vkCmdSetLineWidth(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3592 static inline void vn_dispatch_vkCmdSetLineWidth(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3593 {
3594     struct vn_command_vkCmdSetLineWidth args;
3595 
3596     if (!ctx->dispatch_vkCmdSetLineWidth) {
3597         vn_cs_decoder_set_fatal(ctx->decoder);
3598         return;
3599     }
3600 
3601     vn_decode_vkCmdSetLineWidth_args_temp(ctx->decoder, &args);
3602     if (!args.commandBuffer) {
3603         vn_cs_decoder_set_fatal(ctx->decoder);
3604         return;
3605     }
3606 
3607     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3608         ctx->dispatch_vkCmdSetLineWidth(ctx, &args);
3609 
3610 
3611     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3612        vn_encode_vkCmdSetLineWidth_reply(ctx->encoder, &args);
3613 
3614     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3615 }
3616 
vn_dispatch_vkCmdSetDepthBias(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3617 static inline void vn_dispatch_vkCmdSetDepthBias(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3618 {
3619     struct vn_command_vkCmdSetDepthBias args;
3620 
3621     if (!ctx->dispatch_vkCmdSetDepthBias) {
3622         vn_cs_decoder_set_fatal(ctx->decoder);
3623         return;
3624     }
3625 
3626     vn_decode_vkCmdSetDepthBias_args_temp(ctx->decoder, &args);
3627     if (!args.commandBuffer) {
3628         vn_cs_decoder_set_fatal(ctx->decoder);
3629         return;
3630     }
3631 
3632     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3633         ctx->dispatch_vkCmdSetDepthBias(ctx, &args);
3634 
3635 
3636     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3637        vn_encode_vkCmdSetDepthBias_reply(ctx->encoder, &args);
3638 
3639     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3640 }
3641 
vn_dispatch_vkCmdSetBlendConstants(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3642 static inline void vn_dispatch_vkCmdSetBlendConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3643 {
3644     struct vn_command_vkCmdSetBlendConstants args;
3645 
3646     if (!ctx->dispatch_vkCmdSetBlendConstants) {
3647         vn_cs_decoder_set_fatal(ctx->decoder);
3648         return;
3649     }
3650 
3651     vn_decode_vkCmdSetBlendConstants_args_temp(ctx->decoder, &args);
3652     if (!args.commandBuffer) {
3653         vn_cs_decoder_set_fatal(ctx->decoder);
3654         return;
3655     }
3656 
3657     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3658         ctx->dispatch_vkCmdSetBlendConstants(ctx, &args);
3659 
3660 
3661     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3662        vn_encode_vkCmdSetBlendConstants_reply(ctx->encoder, &args);
3663 
3664     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3665 }
3666 
vn_dispatch_vkCmdSetDepthBounds(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3667 static inline void vn_dispatch_vkCmdSetDepthBounds(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3668 {
3669     struct vn_command_vkCmdSetDepthBounds args;
3670 
3671     if (!ctx->dispatch_vkCmdSetDepthBounds) {
3672         vn_cs_decoder_set_fatal(ctx->decoder);
3673         return;
3674     }
3675 
3676     vn_decode_vkCmdSetDepthBounds_args_temp(ctx->decoder, &args);
3677     if (!args.commandBuffer) {
3678         vn_cs_decoder_set_fatal(ctx->decoder);
3679         return;
3680     }
3681 
3682     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3683         ctx->dispatch_vkCmdSetDepthBounds(ctx, &args);
3684 
3685 
3686     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3687        vn_encode_vkCmdSetDepthBounds_reply(ctx->encoder, &args);
3688 
3689     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3690 }
3691 
vn_dispatch_vkCmdSetStencilCompareMask(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3692 static inline void vn_dispatch_vkCmdSetStencilCompareMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3693 {
3694     struct vn_command_vkCmdSetStencilCompareMask args;
3695 
3696     if (!ctx->dispatch_vkCmdSetStencilCompareMask) {
3697         vn_cs_decoder_set_fatal(ctx->decoder);
3698         return;
3699     }
3700 
3701     vn_decode_vkCmdSetStencilCompareMask_args_temp(ctx->decoder, &args);
3702     if (!args.commandBuffer) {
3703         vn_cs_decoder_set_fatal(ctx->decoder);
3704         return;
3705     }
3706 
3707     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3708         ctx->dispatch_vkCmdSetStencilCompareMask(ctx, &args);
3709 
3710 
3711     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3712        vn_encode_vkCmdSetStencilCompareMask_reply(ctx->encoder, &args);
3713 
3714     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3715 }
3716 
vn_dispatch_vkCmdSetStencilWriteMask(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3717 static inline void vn_dispatch_vkCmdSetStencilWriteMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3718 {
3719     struct vn_command_vkCmdSetStencilWriteMask args;
3720 
3721     if (!ctx->dispatch_vkCmdSetStencilWriteMask) {
3722         vn_cs_decoder_set_fatal(ctx->decoder);
3723         return;
3724     }
3725 
3726     vn_decode_vkCmdSetStencilWriteMask_args_temp(ctx->decoder, &args);
3727     if (!args.commandBuffer) {
3728         vn_cs_decoder_set_fatal(ctx->decoder);
3729         return;
3730     }
3731 
3732     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3733         ctx->dispatch_vkCmdSetStencilWriteMask(ctx, &args);
3734 
3735 
3736     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3737        vn_encode_vkCmdSetStencilWriteMask_reply(ctx->encoder, &args);
3738 
3739     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3740 }
3741 
vn_dispatch_vkCmdSetStencilReference(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3742 static inline void vn_dispatch_vkCmdSetStencilReference(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3743 {
3744     struct vn_command_vkCmdSetStencilReference args;
3745 
3746     if (!ctx->dispatch_vkCmdSetStencilReference) {
3747         vn_cs_decoder_set_fatal(ctx->decoder);
3748         return;
3749     }
3750 
3751     vn_decode_vkCmdSetStencilReference_args_temp(ctx->decoder, &args);
3752     if (!args.commandBuffer) {
3753         vn_cs_decoder_set_fatal(ctx->decoder);
3754         return;
3755     }
3756 
3757     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3758         ctx->dispatch_vkCmdSetStencilReference(ctx, &args);
3759 
3760 
3761     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3762        vn_encode_vkCmdSetStencilReference_reply(ctx->encoder, &args);
3763 
3764     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3765 }
3766 
vn_dispatch_vkCmdBindDescriptorSets(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3767 static inline void vn_dispatch_vkCmdBindDescriptorSets(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3768 {
3769     struct vn_command_vkCmdBindDescriptorSets args;
3770 
3771     if (!ctx->dispatch_vkCmdBindDescriptorSets) {
3772         vn_cs_decoder_set_fatal(ctx->decoder);
3773         return;
3774     }
3775 
3776     vn_decode_vkCmdBindDescriptorSets_args_temp(ctx->decoder, &args);
3777     if (!args.commandBuffer) {
3778         vn_cs_decoder_set_fatal(ctx->decoder);
3779         return;
3780     }
3781 
3782     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3783         ctx->dispatch_vkCmdBindDescriptorSets(ctx, &args);
3784 
3785 
3786     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3787        vn_encode_vkCmdBindDescriptorSets_reply(ctx->encoder, &args);
3788 
3789     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3790 }
3791 
vn_dispatch_vkCmdBindIndexBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3792 static inline void vn_dispatch_vkCmdBindIndexBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3793 {
3794     struct vn_command_vkCmdBindIndexBuffer args;
3795 
3796     if (!ctx->dispatch_vkCmdBindIndexBuffer) {
3797         vn_cs_decoder_set_fatal(ctx->decoder);
3798         return;
3799     }
3800 
3801     vn_decode_vkCmdBindIndexBuffer_args_temp(ctx->decoder, &args);
3802     if (!args.commandBuffer) {
3803         vn_cs_decoder_set_fatal(ctx->decoder);
3804         return;
3805     }
3806 
3807     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3808         ctx->dispatch_vkCmdBindIndexBuffer(ctx, &args);
3809 
3810 
3811     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3812        vn_encode_vkCmdBindIndexBuffer_reply(ctx->encoder, &args);
3813 
3814     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3815 }
3816 
vn_dispatch_vkCmdBindVertexBuffers(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3817 static inline void vn_dispatch_vkCmdBindVertexBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3818 {
3819     struct vn_command_vkCmdBindVertexBuffers args;
3820 
3821     if (!ctx->dispatch_vkCmdBindVertexBuffers) {
3822         vn_cs_decoder_set_fatal(ctx->decoder);
3823         return;
3824     }
3825 
3826     vn_decode_vkCmdBindVertexBuffers_args_temp(ctx->decoder, &args);
3827     if (!args.commandBuffer) {
3828         vn_cs_decoder_set_fatal(ctx->decoder);
3829         return;
3830     }
3831 
3832     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3833         ctx->dispatch_vkCmdBindVertexBuffers(ctx, &args);
3834 
3835 
3836     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3837        vn_encode_vkCmdBindVertexBuffers_reply(ctx->encoder, &args);
3838 
3839     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3840 }
3841 
vn_dispatch_vkCmdDraw(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3842 static inline void vn_dispatch_vkCmdDraw(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3843 {
3844     struct vn_command_vkCmdDraw args;
3845 
3846     if (!ctx->dispatch_vkCmdDraw) {
3847         vn_cs_decoder_set_fatal(ctx->decoder);
3848         return;
3849     }
3850 
3851     vn_decode_vkCmdDraw_args_temp(ctx->decoder, &args);
3852     if (!args.commandBuffer) {
3853         vn_cs_decoder_set_fatal(ctx->decoder);
3854         return;
3855     }
3856 
3857     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3858         ctx->dispatch_vkCmdDraw(ctx, &args);
3859 
3860 
3861     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3862        vn_encode_vkCmdDraw_reply(ctx->encoder, &args);
3863 
3864     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3865 }
3866 
vn_dispatch_vkCmdDrawIndexed(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3867 static inline void vn_dispatch_vkCmdDrawIndexed(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3868 {
3869     struct vn_command_vkCmdDrawIndexed args;
3870 
3871     if (!ctx->dispatch_vkCmdDrawIndexed) {
3872         vn_cs_decoder_set_fatal(ctx->decoder);
3873         return;
3874     }
3875 
3876     vn_decode_vkCmdDrawIndexed_args_temp(ctx->decoder, &args);
3877     if (!args.commandBuffer) {
3878         vn_cs_decoder_set_fatal(ctx->decoder);
3879         return;
3880     }
3881 
3882     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3883         ctx->dispatch_vkCmdDrawIndexed(ctx, &args);
3884 
3885 
3886     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3887        vn_encode_vkCmdDrawIndexed_reply(ctx->encoder, &args);
3888 
3889     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3890 }
3891 
vn_dispatch_vkCmdDrawIndirect(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3892 static inline void vn_dispatch_vkCmdDrawIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3893 {
3894     struct vn_command_vkCmdDrawIndirect args;
3895 
3896     if (!ctx->dispatch_vkCmdDrawIndirect) {
3897         vn_cs_decoder_set_fatal(ctx->decoder);
3898         return;
3899     }
3900 
3901     vn_decode_vkCmdDrawIndirect_args_temp(ctx->decoder, &args);
3902     if (!args.commandBuffer) {
3903         vn_cs_decoder_set_fatal(ctx->decoder);
3904         return;
3905     }
3906 
3907     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3908         ctx->dispatch_vkCmdDrawIndirect(ctx, &args);
3909 
3910 
3911     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3912        vn_encode_vkCmdDrawIndirect_reply(ctx->encoder, &args);
3913 
3914     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3915 }
3916 
vn_dispatch_vkCmdDrawIndexedIndirect(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3917 static inline void vn_dispatch_vkCmdDrawIndexedIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3918 {
3919     struct vn_command_vkCmdDrawIndexedIndirect args;
3920 
3921     if (!ctx->dispatch_vkCmdDrawIndexedIndirect) {
3922         vn_cs_decoder_set_fatal(ctx->decoder);
3923         return;
3924     }
3925 
3926     vn_decode_vkCmdDrawIndexedIndirect_args_temp(ctx->decoder, &args);
3927     if (!args.commandBuffer) {
3928         vn_cs_decoder_set_fatal(ctx->decoder);
3929         return;
3930     }
3931 
3932     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3933         ctx->dispatch_vkCmdDrawIndexedIndirect(ctx, &args);
3934 
3935 
3936     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3937        vn_encode_vkCmdDrawIndexedIndirect_reply(ctx->encoder, &args);
3938 
3939     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3940 }
3941 
vn_dispatch_vkCmdDispatch(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3942 static inline void vn_dispatch_vkCmdDispatch(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3943 {
3944     struct vn_command_vkCmdDispatch args;
3945 
3946     if (!ctx->dispatch_vkCmdDispatch) {
3947         vn_cs_decoder_set_fatal(ctx->decoder);
3948         return;
3949     }
3950 
3951     vn_decode_vkCmdDispatch_args_temp(ctx->decoder, &args);
3952     if (!args.commandBuffer) {
3953         vn_cs_decoder_set_fatal(ctx->decoder);
3954         return;
3955     }
3956 
3957     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3958         ctx->dispatch_vkCmdDispatch(ctx, &args);
3959 
3960 
3961     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3962        vn_encode_vkCmdDispatch_reply(ctx->encoder, &args);
3963 
3964     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3965 }
3966 
vn_dispatch_vkCmdDispatchIndirect(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3967 static inline void vn_dispatch_vkCmdDispatchIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3968 {
3969     struct vn_command_vkCmdDispatchIndirect args;
3970 
3971     if (!ctx->dispatch_vkCmdDispatchIndirect) {
3972         vn_cs_decoder_set_fatal(ctx->decoder);
3973         return;
3974     }
3975 
3976     vn_decode_vkCmdDispatchIndirect_args_temp(ctx->decoder, &args);
3977     if (!args.commandBuffer) {
3978         vn_cs_decoder_set_fatal(ctx->decoder);
3979         return;
3980     }
3981 
3982     if (!vn_cs_decoder_get_fatal(ctx->decoder))
3983         ctx->dispatch_vkCmdDispatchIndirect(ctx, &args);
3984 
3985 
3986     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
3987        vn_encode_vkCmdDispatchIndirect_reply(ctx->encoder, &args);
3988 
3989     vn_cs_decoder_reset_temp_pool(ctx->decoder);
3990 }
3991 
vn_dispatch_vkCmdCopyBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)3992 static inline void vn_dispatch_vkCmdCopyBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
3993 {
3994     struct vn_command_vkCmdCopyBuffer args;
3995 
3996     if (!ctx->dispatch_vkCmdCopyBuffer) {
3997         vn_cs_decoder_set_fatal(ctx->decoder);
3998         return;
3999     }
4000 
4001     vn_decode_vkCmdCopyBuffer_args_temp(ctx->decoder, &args);
4002     if (!args.commandBuffer) {
4003         vn_cs_decoder_set_fatal(ctx->decoder);
4004         return;
4005     }
4006 
4007     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4008         ctx->dispatch_vkCmdCopyBuffer(ctx, &args);
4009 
4010 
4011     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4012        vn_encode_vkCmdCopyBuffer_reply(ctx->encoder, &args);
4013 
4014     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4015 }
4016 
vn_dispatch_vkCmdCopyImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4017 static inline void vn_dispatch_vkCmdCopyImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4018 {
4019     struct vn_command_vkCmdCopyImage args;
4020 
4021     if (!ctx->dispatch_vkCmdCopyImage) {
4022         vn_cs_decoder_set_fatal(ctx->decoder);
4023         return;
4024     }
4025 
4026     vn_decode_vkCmdCopyImage_args_temp(ctx->decoder, &args);
4027     if (!args.commandBuffer) {
4028         vn_cs_decoder_set_fatal(ctx->decoder);
4029         return;
4030     }
4031 
4032     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4033         ctx->dispatch_vkCmdCopyImage(ctx, &args);
4034 
4035 
4036     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4037        vn_encode_vkCmdCopyImage_reply(ctx->encoder, &args);
4038 
4039     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4040 }
4041 
vn_dispatch_vkCmdBlitImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4042 static inline void vn_dispatch_vkCmdBlitImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4043 {
4044     struct vn_command_vkCmdBlitImage args;
4045 
4046     if (!ctx->dispatch_vkCmdBlitImage) {
4047         vn_cs_decoder_set_fatal(ctx->decoder);
4048         return;
4049     }
4050 
4051     vn_decode_vkCmdBlitImage_args_temp(ctx->decoder, &args);
4052     if (!args.commandBuffer) {
4053         vn_cs_decoder_set_fatal(ctx->decoder);
4054         return;
4055     }
4056 
4057     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4058         ctx->dispatch_vkCmdBlitImage(ctx, &args);
4059 
4060 
4061     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4062        vn_encode_vkCmdBlitImage_reply(ctx->encoder, &args);
4063 
4064     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4065 }
4066 
vn_dispatch_vkCmdCopyBufferToImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4067 static inline void vn_dispatch_vkCmdCopyBufferToImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4068 {
4069     struct vn_command_vkCmdCopyBufferToImage args;
4070 
4071     if (!ctx->dispatch_vkCmdCopyBufferToImage) {
4072         vn_cs_decoder_set_fatal(ctx->decoder);
4073         return;
4074     }
4075 
4076     vn_decode_vkCmdCopyBufferToImage_args_temp(ctx->decoder, &args);
4077     if (!args.commandBuffer) {
4078         vn_cs_decoder_set_fatal(ctx->decoder);
4079         return;
4080     }
4081 
4082     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4083         ctx->dispatch_vkCmdCopyBufferToImage(ctx, &args);
4084 
4085 
4086     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4087        vn_encode_vkCmdCopyBufferToImage_reply(ctx->encoder, &args);
4088 
4089     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4090 }
4091 
vn_dispatch_vkCmdCopyImageToBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4092 static inline void vn_dispatch_vkCmdCopyImageToBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4093 {
4094     struct vn_command_vkCmdCopyImageToBuffer args;
4095 
4096     if (!ctx->dispatch_vkCmdCopyImageToBuffer) {
4097         vn_cs_decoder_set_fatal(ctx->decoder);
4098         return;
4099     }
4100 
4101     vn_decode_vkCmdCopyImageToBuffer_args_temp(ctx->decoder, &args);
4102     if (!args.commandBuffer) {
4103         vn_cs_decoder_set_fatal(ctx->decoder);
4104         return;
4105     }
4106 
4107     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4108         ctx->dispatch_vkCmdCopyImageToBuffer(ctx, &args);
4109 
4110 
4111     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4112        vn_encode_vkCmdCopyImageToBuffer_reply(ctx->encoder, &args);
4113 
4114     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4115 }
4116 
vn_dispatch_vkCmdUpdateBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4117 static inline void vn_dispatch_vkCmdUpdateBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4118 {
4119     struct vn_command_vkCmdUpdateBuffer args;
4120 
4121     if (!ctx->dispatch_vkCmdUpdateBuffer) {
4122         vn_cs_decoder_set_fatal(ctx->decoder);
4123         return;
4124     }
4125 
4126     vn_decode_vkCmdUpdateBuffer_args_temp(ctx->decoder, &args);
4127     if (!args.commandBuffer) {
4128         vn_cs_decoder_set_fatal(ctx->decoder);
4129         return;
4130     }
4131 
4132     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4133         ctx->dispatch_vkCmdUpdateBuffer(ctx, &args);
4134 
4135 
4136     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4137        vn_encode_vkCmdUpdateBuffer_reply(ctx->encoder, &args);
4138 
4139     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4140 }
4141 
vn_dispatch_vkCmdFillBuffer(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4142 static inline void vn_dispatch_vkCmdFillBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4143 {
4144     struct vn_command_vkCmdFillBuffer args;
4145 
4146     if (!ctx->dispatch_vkCmdFillBuffer) {
4147         vn_cs_decoder_set_fatal(ctx->decoder);
4148         return;
4149     }
4150 
4151     vn_decode_vkCmdFillBuffer_args_temp(ctx->decoder, &args);
4152     if (!args.commandBuffer) {
4153         vn_cs_decoder_set_fatal(ctx->decoder);
4154         return;
4155     }
4156 
4157     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4158         ctx->dispatch_vkCmdFillBuffer(ctx, &args);
4159 
4160 
4161     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4162        vn_encode_vkCmdFillBuffer_reply(ctx->encoder, &args);
4163 
4164     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4165 }
4166 
vn_dispatch_vkCmdClearColorImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4167 static inline void vn_dispatch_vkCmdClearColorImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4168 {
4169     struct vn_command_vkCmdClearColorImage args;
4170 
4171     if (!ctx->dispatch_vkCmdClearColorImage) {
4172         vn_cs_decoder_set_fatal(ctx->decoder);
4173         return;
4174     }
4175 
4176     vn_decode_vkCmdClearColorImage_args_temp(ctx->decoder, &args);
4177     if (!args.commandBuffer) {
4178         vn_cs_decoder_set_fatal(ctx->decoder);
4179         return;
4180     }
4181 
4182     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4183         ctx->dispatch_vkCmdClearColorImage(ctx, &args);
4184 
4185 
4186     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4187        vn_encode_vkCmdClearColorImage_reply(ctx->encoder, &args);
4188 
4189     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4190 }
4191 
vn_dispatch_vkCmdClearDepthStencilImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4192 static inline void vn_dispatch_vkCmdClearDepthStencilImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4193 {
4194     struct vn_command_vkCmdClearDepthStencilImage args;
4195 
4196     if (!ctx->dispatch_vkCmdClearDepthStencilImage) {
4197         vn_cs_decoder_set_fatal(ctx->decoder);
4198         return;
4199     }
4200 
4201     vn_decode_vkCmdClearDepthStencilImage_args_temp(ctx->decoder, &args);
4202     if (!args.commandBuffer) {
4203         vn_cs_decoder_set_fatal(ctx->decoder);
4204         return;
4205     }
4206 
4207     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4208         ctx->dispatch_vkCmdClearDepthStencilImage(ctx, &args);
4209 
4210 
4211     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4212        vn_encode_vkCmdClearDepthStencilImage_reply(ctx->encoder, &args);
4213 
4214     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4215 }
4216 
vn_dispatch_vkCmdClearAttachments(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4217 static inline void vn_dispatch_vkCmdClearAttachments(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4218 {
4219     struct vn_command_vkCmdClearAttachments args;
4220 
4221     if (!ctx->dispatch_vkCmdClearAttachments) {
4222         vn_cs_decoder_set_fatal(ctx->decoder);
4223         return;
4224     }
4225 
4226     vn_decode_vkCmdClearAttachments_args_temp(ctx->decoder, &args);
4227     if (!args.commandBuffer) {
4228         vn_cs_decoder_set_fatal(ctx->decoder);
4229         return;
4230     }
4231 
4232     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4233         ctx->dispatch_vkCmdClearAttachments(ctx, &args);
4234 
4235 
4236     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4237        vn_encode_vkCmdClearAttachments_reply(ctx->encoder, &args);
4238 
4239     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4240 }
4241 
vn_dispatch_vkCmdResolveImage(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4242 static inline void vn_dispatch_vkCmdResolveImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4243 {
4244     struct vn_command_vkCmdResolveImage args;
4245 
4246     if (!ctx->dispatch_vkCmdResolveImage) {
4247         vn_cs_decoder_set_fatal(ctx->decoder);
4248         return;
4249     }
4250 
4251     vn_decode_vkCmdResolveImage_args_temp(ctx->decoder, &args);
4252     if (!args.commandBuffer) {
4253         vn_cs_decoder_set_fatal(ctx->decoder);
4254         return;
4255     }
4256 
4257     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4258         ctx->dispatch_vkCmdResolveImage(ctx, &args);
4259 
4260 
4261     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4262        vn_encode_vkCmdResolveImage_reply(ctx->encoder, &args);
4263 
4264     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4265 }
4266 
vn_dispatch_vkCmdSetEvent(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4267 static inline void vn_dispatch_vkCmdSetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4268 {
4269     struct vn_command_vkCmdSetEvent args;
4270 
4271     if (!ctx->dispatch_vkCmdSetEvent) {
4272         vn_cs_decoder_set_fatal(ctx->decoder);
4273         return;
4274     }
4275 
4276     vn_decode_vkCmdSetEvent_args_temp(ctx->decoder, &args);
4277     if (!args.commandBuffer) {
4278         vn_cs_decoder_set_fatal(ctx->decoder);
4279         return;
4280     }
4281 
4282     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4283         ctx->dispatch_vkCmdSetEvent(ctx, &args);
4284 
4285 
4286     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4287        vn_encode_vkCmdSetEvent_reply(ctx->encoder, &args);
4288 
4289     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4290 }
4291 
vn_dispatch_vkCmdResetEvent(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4292 static inline void vn_dispatch_vkCmdResetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4293 {
4294     struct vn_command_vkCmdResetEvent args;
4295 
4296     if (!ctx->dispatch_vkCmdResetEvent) {
4297         vn_cs_decoder_set_fatal(ctx->decoder);
4298         return;
4299     }
4300 
4301     vn_decode_vkCmdResetEvent_args_temp(ctx->decoder, &args);
4302     if (!args.commandBuffer) {
4303         vn_cs_decoder_set_fatal(ctx->decoder);
4304         return;
4305     }
4306 
4307     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4308         ctx->dispatch_vkCmdResetEvent(ctx, &args);
4309 
4310 
4311     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4312        vn_encode_vkCmdResetEvent_reply(ctx->encoder, &args);
4313 
4314     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4315 }
4316 
vn_dispatch_vkCmdWaitEvents(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4317 static inline void vn_dispatch_vkCmdWaitEvents(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4318 {
4319     struct vn_command_vkCmdWaitEvents args;
4320 
4321     if (!ctx->dispatch_vkCmdWaitEvents) {
4322         vn_cs_decoder_set_fatal(ctx->decoder);
4323         return;
4324     }
4325 
4326     vn_decode_vkCmdWaitEvents_args_temp(ctx->decoder, &args);
4327     if (!args.commandBuffer) {
4328         vn_cs_decoder_set_fatal(ctx->decoder);
4329         return;
4330     }
4331 
4332     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4333         ctx->dispatch_vkCmdWaitEvents(ctx, &args);
4334 
4335 
4336     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4337        vn_encode_vkCmdWaitEvents_reply(ctx->encoder, &args);
4338 
4339     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4340 }
4341 
vn_dispatch_vkCmdPipelineBarrier(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4342 static inline void vn_dispatch_vkCmdPipelineBarrier(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4343 {
4344     struct vn_command_vkCmdPipelineBarrier args;
4345 
4346     if (!ctx->dispatch_vkCmdPipelineBarrier) {
4347         vn_cs_decoder_set_fatal(ctx->decoder);
4348         return;
4349     }
4350 
4351     vn_decode_vkCmdPipelineBarrier_args_temp(ctx->decoder, &args);
4352     if (!args.commandBuffer) {
4353         vn_cs_decoder_set_fatal(ctx->decoder);
4354         return;
4355     }
4356 
4357     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4358         ctx->dispatch_vkCmdPipelineBarrier(ctx, &args);
4359 
4360 
4361     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4362        vn_encode_vkCmdPipelineBarrier_reply(ctx->encoder, &args);
4363 
4364     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4365 }
4366 
vn_dispatch_vkCmdBeginQuery(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4367 static inline void vn_dispatch_vkCmdBeginQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4368 {
4369     struct vn_command_vkCmdBeginQuery args;
4370 
4371     if (!ctx->dispatch_vkCmdBeginQuery) {
4372         vn_cs_decoder_set_fatal(ctx->decoder);
4373         return;
4374     }
4375 
4376     vn_decode_vkCmdBeginQuery_args_temp(ctx->decoder, &args);
4377     if (!args.commandBuffer) {
4378         vn_cs_decoder_set_fatal(ctx->decoder);
4379         return;
4380     }
4381 
4382     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4383         ctx->dispatch_vkCmdBeginQuery(ctx, &args);
4384 
4385 
4386     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4387        vn_encode_vkCmdBeginQuery_reply(ctx->encoder, &args);
4388 
4389     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4390 }
4391 
vn_dispatch_vkCmdEndQuery(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4392 static inline void vn_dispatch_vkCmdEndQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4393 {
4394     struct vn_command_vkCmdEndQuery args;
4395 
4396     if (!ctx->dispatch_vkCmdEndQuery) {
4397         vn_cs_decoder_set_fatal(ctx->decoder);
4398         return;
4399     }
4400 
4401     vn_decode_vkCmdEndQuery_args_temp(ctx->decoder, &args);
4402     if (!args.commandBuffer) {
4403         vn_cs_decoder_set_fatal(ctx->decoder);
4404         return;
4405     }
4406 
4407     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4408         ctx->dispatch_vkCmdEndQuery(ctx, &args);
4409 
4410 
4411     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4412        vn_encode_vkCmdEndQuery_reply(ctx->encoder, &args);
4413 
4414     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4415 }
4416 
vn_dispatch_vkCmdResetQueryPool(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4417 static inline void vn_dispatch_vkCmdResetQueryPool(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4418 {
4419     struct vn_command_vkCmdResetQueryPool args;
4420 
4421     if (!ctx->dispatch_vkCmdResetQueryPool) {
4422         vn_cs_decoder_set_fatal(ctx->decoder);
4423         return;
4424     }
4425 
4426     vn_decode_vkCmdResetQueryPool_args_temp(ctx->decoder, &args);
4427     if (!args.commandBuffer) {
4428         vn_cs_decoder_set_fatal(ctx->decoder);
4429         return;
4430     }
4431 
4432     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4433         ctx->dispatch_vkCmdResetQueryPool(ctx, &args);
4434 
4435 
4436     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4437        vn_encode_vkCmdResetQueryPool_reply(ctx->encoder, &args);
4438 
4439     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4440 }
4441 
vn_dispatch_vkCmdWriteTimestamp(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4442 static inline void vn_dispatch_vkCmdWriteTimestamp(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4443 {
4444     struct vn_command_vkCmdWriteTimestamp args;
4445 
4446     if (!ctx->dispatch_vkCmdWriteTimestamp) {
4447         vn_cs_decoder_set_fatal(ctx->decoder);
4448         return;
4449     }
4450 
4451     vn_decode_vkCmdWriteTimestamp_args_temp(ctx->decoder, &args);
4452     if (!args.commandBuffer) {
4453         vn_cs_decoder_set_fatal(ctx->decoder);
4454         return;
4455     }
4456 
4457     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4458         ctx->dispatch_vkCmdWriteTimestamp(ctx, &args);
4459 
4460 
4461     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4462        vn_encode_vkCmdWriteTimestamp_reply(ctx->encoder, &args);
4463 
4464     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4465 }
4466 
vn_dispatch_vkCmdCopyQueryPoolResults(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4467 static inline void vn_dispatch_vkCmdCopyQueryPoolResults(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4468 {
4469     struct vn_command_vkCmdCopyQueryPoolResults args;
4470 
4471     if (!ctx->dispatch_vkCmdCopyQueryPoolResults) {
4472         vn_cs_decoder_set_fatal(ctx->decoder);
4473         return;
4474     }
4475 
4476     vn_decode_vkCmdCopyQueryPoolResults_args_temp(ctx->decoder, &args);
4477     if (!args.commandBuffer) {
4478         vn_cs_decoder_set_fatal(ctx->decoder);
4479         return;
4480     }
4481 
4482     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4483         ctx->dispatch_vkCmdCopyQueryPoolResults(ctx, &args);
4484 
4485 
4486     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4487        vn_encode_vkCmdCopyQueryPoolResults_reply(ctx->encoder, &args);
4488 
4489     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4490 }
4491 
vn_dispatch_vkCmdPushConstants(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4492 static inline void vn_dispatch_vkCmdPushConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4493 {
4494     struct vn_command_vkCmdPushConstants args;
4495 
4496     if (!ctx->dispatch_vkCmdPushConstants) {
4497         vn_cs_decoder_set_fatal(ctx->decoder);
4498         return;
4499     }
4500 
4501     vn_decode_vkCmdPushConstants_args_temp(ctx->decoder, &args);
4502     if (!args.commandBuffer) {
4503         vn_cs_decoder_set_fatal(ctx->decoder);
4504         return;
4505     }
4506 
4507     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4508         ctx->dispatch_vkCmdPushConstants(ctx, &args);
4509 
4510 
4511     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4512        vn_encode_vkCmdPushConstants_reply(ctx->encoder, &args);
4513 
4514     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4515 }
4516 
vn_dispatch_vkCmdBeginRenderPass(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4517 static inline void vn_dispatch_vkCmdBeginRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4518 {
4519     struct vn_command_vkCmdBeginRenderPass args;
4520 
4521     if (!ctx->dispatch_vkCmdBeginRenderPass) {
4522         vn_cs_decoder_set_fatal(ctx->decoder);
4523         return;
4524     }
4525 
4526     vn_decode_vkCmdBeginRenderPass_args_temp(ctx->decoder, &args);
4527     if (!args.commandBuffer) {
4528         vn_cs_decoder_set_fatal(ctx->decoder);
4529         return;
4530     }
4531 
4532     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4533         ctx->dispatch_vkCmdBeginRenderPass(ctx, &args);
4534 
4535 
4536     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4537        vn_encode_vkCmdBeginRenderPass_reply(ctx->encoder, &args);
4538 
4539     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4540 }
4541 
vn_dispatch_vkCmdNextSubpass(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4542 static inline void vn_dispatch_vkCmdNextSubpass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4543 {
4544     struct vn_command_vkCmdNextSubpass args;
4545 
4546     if (!ctx->dispatch_vkCmdNextSubpass) {
4547         vn_cs_decoder_set_fatal(ctx->decoder);
4548         return;
4549     }
4550 
4551     vn_decode_vkCmdNextSubpass_args_temp(ctx->decoder, &args);
4552     if (!args.commandBuffer) {
4553         vn_cs_decoder_set_fatal(ctx->decoder);
4554         return;
4555     }
4556 
4557     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4558         ctx->dispatch_vkCmdNextSubpass(ctx, &args);
4559 
4560 
4561     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4562        vn_encode_vkCmdNextSubpass_reply(ctx->encoder, &args);
4563 
4564     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4565 }
4566 
vn_dispatch_vkCmdEndRenderPass(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4567 static inline void vn_dispatch_vkCmdEndRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4568 {
4569     struct vn_command_vkCmdEndRenderPass args;
4570 
4571     if (!ctx->dispatch_vkCmdEndRenderPass) {
4572         vn_cs_decoder_set_fatal(ctx->decoder);
4573         return;
4574     }
4575 
4576     vn_decode_vkCmdEndRenderPass_args_temp(ctx->decoder, &args);
4577     if (!args.commandBuffer) {
4578         vn_cs_decoder_set_fatal(ctx->decoder);
4579         return;
4580     }
4581 
4582     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4583         ctx->dispatch_vkCmdEndRenderPass(ctx, &args);
4584 
4585 
4586     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4587        vn_encode_vkCmdEndRenderPass_reply(ctx->encoder, &args);
4588 
4589     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4590 }
4591 
vn_dispatch_vkCmdExecuteCommands(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4592 static inline void vn_dispatch_vkCmdExecuteCommands(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4593 {
4594     struct vn_command_vkCmdExecuteCommands args;
4595 
4596     if (!ctx->dispatch_vkCmdExecuteCommands) {
4597         vn_cs_decoder_set_fatal(ctx->decoder);
4598         return;
4599     }
4600 
4601     vn_decode_vkCmdExecuteCommands_args_temp(ctx->decoder, &args);
4602     if (!args.commandBuffer) {
4603         vn_cs_decoder_set_fatal(ctx->decoder);
4604         return;
4605     }
4606 
4607     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4608         ctx->dispatch_vkCmdExecuteCommands(ctx, &args);
4609 
4610 
4611     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4612        vn_encode_vkCmdExecuteCommands_reply(ctx->encoder, &args);
4613 
4614     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4615 }
4616 
vn_dispatch_vkCmdSetDeviceMask(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4617 static inline void vn_dispatch_vkCmdSetDeviceMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4618 {
4619     struct vn_command_vkCmdSetDeviceMask args;
4620 
4621     if (!ctx->dispatch_vkCmdSetDeviceMask) {
4622         vn_cs_decoder_set_fatal(ctx->decoder);
4623         return;
4624     }
4625 
4626     vn_decode_vkCmdSetDeviceMask_args_temp(ctx->decoder, &args);
4627     if (!args.commandBuffer) {
4628         vn_cs_decoder_set_fatal(ctx->decoder);
4629         return;
4630     }
4631 
4632     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4633         ctx->dispatch_vkCmdSetDeviceMask(ctx, &args);
4634 
4635 
4636     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4637        vn_encode_vkCmdSetDeviceMask_reply(ctx->encoder, &args);
4638 
4639     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4640 }
4641 
vn_dispatch_vkCmdDispatchBase(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4642 static inline void vn_dispatch_vkCmdDispatchBase(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4643 {
4644     struct vn_command_vkCmdDispatchBase args;
4645 
4646     if (!ctx->dispatch_vkCmdDispatchBase) {
4647         vn_cs_decoder_set_fatal(ctx->decoder);
4648         return;
4649     }
4650 
4651     vn_decode_vkCmdDispatchBase_args_temp(ctx->decoder, &args);
4652     if (!args.commandBuffer) {
4653         vn_cs_decoder_set_fatal(ctx->decoder);
4654         return;
4655     }
4656 
4657     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4658         ctx->dispatch_vkCmdDispatchBase(ctx, &args);
4659 
4660 
4661     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4662        vn_encode_vkCmdDispatchBase_reply(ctx->encoder, &args);
4663 
4664     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4665 }
4666 
vn_dispatch_vkCmdBeginRenderPass2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4667 static inline void vn_dispatch_vkCmdBeginRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4668 {
4669     struct vn_command_vkCmdBeginRenderPass2 args;
4670 
4671     if (!ctx->dispatch_vkCmdBeginRenderPass2) {
4672         vn_cs_decoder_set_fatal(ctx->decoder);
4673         return;
4674     }
4675 
4676     vn_decode_vkCmdBeginRenderPass2_args_temp(ctx->decoder, &args);
4677     if (!args.commandBuffer) {
4678         vn_cs_decoder_set_fatal(ctx->decoder);
4679         return;
4680     }
4681 
4682     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4683         ctx->dispatch_vkCmdBeginRenderPass2(ctx, &args);
4684 
4685 
4686     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4687        vn_encode_vkCmdBeginRenderPass2_reply(ctx->encoder, &args);
4688 
4689     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4690 }
4691 
vn_dispatch_vkCmdNextSubpass2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4692 static inline void vn_dispatch_vkCmdNextSubpass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4693 {
4694     struct vn_command_vkCmdNextSubpass2 args;
4695 
4696     if (!ctx->dispatch_vkCmdNextSubpass2) {
4697         vn_cs_decoder_set_fatal(ctx->decoder);
4698         return;
4699     }
4700 
4701     vn_decode_vkCmdNextSubpass2_args_temp(ctx->decoder, &args);
4702     if (!args.commandBuffer) {
4703         vn_cs_decoder_set_fatal(ctx->decoder);
4704         return;
4705     }
4706 
4707     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4708         ctx->dispatch_vkCmdNextSubpass2(ctx, &args);
4709 
4710 
4711     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4712        vn_encode_vkCmdNextSubpass2_reply(ctx->encoder, &args);
4713 
4714     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4715 }
4716 
vn_dispatch_vkCmdEndRenderPass2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4717 static inline void vn_dispatch_vkCmdEndRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4718 {
4719     struct vn_command_vkCmdEndRenderPass2 args;
4720 
4721     if (!ctx->dispatch_vkCmdEndRenderPass2) {
4722         vn_cs_decoder_set_fatal(ctx->decoder);
4723         return;
4724     }
4725 
4726     vn_decode_vkCmdEndRenderPass2_args_temp(ctx->decoder, &args);
4727     if (!args.commandBuffer) {
4728         vn_cs_decoder_set_fatal(ctx->decoder);
4729         return;
4730     }
4731 
4732     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4733         ctx->dispatch_vkCmdEndRenderPass2(ctx, &args);
4734 
4735 
4736     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4737        vn_encode_vkCmdEndRenderPass2_reply(ctx->encoder, &args);
4738 
4739     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4740 }
4741 
vn_dispatch_vkCmdDrawIndirectCount(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4742 static inline void vn_dispatch_vkCmdDrawIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4743 {
4744     struct vn_command_vkCmdDrawIndirectCount args;
4745 
4746     if (!ctx->dispatch_vkCmdDrawIndirectCount) {
4747         vn_cs_decoder_set_fatal(ctx->decoder);
4748         return;
4749     }
4750 
4751     vn_decode_vkCmdDrawIndirectCount_args_temp(ctx->decoder, &args);
4752     if (!args.commandBuffer) {
4753         vn_cs_decoder_set_fatal(ctx->decoder);
4754         return;
4755     }
4756 
4757     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4758         ctx->dispatch_vkCmdDrawIndirectCount(ctx, &args);
4759 
4760 
4761     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4762        vn_encode_vkCmdDrawIndirectCount_reply(ctx->encoder, &args);
4763 
4764     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4765 }
4766 
vn_dispatch_vkCmdDrawIndexedIndirectCount(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4767 static inline void vn_dispatch_vkCmdDrawIndexedIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4768 {
4769     struct vn_command_vkCmdDrawIndexedIndirectCount args;
4770 
4771     if (!ctx->dispatch_vkCmdDrawIndexedIndirectCount) {
4772         vn_cs_decoder_set_fatal(ctx->decoder);
4773         return;
4774     }
4775 
4776     vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(ctx->decoder, &args);
4777     if (!args.commandBuffer) {
4778         vn_cs_decoder_set_fatal(ctx->decoder);
4779         return;
4780     }
4781 
4782     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4783         ctx->dispatch_vkCmdDrawIndexedIndirectCount(ctx, &args);
4784 
4785 
4786     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4787        vn_encode_vkCmdDrawIndexedIndirectCount_reply(ctx->encoder, &args);
4788 
4789     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4790 }
4791 
vn_dispatch_vkCmdBindTransformFeedbackBuffersEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4792 static inline void vn_dispatch_vkCmdBindTransformFeedbackBuffersEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4793 {
4794     struct vn_command_vkCmdBindTransformFeedbackBuffersEXT args;
4795 
4796     if (!ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT) {
4797         vn_cs_decoder_set_fatal(ctx->decoder);
4798         return;
4799     }
4800 
4801     vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(ctx->decoder, &args);
4802     if (!args.commandBuffer) {
4803         vn_cs_decoder_set_fatal(ctx->decoder);
4804         return;
4805     }
4806 
4807     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4808         ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT(ctx, &args);
4809 
4810 
4811     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4812        vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(ctx->encoder, &args);
4813 
4814     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4815 }
4816 
vn_dispatch_vkCmdBeginTransformFeedbackEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4817 static inline void vn_dispatch_vkCmdBeginTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4818 {
4819     struct vn_command_vkCmdBeginTransformFeedbackEXT args;
4820 
4821     if (!ctx->dispatch_vkCmdBeginTransformFeedbackEXT) {
4822         vn_cs_decoder_set_fatal(ctx->decoder);
4823         return;
4824     }
4825 
4826     vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(ctx->decoder, &args);
4827     if (!args.commandBuffer) {
4828         vn_cs_decoder_set_fatal(ctx->decoder);
4829         return;
4830     }
4831 
4832     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4833         ctx->dispatch_vkCmdBeginTransformFeedbackEXT(ctx, &args);
4834 
4835 
4836     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4837        vn_encode_vkCmdBeginTransformFeedbackEXT_reply(ctx->encoder, &args);
4838 
4839     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4840 }
4841 
vn_dispatch_vkCmdEndTransformFeedbackEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4842 static inline void vn_dispatch_vkCmdEndTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4843 {
4844     struct vn_command_vkCmdEndTransformFeedbackEXT args;
4845 
4846     if (!ctx->dispatch_vkCmdEndTransformFeedbackEXT) {
4847         vn_cs_decoder_set_fatal(ctx->decoder);
4848         return;
4849     }
4850 
4851     vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(ctx->decoder, &args);
4852     if (!args.commandBuffer) {
4853         vn_cs_decoder_set_fatal(ctx->decoder);
4854         return;
4855     }
4856 
4857     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4858         ctx->dispatch_vkCmdEndTransformFeedbackEXT(ctx, &args);
4859 
4860 
4861     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4862        vn_encode_vkCmdEndTransformFeedbackEXT_reply(ctx->encoder, &args);
4863 
4864     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4865 }
4866 
vn_dispatch_vkCmdBeginQueryIndexedEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4867 static inline void vn_dispatch_vkCmdBeginQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4868 {
4869     struct vn_command_vkCmdBeginQueryIndexedEXT args;
4870 
4871     if (!ctx->dispatch_vkCmdBeginQueryIndexedEXT) {
4872         vn_cs_decoder_set_fatal(ctx->decoder);
4873         return;
4874     }
4875 
4876     vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(ctx->decoder, &args);
4877     if (!args.commandBuffer) {
4878         vn_cs_decoder_set_fatal(ctx->decoder);
4879         return;
4880     }
4881 
4882     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4883         ctx->dispatch_vkCmdBeginQueryIndexedEXT(ctx, &args);
4884 
4885 
4886     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4887        vn_encode_vkCmdBeginQueryIndexedEXT_reply(ctx->encoder, &args);
4888 
4889     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4890 }
4891 
vn_dispatch_vkCmdEndQueryIndexedEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4892 static inline void vn_dispatch_vkCmdEndQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4893 {
4894     struct vn_command_vkCmdEndQueryIndexedEXT args;
4895 
4896     if (!ctx->dispatch_vkCmdEndQueryIndexedEXT) {
4897         vn_cs_decoder_set_fatal(ctx->decoder);
4898         return;
4899     }
4900 
4901     vn_decode_vkCmdEndQueryIndexedEXT_args_temp(ctx->decoder, &args);
4902     if (!args.commandBuffer) {
4903         vn_cs_decoder_set_fatal(ctx->decoder);
4904         return;
4905     }
4906 
4907     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4908         ctx->dispatch_vkCmdEndQueryIndexedEXT(ctx, &args);
4909 
4910 
4911     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4912        vn_encode_vkCmdEndQueryIndexedEXT_reply(ctx->encoder, &args);
4913 
4914     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4915 }
4916 
vn_dispatch_vkCmdDrawIndirectByteCountEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)4917 static inline void vn_dispatch_vkCmdDrawIndirectByteCountEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
4918 {
4919     struct vn_command_vkCmdDrawIndirectByteCountEXT args;
4920 
4921     if (!ctx->dispatch_vkCmdDrawIndirectByteCountEXT) {
4922         vn_cs_decoder_set_fatal(ctx->decoder);
4923         return;
4924     }
4925 
4926     vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(ctx->decoder, &args);
4927     if (!args.commandBuffer) {
4928         vn_cs_decoder_set_fatal(ctx->decoder);
4929         return;
4930     }
4931 
4932     if (!vn_cs_decoder_get_fatal(ctx->decoder))
4933         ctx->dispatch_vkCmdDrawIndirectByteCountEXT(ctx, &args);
4934 
4935 
4936     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
4937        vn_encode_vkCmdDrawIndirectByteCountEXT_reply(ctx->encoder, &args);
4938 
4939     vn_cs_decoder_reset_temp_pool(ctx->decoder);
4940 }
4941 
4942 #pragma GCC diagnostic pop
4943 
4944 #endif /* VN_PROTOCOL_RENDERER_COMMAND_BUFFER_H */
4945