xref: /aosp_15_r20/external/virglrenderer/src/venus/venus-protocol/vn_protocol_renderer_device.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
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_DEVICE_H
9 #define VN_PROTOCOL_RENDERER_DEVICE_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 /*
18  * These structs/unions/commands are not included
19  *
20  *   vkGetDeviceProcAddr
21  */
22 
23 /* struct VkPhysicalDeviceLimits */
24 
25 static inline void
vn_encode_VkPhysicalDeviceLimits(struct vn_cs_encoder * enc,const VkPhysicalDeviceLimits * val)26 vn_encode_VkPhysicalDeviceLimits(struct vn_cs_encoder *enc, const VkPhysicalDeviceLimits *val)
27 {
28     vn_encode_uint32_t(enc, &val->maxImageDimension1D);
29     vn_encode_uint32_t(enc, &val->maxImageDimension2D);
30     vn_encode_uint32_t(enc, &val->maxImageDimension3D);
31     vn_encode_uint32_t(enc, &val->maxImageDimensionCube);
32     vn_encode_uint32_t(enc, &val->maxImageArrayLayers);
33     vn_encode_uint32_t(enc, &val->maxTexelBufferElements);
34     vn_encode_uint32_t(enc, &val->maxUniformBufferRange);
35     vn_encode_uint32_t(enc, &val->maxStorageBufferRange);
36     vn_encode_uint32_t(enc, &val->maxPushConstantsSize);
37     vn_encode_uint32_t(enc, &val->maxMemoryAllocationCount);
38     vn_encode_uint32_t(enc, &val->maxSamplerAllocationCount);
39     vn_encode_VkDeviceSize(enc, &val->bufferImageGranularity);
40     vn_encode_VkDeviceSize(enc, &val->sparseAddressSpaceSize);
41     vn_encode_uint32_t(enc, &val->maxBoundDescriptorSets);
42     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorSamplers);
43     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUniformBuffers);
44     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorStorageBuffers);
45     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorSampledImages);
46     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorStorageImages);
47     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorInputAttachments);
48     vn_encode_uint32_t(enc, &val->maxPerStageResources);
49     vn_encode_uint32_t(enc, &val->maxDescriptorSetSamplers);
50     vn_encode_uint32_t(enc, &val->maxDescriptorSetUniformBuffers);
51     vn_encode_uint32_t(enc, &val->maxDescriptorSetUniformBuffersDynamic);
52     vn_encode_uint32_t(enc, &val->maxDescriptorSetStorageBuffers);
53     vn_encode_uint32_t(enc, &val->maxDescriptorSetStorageBuffersDynamic);
54     vn_encode_uint32_t(enc, &val->maxDescriptorSetSampledImages);
55     vn_encode_uint32_t(enc, &val->maxDescriptorSetStorageImages);
56     vn_encode_uint32_t(enc, &val->maxDescriptorSetInputAttachments);
57     vn_encode_uint32_t(enc, &val->maxVertexInputAttributes);
58     vn_encode_uint32_t(enc, &val->maxVertexInputBindings);
59     vn_encode_uint32_t(enc, &val->maxVertexInputAttributeOffset);
60     vn_encode_uint32_t(enc, &val->maxVertexInputBindingStride);
61     vn_encode_uint32_t(enc, &val->maxVertexOutputComponents);
62     vn_encode_uint32_t(enc, &val->maxTessellationGenerationLevel);
63     vn_encode_uint32_t(enc, &val->maxTessellationPatchSize);
64     vn_encode_uint32_t(enc, &val->maxTessellationControlPerVertexInputComponents);
65     vn_encode_uint32_t(enc, &val->maxTessellationControlPerVertexOutputComponents);
66     vn_encode_uint32_t(enc, &val->maxTessellationControlPerPatchOutputComponents);
67     vn_encode_uint32_t(enc, &val->maxTessellationControlTotalOutputComponents);
68     vn_encode_uint32_t(enc, &val->maxTessellationEvaluationInputComponents);
69     vn_encode_uint32_t(enc, &val->maxTessellationEvaluationOutputComponents);
70     vn_encode_uint32_t(enc, &val->maxGeometryShaderInvocations);
71     vn_encode_uint32_t(enc, &val->maxGeometryInputComponents);
72     vn_encode_uint32_t(enc, &val->maxGeometryOutputComponents);
73     vn_encode_uint32_t(enc, &val->maxGeometryOutputVertices);
74     vn_encode_uint32_t(enc, &val->maxGeometryTotalOutputComponents);
75     vn_encode_uint32_t(enc, &val->maxFragmentInputComponents);
76     vn_encode_uint32_t(enc, &val->maxFragmentOutputAttachments);
77     vn_encode_uint32_t(enc, &val->maxFragmentDualSrcAttachments);
78     vn_encode_uint32_t(enc, &val->maxFragmentCombinedOutputResources);
79     vn_encode_uint32_t(enc, &val->maxComputeSharedMemorySize);
80     vn_encode_array_size(enc, 3);
81     vn_encode_uint32_t_array(enc, val->maxComputeWorkGroupCount, 3);
82     vn_encode_uint32_t(enc, &val->maxComputeWorkGroupInvocations);
83     vn_encode_array_size(enc, 3);
84     vn_encode_uint32_t_array(enc, val->maxComputeWorkGroupSize, 3);
85     vn_encode_uint32_t(enc, &val->subPixelPrecisionBits);
86     vn_encode_uint32_t(enc, &val->subTexelPrecisionBits);
87     vn_encode_uint32_t(enc, &val->mipmapPrecisionBits);
88     vn_encode_uint32_t(enc, &val->maxDrawIndexedIndexValue);
89     vn_encode_uint32_t(enc, &val->maxDrawIndirectCount);
90     vn_encode_float(enc, &val->maxSamplerLodBias);
91     vn_encode_float(enc, &val->maxSamplerAnisotropy);
92     vn_encode_uint32_t(enc, &val->maxViewports);
93     vn_encode_array_size(enc, 2);
94     vn_encode_uint32_t_array(enc, val->maxViewportDimensions, 2);
95     vn_encode_array_size(enc, 2);
96     vn_encode_float_array(enc, val->viewportBoundsRange, 2);
97     vn_encode_uint32_t(enc, &val->viewportSubPixelBits);
98     vn_encode_size_t(enc, &val->minMemoryMapAlignment);
99     vn_encode_VkDeviceSize(enc, &val->minTexelBufferOffsetAlignment);
100     vn_encode_VkDeviceSize(enc, &val->minUniformBufferOffsetAlignment);
101     vn_encode_VkDeviceSize(enc, &val->minStorageBufferOffsetAlignment);
102     vn_encode_int32_t(enc, &val->minTexelOffset);
103     vn_encode_uint32_t(enc, &val->maxTexelOffset);
104     vn_encode_int32_t(enc, &val->minTexelGatherOffset);
105     vn_encode_uint32_t(enc, &val->maxTexelGatherOffset);
106     vn_encode_float(enc, &val->minInterpolationOffset);
107     vn_encode_float(enc, &val->maxInterpolationOffset);
108     vn_encode_uint32_t(enc, &val->subPixelInterpolationOffsetBits);
109     vn_encode_uint32_t(enc, &val->maxFramebufferWidth);
110     vn_encode_uint32_t(enc, &val->maxFramebufferHeight);
111     vn_encode_uint32_t(enc, &val->maxFramebufferLayers);
112     vn_encode_VkFlags(enc, &val->framebufferColorSampleCounts);
113     vn_encode_VkFlags(enc, &val->framebufferDepthSampleCounts);
114     vn_encode_VkFlags(enc, &val->framebufferStencilSampleCounts);
115     vn_encode_VkFlags(enc, &val->framebufferNoAttachmentsSampleCounts);
116     vn_encode_uint32_t(enc, &val->maxColorAttachments);
117     vn_encode_VkFlags(enc, &val->sampledImageColorSampleCounts);
118     vn_encode_VkFlags(enc, &val->sampledImageIntegerSampleCounts);
119     vn_encode_VkFlags(enc, &val->sampledImageDepthSampleCounts);
120     vn_encode_VkFlags(enc, &val->sampledImageStencilSampleCounts);
121     vn_encode_VkFlags(enc, &val->storageImageSampleCounts);
122     vn_encode_uint32_t(enc, &val->maxSampleMaskWords);
123     vn_encode_VkBool32(enc, &val->timestampComputeAndGraphics);
124     vn_encode_float(enc, &val->timestampPeriod);
125     vn_encode_uint32_t(enc, &val->maxClipDistances);
126     vn_encode_uint32_t(enc, &val->maxCullDistances);
127     vn_encode_uint32_t(enc, &val->maxCombinedClipAndCullDistances);
128     vn_encode_uint32_t(enc, &val->discreteQueuePriorities);
129     vn_encode_array_size(enc, 2);
130     vn_encode_float_array(enc, val->pointSizeRange, 2);
131     vn_encode_array_size(enc, 2);
132     vn_encode_float_array(enc, val->lineWidthRange, 2);
133     vn_encode_float(enc, &val->pointSizeGranularity);
134     vn_encode_float(enc, &val->lineWidthGranularity);
135     vn_encode_VkBool32(enc, &val->strictLines);
136     vn_encode_VkBool32(enc, &val->standardSampleLocations);
137     vn_encode_VkDeviceSize(enc, &val->optimalBufferCopyOffsetAlignment);
138     vn_encode_VkDeviceSize(enc, &val->optimalBufferCopyRowPitchAlignment);
139     vn_encode_VkDeviceSize(enc, &val->nonCoherentAtomSize);
140 }
141 
142 static inline void
vn_decode_VkPhysicalDeviceLimits_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLimits * val)143 vn_decode_VkPhysicalDeviceLimits_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLimits *val)
144 {
145     /* skip val->maxImageDimension1D */
146     /* skip val->maxImageDimension2D */
147     /* skip val->maxImageDimension3D */
148     /* skip val->maxImageDimensionCube */
149     /* skip val->maxImageArrayLayers */
150     /* skip val->maxTexelBufferElements */
151     /* skip val->maxUniformBufferRange */
152     /* skip val->maxStorageBufferRange */
153     /* skip val->maxPushConstantsSize */
154     /* skip val->maxMemoryAllocationCount */
155     /* skip val->maxSamplerAllocationCount */
156     /* skip val->bufferImageGranularity */
157     /* skip val->sparseAddressSpaceSize */
158     /* skip val->maxBoundDescriptorSets */
159     /* skip val->maxPerStageDescriptorSamplers */
160     /* skip val->maxPerStageDescriptorUniformBuffers */
161     /* skip val->maxPerStageDescriptorStorageBuffers */
162     /* skip val->maxPerStageDescriptorSampledImages */
163     /* skip val->maxPerStageDescriptorStorageImages */
164     /* skip val->maxPerStageDescriptorInputAttachments */
165     /* skip val->maxPerStageResources */
166     /* skip val->maxDescriptorSetSamplers */
167     /* skip val->maxDescriptorSetUniformBuffers */
168     /* skip val->maxDescriptorSetUniformBuffersDynamic */
169     /* skip val->maxDescriptorSetStorageBuffers */
170     /* skip val->maxDescriptorSetStorageBuffersDynamic */
171     /* skip val->maxDescriptorSetSampledImages */
172     /* skip val->maxDescriptorSetStorageImages */
173     /* skip val->maxDescriptorSetInputAttachments */
174     /* skip val->maxVertexInputAttributes */
175     /* skip val->maxVertexInputBindings */
176     /* skip val->maxVertexInputAttributeOffset */
177     /* skip val->maxVertexInputBindingStride */
178     /* skip val->maxVertexOutputComponents */
179     /* skip val->maxTessellationGenerationLevel */
180     /* skip val->maxTessellationPatchSize */
181     /* skip val->maxTessellationControlPerVertexInputComponents */
182     /* skip val->maxTessellationControlPerVertexOutputComponents */
183     /* skip val->maxTessellationControlPerPatchOutputComponents */
184     /* skip val->maxTessellationControlTotalOutputComponents */
185     /* skip val->maxTessellationEvaluationInputComponents */
186     /* skip val->maxTessellationEvaluationOutputComponents */
187     /* skip val->maxGeometryShaderInvocations */
188     /* skip val->maxGeometryInputComponents */
189     /* skip val->maxGeometryOutputComponents */
190     /* skip val->maxGeometryOutputVertices */
191     /* skip val->maxGeometryTotalOutputComponents */
192     /* skip val->maxFragmentInputComponents */
193     /* skip val->maxFragmentOutputAttachments */
194     /* skip val->maxFragmentDualSrcAttachments */
195     /* skip val->maxFragmentCombinedOutputResources */
196     /* skip val->maxComputeSharedMemorySize */
197     /* skip val->maxComputeWorkGroupCount */
198     /* skip val->maxComputeWorkGroupInvocations */
199     /* skip val->maxComputeWorkGroupSize */
200     /* skip val->subPixelPrecisionBits */
201     /* skip val->subTexelPrecisionBits */
202     /* skip val->mipmapPrecisionBits */
203     /* skip val->maxDrawIndexedIndexValue */
204     /* skip val->maxDrawIndirectCount */
205     /* skip val->maxSamplerLodBias */
206     /* skip val->maxSamplerAnisotropy */
207     /* skip val->maxViewports */
208     /* skip val->maxViewportDimensions */
209     /* skip val->viewportBoundsRange */
210     /* skip val->viewportSubPixelBits */
211     /* skip val->minMemoryMapAlignment */
212     /* skip val->minTexelBufferOffsetAlignment */
213     /* skip val->minUniformBufferOffsetAlignment */
214     /* skip val->minStorageBufferOffsetAlignment */
215     /* skip val->minTexelOffset */
216     /* skip val->maxTexelOffset */
217     /* skip val->minTexelGatherOffset */
218     /* skip val->maxTexelGatherOffset */
219     /* skip val->minInterpolationOffset */
220     /* skip val->maxInterpolationOffset */
221     /* skip val->subPixelInterpolationOffsetBits */
222     /* skip val->maxFramebufferWidth */
223     /* skip val->maxFramebufferHeight */
224     /* skip val->maxFramebufferLayers */
225     /* skip val->framebufferColorSampleCounts */
226     /* skip val->framebufferDepthSampleCounts */
227     /* skip val->framebufferStencilSampleCounts */
228     /* skip val->framebufferNoAttachmentsSampleCounts */
229     /* skip val->maxColorAttachments */
230     /* skip val->sampledImageColorSampleCounts */
231     /* skip val->sampledImageIntegerSampleCounts */
232     /* skip val->sampledImageDepthSampleCounts */
233     /* skip val->sampledImageStencilSampleCounts */
234     /* skip val->storageImageSampleCounts */
235     /* skip val->maxSampleMaskWords */
236     /* skip val->timestampComputeAndGraphics */
237     /* skip val->timestampPeriod */
238     /* skip val->maxClipDistances */
239     /* skip val->maxCullDistances */
240     /* skip val->maxCombinedClipAndCullDistances */
241     /* skip val->discreteQueuePriorities */
242     /* skip val->pointSizeRange */
243     /* skip val->lineWidthRange */
244     /* skip val->pointSizeGranularity */
245     /* skip val->lineWidthGranularity */
246     /* skip val->strictLines */
247     /* skip val->standardSampleLocations */
248     /* skip val->optimalBufferCopyOffsetAlignment */
249     /* skip val->optimalBufferCopyRowPitchAlignment */
250     /* skip val->nonCoherentAtomSize */
251 }
252 
253 /* struct VkPhysicalDeviceSparseProperties */
254 
255 static inline void
vn_encode_VkPhysicalDeviceSparseProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceSparseProperties * val)256 vn_encode_VkPhysicalDeviceSparseProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceSparseProperties *val)
257 {
258     vn_encode_VkBool32(enc, &val->residencyStandard2DBlockShape);
259     vn_encode_VkBool32(enc, &val->residencyStandard2DMultisampleBlockShape);
260     vn_encode_VkBool32(enc, &val->residencyStandard3DBlockShape);
261     vn_encode_VkBool32(enc, &val->residencyAlignedMipSize);
262     vn_encode_VkBool32(enc, &val->residencyNonResidentStrict);
263 }
264 
265 static inline void
vn_decode_VkPhysicalDeviceSparseProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSparseProperties * val)266 vn_decode_VkPhysicalDeviceSparseProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSparseProperties *val)
267 {
268     /* skip val->residencyStandard2DBlockShape */
269     /* skip val->residencyStandard2DMultisampleBlockShape */
270     /* skip val->residencyStandard3DBlockShape */
271     /* skip val->residencyAlignedMipSize */
272     /* skip val->residencyNonResidentStrict */
273 }
274 
275 /* struct VkPhysicalDeviceProperties */
276 
277 static inline void
vn_encode_VkPhysicalDeviceProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceProperties * val)278 vn_encode_VkPhysicalDeviceProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties *val)
279 {
280     vn_encode_uint32_t(enc, &val->apiVersion);
281     vn_encode_uint32_t(enc, &val->driverVersion);
282     vn_encode_uint32_t(enc, &val->vendorID);
283     vn_encode_uint32_t(enc, &val->deviceID);
284     vn_encode_VkPhysicalDeviceType(enc, &val->deviceType);
285     vn_encode_array_size(enc, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE);
286     vn_encode_char_array(enc, val->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE);
287     vn_encode_array_size(enc, VK_UUID_SIZE);
288     vn_encode_uint8_t_array(enc, val->pipelineCacheUUID, VK_UUID_SIZE);
289     vn_encode_VkPhysicalDeviceLimits(enc, &val->limits);
290     vn_encode_VkPhysicalDeviceSparseProperties(enc, &val->sparseProperties);
291 }
292 
293 static inline void
vn_decode_VkPhysicalDeviceProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProperties * val)294 vn_decode_VkPhysicalDeviceProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties *val)
295 {
296     /* skip val->apiVersion */
297     /* skip val->driverVersion */
298     /* skip val->vendorID */
299     /* skip val->deviceID */
300     /* skip val->deviceType */
301     /* skip val->deviceName */
302     /* skip val->pipelineCacheUUID */
303     vn_decode_VkPhysicalDeviceLimits_partial_temp(dec, &val->limits);
304     vn_decode_VkPhysicalDeviceSparseProperties_partial_temp(dec, &val->sparseProperties);
305 }
306 
307 /* struct VkQueueFamilyProperties */
308 
309 static inline void
vn_encode_VkQueueFamilyProperties(struct vn_cs_encoder * enc,const VkQueueFamilyProperties * val)310 vn_encode_VkQueueFamilyProperties(struct vn_cs_encoder *enc, const VkQueueFamilyProperties *val)
311 {
312     vn_encode_VkFlags(enc, &val->queueFlags);
313     vn_encode_uint32_t(enc, &val->queueCount);
314     vn_encode_uint32_t(enc, &val->timestampValidBits);
315     vn_encode_VkExtent3D(enc, &val->minImageTransferGranularity);
316 }
317 
318 static inline void
vn_decode_VkQueueFamilyProperties_partial_temp(struct vn_cs_decoder * dec,VkQueueFamilyProperties * val)319 vn_decode_VkQueueFamilyProperties_partial_temp(struct vn_cs_decoder *dec, VkQueueFamilyProperties *val)
320 {
321     /* skip val->queueFlags */
322     /* skip val->queueCount */
323     /* skip val->timestampValidBits */
324     vn_decode_VkExtent3D_partial_temp(dec, &val->minImageTransferGranularity);
325 }
326 
327 /* struct VkMemoryType */
328 
329 static inline void
vn_encode_VkMemoryType(struct vn_cs_encoder * enc,const VkMemoryType * val)330 vn_encode_VkMemoryType(struct vn_cs_encoder *enc, const VkMemoryType *val)
331 {
332     vn_encode_VkFlags(enc, &val->propertyFlags);
333     vn_encode_uint32_t(enc, &val->heapIndex);
334 }
335 
336 static inline void
vn_decode_VkMemoryType_partial_temp(struct vn_cs_decoder * dec,VkMemoryType * val)337 vn_decode_VkMemoryType_partial_temp(struct vn_cs_decoder *dec, VkMemoryType *val)
338 {
339     /* skip val->propertyFlags */
340     /* skip val->heapIndex */
341 }
342 
343 /* struct VkMemoryHeap */
344 
345 static inline void
vn_encode_VkMemoryHeap(struct vn_cs_encoder * enc,const VkMemoryHeap * val)346 vn_encode_VkMemoryHeap(struct vn_cs_encoder *enc, const VkMemoryHeap *val)
347 {
348     vn_encode_VkDeviceSize(enc, &val->size);
349     vn_encode_VkFlags(enc, &val->flags);
350 }
351 
352 static inline void
vn_decode_VkMemoryHeap_partial_temp(struct vn_cs_decoder * dec,VkMemoryHeap * val)353 vn_decode_VkMemoryHeap_partial_temp(struct vn_cs_decoder *dec, VkMemoryHeap *val)
354 {
355     /* skip val->size */
356     /* skip val->flags */
357 }
358 
359 /* struct VkPhysicalDeviceMemoryProperties */
360 
361 static inline void
vn_encode_VkPhysicalDeviceMemoryProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceMemoryProperties * val)362 vn_encode_VkPhysicalDeviceMemoryProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties *val)
363 {
364     vn_encode_uint32_t(enc, &val->memoryTypeCount);
365     vn_encode_array_size(enc, VK_MAX_MEMORY_TYPES);
366     for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; i++)
367         vn_encode_VkMemoryType(enc, &val->memoryTypes[i]);
368     vn_encode_uint32_t(enc, &val->memoryHeapCount);
369     vn_encode_array_size(enc, VK_MAX_MEMORY_HEAPS);
370     for (uint32_t i = 0; i < VK_MAX_MEMORY_HEAPS; i++)
371         vn_encode_VkMemoryHeap(enc, &val->memoryHeaps[i]);
372 }
373 
374 static inline void
vn_decode_VkPhysicalDeviceMemoryProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMemoryProperties * val)375 vn_decode_VkPhysicalDeviceMemoryProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties *val)
376 {
377     /* skip val->memoryTypeCount */
378     {
379         const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_MEMORY_TYPES);
380         for (uint32_t i = 0; i < iter_count; i++)
381             vn_decode_VkMemoryType_partial_temp(dec, &val->memoryTypes[i]);
382     }
383     /* skip val->memoryHeapCount */
384     {
385         const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_MEMORY_HEAPS);
386         for (uint32_t i = 0; i < iter_count; i++)
387             vn_decode_VkMemoryHeap_partial_temp(dec, &val->memoryHeaps[i]);
388     }
389 }
390 
391 /* struct VkPhysicalDeviceFeatures */
392 
393 static inline void
vn_encode_VkPhysicalDeviceFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceFeatures * val)394 vn_encode_VkPhysicalDeviceFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures *val)
395 {
396     vn_encode_VkBool32(enc, &val->robustBufferAccess);
397     vn_encode_VkBool32(enc, &val->fullDrawIndexUint32);
398     vn_encode_VkBool32(enc, &val->imageCubeArray);
399     vn_encode_VkBool32(enc, &val->independentBlend);
400     vn_encode_VkBool32(enc, &val->geometryShader);
401     vn_encode_VkBool32(enc, &val->tessellationShader);
402     vn_encode_VkBool32(enc, &val->sampleRateShading);
403     vn_encode_VkBool32(enc, &val->dualSrcBlend);
404     vn_encode_VkBool32(enc, &val->logicOp);
405     vn_encode_VkBool32(enc, &val->multiDrawIndirect);
406     vn_encode_VkBool32(enc, &val->drawIndirectFirstInstance);
407     vn_encode_VkBool32(enc, &val->depthClamp);
408     vn_encode_VkBool32(enc, &val->depthBiasClamp);
409     vn_encode_VkBool32(enc, &val->fillModeNonSolid);
410     vn_encode_VkBool32(enc, &val->depthBounds);
411     vn_encode_VkBool32(enc, &val->wideLines);
412     vn_encode_VkBool32(enc, &val->largePoints);
413     vn_encode_VkBool32(enc, &val->alphaToOne);
414     vn_encode_VkBool32(enc, &val->multiViewport);
415     vn_encode_VkBool32(enc, &val->samplerAnisotropy);
416     vn_encode_VkBool32(enc, &val->textureCompressionETC2);
417     vn_encode_VkBool32(enc, &val->textureCompressionASTC_LDR);
418     vn_encode_VkBool32(enc, &val->textureCompressionBC);
419     vn_encode_VkBool32(enc, &val->occlusionQueryPrecise);
420     vn_encode_VkBool32(enc, &val->pipelineStatisticsQuery);
421     vn_encode_VkBool32(enc, &val->vertexPipelineStoresAndAtomics);
422     vn_encode_VkBool32(enc, &val->fragmentStoresAndAtomics);
423     vn_encode_VkBool32(enc, &val->shaderTessellationAndGeometryPointSize);
424     vn_encode_VkBool32(enc, &val->shaderImageGatherExtended);
425     vn_encode_VkBool32(enc, &val->shaderStorageImageExtendedFormats);
426     vn_encode_VkBool32(enc, &val->shaderStorageImageMultisample);
427     vn_encode_VkBool32(enc, &val->shaderStorageImageReadWithoutFormat);
428     vn_encode_VkBool32(enc, &val->shaderStorageImageWriteWithoutFormat);
429     vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayDynamicIndexing);
430     vn_encode_VkBool32(enc, &val->shaderSampledImageArrayDynamicIndexing);
431     vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayDynamicIndexing);
432     vn_encode_VkBool32(enc, &val->shaderStorageImageArrayDynamicIndexing);
433     vn_encode_VkBool32(enc, &val->shaderClipDistance);
434     vn_encode_VkBool32(enc, &val->shaderCullDistance);
435     vn_encode_VkBool32(enc, &val->shaderFloat64);
436     vn_encode_VkBool32(enc, &val->shaderInt64);
437     vn_encode_VkBool32(enc, &val->shaderInt16);
438     vn_encode_VkBool32(enc, &val->shaderResourceResidency);
439     vn_encode_VkBool32(enc, &val->shaderResourceMinLod);
440     vn_encode_VkBool32(enc, &val->sparseBinding);
441     vn_encode_VkBool32(enc, &val->sparseResidencyBuffer);
442     vn_encode_VkBool32(enc, &val->sparseResidencyImage2D);
443     vn_encode_VkBool32(enc, &val->sparseResidencyImage3D);
444     vn_encode_VkBool32(enc, &val->sparseResidency2Samples);
445     vn_encode_VkBool32(enc, &val->sparseResidency4Samples);
446     vn_encode_VkBool32(enc, &val->sparseResidency8Samples);
447     vn_encode_VkBool32(enc, &val->sparseResidency16Samples);
448     vn_encode_VkBool32(enc, &val->sparseResidencyAliased);
449     vn_encode_VkBool32(enc, &val->variableMultisampleRate);
450     vn_encode_VkBool32(enc, &val->inheritedQueries);
451 }
452 
453 static inline void
vn_decode_VkPhysicalDeviceFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures * val)454 vn_decode_VkPhysicalDeviceFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures *val)
455 {
456     vn_decode_VkBool32(dec, &val->robustBufferAccess);
457     vn_decode_VkBool32(dec, &val->fullDrawIndexUint32);
458     vn_decode_VkBool32(dec, &val->imageCubeArray);
459     vn_decode_VkBool32(dec, &val->independentBlend);
460     vn_decode_VkBool32(dec, &val->geometryShader);
461     vn_decode_VkBool32(dec, &val->tessellationShader);
462     vn_decode_VkBool32(dec, &val->sampleRateShading);
463     vn_decode_VkBool32(dec, &val->dualSrcBlend);
464     vn_decode_VkBool32(dec, &val->logicOp);
465     vn_decode_VkBool32(dec, &val->multiDrawIndirect);
466     vn_decode_VkBool32(dec, &val->drawIndirectFirstInstance);
467     vn_decode_VkBool32(dec, &val->depthClamp);
468     vn_decode_VkBool32(dec, &val->depthBiasClamp);
469     vn_decode_VkBool32(dec, &val->fillModeNonSolid);
470     vn_decode_VkBool32(dec, &val->depthBounds);
471     vn_decode_VkBool32(dec, &val->wideLines);
472     vn_decode_VkBool32(dec, &val->largePoints);
473     vn_decode_VkBool32(dec, &val->alphaToOne);
474     vn_decode_VkBool32(dec, &val->multiViewport);
475     vn_decode_VkBool32(dec, &val->samplerAnisotropy);
476     vn_decode_VkBool32(dec, &val->textureCompressionETC2);
477     vn_decode_VkBool32(dec, &val->textureCompressionASTC_LDR);
478     vn_decode_VkBool32(dec, &val->textureCompressionBC);
479     vn_decode_VkBool32(dec, &val->occlusionQueryPrecise);
480     vn_decode_VkBool32(dec, &val->pipelineStatisticsQuery);
481     vn_decode_VkBool32(dec, &val->vertexPipelineStoresAndAtomics);
482     vn_decode_VkBool32(dec, &val->fragmentStoresAndAtomics);
483     vn_decode_VkBool32(dec, &val->shaderTessellationAndGeometryPointSize);
484     vn_decode_VkBool32(dec, &val->shaderImageGatherExtended);
485     vn_decode_VkBool32(dec, &val->shaderStorageImageExtendedFormats);
486     vn_decode_VkBool32(dec, &val->shaderStorageImageMultisample);
487     vn_decode_VkBool32(dec, &val->shaderStorageImageReadWithoutFormat);
488     vn_decode_VkBool32(dec, &val->shaderStorageImageWriteWithoutFormat);
489     vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayDynamicIndexing);
490     vn_decode_VkBool32(dec, &val->shaderSampledImageArrayDynamicIndexing);
491     vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayDynamicIndexing);
492     vn_decode_VkBool32(dec, &val->shaderStorageImageArrayDynamicIndexing);
493     vn_decode_VkBool32(dec, &val->shaderClipDistance);
494     vn_decode_VkBool32(dec, &val->shaderCullDistance);
495     vn_decode_VkBool32(dec, &val->shaderFloat64);
496     vn_decode_VkBool32(dec, &val->shaderInt64);
497     vn_decode_VkBool32(dec, &val->shaderInt16);
498     vn_decode_VkBool32(dec, &val->shaderResourceResidency);
499     vn_decode_VkBool32(dec, &val->shaderResourceMinLod);
500     vn_decode_VkBool32(dec, &val->sparseBinding);
501     vn_decode_VkBool32(dec, &val->sparseResidencyBuffer);
502     vn_decode_VkBool32(dec, &val->sparseResidencyImage2D);
503     vn_decode_VkBool32(dec, &val->sparseResidencyImage3D);
504     vn_decode_VkBool32(dec, &val->sparseResidency2Samples);
505     vn_decode_VkBool32(dec, &val->sparseResidency4Samples);
506     vn_decode_VkBool32(dec, &val->sparseResidency8Samples);
507     vn_decode_VkBool32(dec, &val->sparseResidency16Samples);
508     vn_decode_VkBool32(dec, &val->sparseResidencyAliased);
509     vn_decode_VkBool32(dec, &val->variableMultisampleRate);
510     vn_decode_VkBool32(dec, &val->inheritedQueries);
511 }
512 
513 static inline void
vn_decode_VkPhysicalDeviceFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures * val)514 vn_decode_VkPhysicalDeviceFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures *val)
515 {
516     /* skip val->robustBufferAccess */
517     /* skip val->fullDrawIndexUint32 */
518     /* skip val->imageCubeArray */
519     /* skip val->independentBlend */
520     /* skip val->geometryShader */
521     /* skip val->tessellationShader */
522     /* skip val->sampleRateShading */
523     /* skip val->dualSrcBlend */
524     /* skip val->logicOp */
525     /* skip val->multiDrawIndirect */
526     /* skip val->drawIndirectFirstInstance */
527     /* skip val->depthClamp */
528     /* skip val->depthBiasClamp */
529     /* skip val->fillModeNonSolid */
530     /* skip val->depthBounds */
531     /* skip val->wideLines */
532     /* skip val->largePoints */
533     /* skip val->alphaToOne */
534     /* skip val->multiViewport */
535     /* skip val->samplerAnisotropy */
536     /* skip val->textureCompressionETC2 */
537     /* skip val->textureCompressionASTC_LDR */
538     /* skip val->textureCompressionBC */
539     /* skip val->occlusionQueryPrecise */
540     /* skip val->pipelineStatisticsQuery */
541     /* skip val->vertexPipelineStoresAndAtomics */
542     /* skip val->fragmentStoresAndAtomics */
543     /* skip val->shaderTessellationAndGeometryPointSize */
544     /* skip val->shaderImageGatherExtended */
545     /* skip val->shaderStorageImageExtendedFormats */
546     /* skip val->shaderStorageImageMultisample */
547     /* skip val->shaderStorageImageReadWithoutFormat */
548     /* skip val->shaderStorageImageWriteWithoutFormat */
549     /* skip val->shaderUniformBufferArrayDynamicIndexing */
550     /* skip val->shaderSampledImageArrayDynamicIndexing */
551     /* skip val->shaderStorageBufferArrayDynamicIndexing */
552     /* skip val->shaderStorageImageArrayDynamicIndexing */
553     /* skip val->shaderClipDistance */
554     /* skip val->shaderCullDistance */
555     /* skip val->shaderFloat64 */
556     /* skip val->shaderInt64 */
557     /* skip val->shaderInt16 */
558     /* skip val->shaderResourceResidency */
559     /* skip val->shaderResourceMinLod */
560     /* skip val->sparseBinding */
561     /* skip val->sparseResidencyBuffer */
562     /* skip val->sparseResidencyImage2D */
563     /* skip val->sparseResidencyImage3D */
564     /* skip val->sparseResidency2Samples */
565     /* skip val->sparseResidency4Samples */
566     /* skip val->sparseResidency8Samples */
567     /* skip val->sparseResidency16Samples */
568     /* skip val->sparseResidencyAliased */
569     /* skip val->variableMultisampleRate */
570     /* skip val->inheritedQueries */
571 }
572 
573 static inline void
vn_replace_VkPhysicalDeviceFeatures_handle(VkPhysicalDeviceFeatures * val)574 vn_replace_VkPhysicalDeviceFeatures_handle(VkPhysicalDeviceFeatures *val)
575 {
576     /* skip val->robustBufferAccess */
577     /* skip val->fullDrawIndexUint32 */
578     /* skip val->imageCubeArray */
579     /* skip val->independentBlend */
580     /* skip val->geometryShader */
581     /* skip val->tessellationShader */
582     /* skip val->sampleRateShading */
583     /* skip val->dualSrcBlend */
584     /* skip val->logicOp */
585     /* skip val->multiDrawIndirect */
586     /* skip val->drawIndirectFirstInstance */
587     /* skip val->depthClamp */
588     /* skip val->depthBiasClamp */
589     /* skip val->fillModeNonSolid */
590     /* skip val->depthBounds */
591     /* skip val->wideLines */
592     /* skip val->largePoints */
593     /* skip val->alphaToOne */
594     /* skip val->multiViewport */
595     /* skip val->samplerAnisotropy */
596     /* skip val->textureCompressionETC2 */
597     /* skip val->textureCompressionASTC_LDR */
598     /* skip val->textureCompressionBC */
599     /* skip val->occlusionQueryPrecise */
600     /* skip val->pipelineStatisticsQuery */
601     /* skip val->vertexPipelineStoresAndAtomics */
602     /* skip val->fragmentStoresAndAtomics */
603     /* skip val->shaderTessellationAndGeometryPointSize */
604     /* skip val->shaderImageGatherExtended */
605     /* skip val->shaderStorageImageExtendedFormats */
606     /* skip val->shaderStorageImageMultisample */
607     /* skip val->shaderStorageImageReadWithoutFormat */
608     /* skip val->shaderStorageImageWriteWithoutFormat */
609     /* skip val->shaderUniformBufferArrayDynamicIndexing */
610     /* skip val->shaderSampledImageArrayDynamicIndexing */
611     /* skip val->shaderStorageBufferArrayDynamicIndexing */
612     /* skip val->shaderStorageImageArrayDynamicIndexing */
613     /* skip val->shaderClipDistance */
614     /* skip val->shaderCullDistance */
615     /* skip val->shaderFloat64 */
616     /* skip val->shaderInt64 */
617     /* skip val->shaderInt16 */
618     /* skip val->shaderResourceResidency */
619     /* skip val->shaderResourceMinLod */
620     /* skip val->sparseBinding */
621     /* skip val->sparseResidencyBuffer */
622     /* skip val->sparseResidencyImage2D */
623     /* skip val->sparseResidencyImage3D */
624     /* skip val->sparseResidency2Samples */
625     /* skip val->sparseResidency4Samples */
626     /* skip val->sparseResidency8Samples */
627     /* skip val->sparseResidency16Samples */
628     /* skip val->sparseResidencyAliased */
629     /* skip val->variableMultisampleRate */
630     /* skip val->inheritedQueries */
631 }
632 
633 /* struct VkFormatProperties */
634 
635 static inline void
vn_encode_VkFormatProperties(struct vn_cs_encoder * enc,const VkFormatProperties * val)636 vn_encode_VkFormatProperties(struct vn_cs_encoder *enc, const VkFormatProperties *val)
637 {
638     vn_encode_VkFlags(enc, &val->linearTilingFeatures);
639     vn_encode_VkFlags(enc, &val->optimalTilingFeatures);
640     vn_encode_VkFlags(enc, &val->bufferFeatures);
641 }
642 
643 static inline void
vn_decode_VkFormatProperties_partial_temp(struct vn_cs_decoder * dec,VkFormatProperties * val)644 vn_decode_VkFormatProperties_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties *val)
645 {
646     /* skip val->linearTilingFeatures */
647     /* skip val->optimalTilingFeatures */
648     /* skip val->bufferFeatures */
649 }
650 
651 /* struct VkImageFormatProperties */
652 
653 static inline void
vn_encode_VkImageFormatProperties(struct vn_cs_encoder * enc,const VkImageFormatProperties * val)654 vn_encode_VkImageFormatProperties(struct vn_cs_encoder *enc, const VkImageFormatProperties *val)
655 {
656     vn_encode_VkExtent3D(enc, &val->maxExtent);
657     vn_encode_uint32_t(enc, &val->maxMipLevels);
658     vn_encode_uint32_t(enc, &val->maxArrayLayers);
659     vn_encode_VkFlags(enc, &val->sampleCounts);
660     vn_encode_VkDeviceSize(enc, &val->maxResourceSize);
661 }
662 
663 static inline void
vn_decode_VkImageFormatProperties_partial_temp(struct vn_cs_decoder * dec,VkImageFormatProperties * val)664 vn_decode_VkImageFormatProperties_partial_temp(struct vn_cs_decoder *dec, VkImageFormatProperties *val)
665 {
666     vn_decode_VkExtent3D_partial_temp(dec, &val->maxExtent);
667     /* skip val->maxMipLevels */
668     /* skip val->maxArrayLayers */
669     /* skip val->sampleCounts */
670     /* skip val->maxResourceSize */
671 }
672 
673 /* struct VkDeviceQueueCreateInfo chain */
674 
675 static inline void *
vn_decode_VkDeviceQueueCreateInfo_pnext_temp(struct vn_cs_decoder * dec)676 vn_decode_VkDeviceQueueCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
677 {
678     /* no known/supported struct */
679     if (vn_decode_simple_pointer(dec))
680         vn_cs_decoder_set_fatal(dec);
681     return NULL;
682 }
683 
684 static inline void
vn_decode_VkDeviceQueueCreateInfo_self_temp(struct vn_cs_decoder * dec,VkDeviceQueueCreateInfo * val)685 vn_decode_VkDeviceQueueCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDeviceQueueCreateInfo *val)
686 {
687     /* skip val->{sType,pNext} */
688     vn_decode_VkFlags(dec, &val->flags);
689     vn_decode_uint32_t(dec, &val->queueFamilyIndex);
690     vn_decode_uint32_t(dec, &val->queueCount);
691     if (vn_peek_array_size(dec)) {
692         const size_t array_size = vn_decode_array_size(dec, val->queueCount);
693         val->pQueuePriorities = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pQueuePriorities) * array_size);
694         if (!val->pQueuePriorities) return;
695         vn_decode_float_array(dec, (float *)val->pQueuePriorities, array_size);
696     } else {
697         vn_decode_array_size(dec, val->queueCount);
698         val->pQueuePriorities = NULL;
699     }
700 }
701 
702 static inline void
vn_decode_VkDeviceQueueCreateInfo_temp(struct vn_cs_decoder * dec,VkDeviceQueueCreateInfo * val)703 vn_decode_VkDeviceQueueCreateInfo_temp(struct vn_cs_decoder *dec, VkDeviceQueueCreateInfo *val)
704 {
705     VkStructureType stype;
706     vn_decode_VkStructureType(dec, &stype);
707     if (stype != VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO)
708         vn_cs_decoder_set_fatal(dec);
709 
710     val->sType = stype;
711     val->pNext = vn_decode_VkDeviceQueueCreateInfo_pnext_temp(dec);
712     vn_decode_VkDeviceQueueCreateInfo_self_temp(dec, val);
713 }
714 
715 static inline void
vn_replace_VkDeviceQueueCreateInfo_handle_self(VkDeviceQueueCreateInfo * val)716 vn_replace_VkDeviceQueueCreateInfo_handle_self(VkDeviceQueueCreateInfo *val)
717 {
718     /* skip val->sType */
719     /* skip val->pNext */
720     /* skip val->flags */
721     /* skip val->queueFamilyIndex */
722     /* skip val->queueCount */
723     /* skip val->pQueuePriorities */
724 }
725 
726 static inline void
vn_replace_VkDeviceQueueCreateInfo_handle(VkDeviceQueueCreateInfo * val)727 vn_replace_VkDeviceQueueCreateInfo_handle(VkDeviceQueueCreateInfo *val)
728 {
729     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
730 
731     do {
732         switch ((int32_t)pnext->sType) {
733         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:
734             vn_replace_VkDeviceQueueCreateInfo_handle_self((VkDeviceQueueCreateInfo *)pnext);
735             break;
736         default:
737             /* ignore unknown/unsupported struct */
738             break;
739         }
740         pnext = pnext->pNext;
741     } while (pnext);
742 }
743 
744 /* struct VkDevicePrivateDataCreateInfo chain */
745 
746 static inline void *
vn_decode_VkDevicePrivateDataCreateInfo_pnext_temp(struct vn_cs_decoder * dec)747 vn_decode_VkDevicePrivateDataCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
748 {
749     /* no known/supported struct */
750     if (vn_decode_simple_pointer(dec))
751         vn_cs_decoder_set_fatal(dec);
752     return NULL;
753 }
754 
755 static inline void
vn_decode_VkDevicePrivateDataCreateInfo_self_temp(struct vn_cs_decoder * dec,VkDevicePrivateDataCreateInfo * val)756 vn_decode_VkDevicePrivateDataCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDevicePrivateDataCreateInfo *val)
757 {
758     /* skip val->{sType,pNext} */
759     vn_decode_uint32_t(dec, &val->privateDataSlotRequestCount);
760 }
761 
762 static inline void
vn_decode_VkDevicePrivateDataCreateInfo_temp(struct vn_cs_decoder * dec,VkDevicePrivateDataCreateInfo * val)763 vn_decode_VkDevicePrivateDataCreateInfo_temp(struct vn_cs_decoder *dec, VkDevicePrivateDataCreateInfo *val)
764 {
765     VkStructureType stype;
766     vn_decode_VkStructureType(dec, &stype);
767     if (stype != VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO)
768         vn_cs_decoder_set_fatal(dec);
769 
770     val->sType = stype;
771     val->pNext = vn_decode_VkDevicePrivateDataCreateInfo_pnext_temp(dec);
772     vn_decode_VkDevicePrivateDataCreateInfo_self_temp(dec, val);
773 }
774 
775 static inline void
vn_replace_VkDevicePrivateDataCreateInfo_handle_self(VkDevicePrivateDataCreateInfo * val)776 vn_replace_VkDevicePrivateDataCreateInfo_handle_self(VkDevicePrivateDataCreateInfo *val)
777 {
778     /* skip val->sType */
779     /* skip val->pNext */
780     /* skip val->privateDataSlotRequestCount */
781 }
782 
783 static inline void
vn_replace_VkDevicePrivateDataCreateInfo_handle(VkDevicePrivateDataCreateInfo * val)784 vn_replace_VkDevicePrivateDataCreateInfo_handle(VkDevicePrivateDataCreateInfo *val)
785 {
786     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
787 
788     do {
789         switch ((int32_t)pnext->sType) {
790         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
791             vn_replace_VkDevicePrivateDataCreateInfo_handle_self((VkDevicePrivateDataCreateInfo *)pnext);
792             break;
793         default:
794             /* ignore unknown/unsupported struct */
795             break;
796         }
797         pnext = pnext->pNext;
798     } while (pnext);
799 }
800 
801 /* struct VkPhysicalDevicePrivateDataFeatures chain */
802 
803 static inline void
vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(struct vn_cs_encoder * enc,const void * val)804 vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
805 {
806     /* no known/supported struct */
807     vn_encode_simple_pointer(enc, NULL);
808 }
809 
810 static inline void
vn_encode_VkPhysicalDevicePrivateDataFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePrivateDataFeatures * val)811 vn_encode_VkPhysicalDevicePrivateDataFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
812 {
813     /* skip val->{sType,pNext} */
814     vn_encode_VkBool32(enc, &val->privateData);
815 }
816 
817 static inline void
vn_encode_VkPhysicalDevicePrivateDataFeatures(struct vn_cs_encoder * enc,const VkPhysicalDevicePrivateDataFeatures * val)818 vn_encode_VkPhysicalDevicePrivateDataFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
819 {
820     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES);
821     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES });
822     vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(enc, val->pNext);
823     vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, val);
824 }
825 
826 static inline void *
vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_temp(struct vn_cs_decoder * dec)827 vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_temp(struct vn_cs_decoder *dec)
828 {
829     /* no known/supported struct */
830     if (vn_decode_simple_pointer(dec))
831         vn_cs_decoder_set_fatal(dec);
832     return NULL;
833 }
834 
835 static inline void
vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrivateDataFeatures * val)836 vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
837 {
838     /* skip val->{sType,pNext} */
839     vn_decode_VkBool32(dec, &val->privateData);
840 }
841 
842 static inline void
vn_decode_VkPhysicalDevicePrivateDataFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrivateDataFeatures * val)843 vn_decode_VkPhysicalDevicePrivateDataFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
844 {
845     VkStructureType stype;
846     vn_decode_VkStructureType(dec, &stype);
847     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)
848         vn_cs_decoder_set_fatal(dec);
849 
850     val->sType = stype;
851     val->pNext = vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_temp(dec);
852     vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, val);
853 }
854 
855 static inline void *
vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)856 vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
857 {
858     /* no known/supported struct */
859     if (vn_decode_simple_pointer(dec))
860         vn_cs_decoder_set_fatal(dec);
861     return NULL;
862 }
863 
864 static inline void
vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrivateDataFeatures * val)865 vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
866 {
867     /* skip val->{sType,pNext} */
868     /* skip val->privateData */
869 }
870 
871 static inline void
vn_decode_VkPhysicalDevicePrivateDataFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrivateDataFeatures * val)872 vn_decode_VkPhysicalDevicePrivateDataFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
873 {
874     VkStructureType stype;
875     vn_decode_VkStructureType(dec, &stype);
876     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)
877         vn_cs_decoder_set_fatal(dec);
878 
879     val->sType = stype;
880     val->pNext = vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_partial_temp(dec);
881     vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(dec, val);
882 }
883 
884 static inline void
vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self(VkPhysicalDevicePrivateDataFeatures * val)885 vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self(VkPhysicalDevicePrivateDataFeatures *val)
886 {
887     /* skip val->sType */
888     /* skip val->pNext */
889     /* skip val->privateData */
890 }
891 
892 static inline void
vn_replace_VkPhysicalDevicePrivateDataFeatures_handle(VkPhysicalDevicePrivateDataFeatures * val)893 vn_replace_VkPhysicalDevicePrivateDataFeatures_handle(VkPhysicalDevicePrivateDataFeatures *val)
894 {
895     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
896 
897     do {
898         switch ((int32_t)pnext->sType) {
899         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
900             vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext);
901             break;
902         default:
903             /* ignore unknown/unsupported struct */
904             break;
905         }
906         pnext = pnext->pNext;
907     } while (pnext);
908 }
909 
910 /* struct VkPhysicalDeviceVariablePointersFeatures chain */
911 
912 static inline void
vn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext(struct vn_cs_encoder * enc,const void * val)913 vn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
914 {
915     /* no known/supported struct */
916     vn_encode_simple_pointer(enc, NULL);
917 }
918 
919 static inline void
vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVariablePointersFeatures * val)920 vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
921 {
922     /* skip val->{sType,pNext} */
923     vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer);
924     vn_encode_VkBool32(enc, &val->variablePointers);
925 }
926 
927 static inline void
vn_encode_VkPhysicalDeviceVariablePointersFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceVariablePointersFeatures * val)928 vn_encode_VkPhysicalDeviceVariablePointersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
929 {
930     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES);
931     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES });
932     vn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext(enc, val->pNext);
933     vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(enc, val);
934 }
935 
936 static inline void *
vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_temp(struct vn_cs_decoder * dec)937 vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_temp(struct vn_cs_decoder *dec)
938 {
939     /* no known/supported struct */
940     if (vn_decode_simple_pointer(dec))
941         vn_cs_decoder_set_fatal(dec);
942     return NULL;
943 }
944 
945 static inline void
vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVariablePointersFeatures * val)946 vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
947 {
948     /* skip val->{sType,pNext} */
949     vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer);
950     vn_decode_VkBool32(dec, &val->variablePointers);
951 }
952 
953 static inline void
vn_decode_VkPhysicalDeviceVariablePointersFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVariablePointersFeatures * val)954 vn_decode_VkPhysicalDeviceVariablePointersFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
955 {
956     VkStructureType stype;
957     vn_decode_VkStructureType(dec, &stype);
958     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES)
959         vn_cs_decoder_set_fatal(dec);
960 
961     val->sType = stype;
962     val->pNext = vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_temp(dec);
963     vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_temp(dec, val);
964 }
965 
966 static inline void *
vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)967 vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
968 {
969     /* no known/supported struct */
970     if (vn_decode_simple_pointer(dec))
971         vn_cs_decoder_set_fatal(dec);
972     return NULL;
973 }
974 
975 static inline void
vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVariablePointersFeatures * val)976 vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
977 {
978     /* skip val->{sType,pNext} */
979     /* skip val->variablePointersStorageBuffer */
980     /* skip val->variablePointers */
981 }
982 
983 static inline void
vn_decode_VkPhysicalDeviceVariablePointersFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVariablePointersFeatures * val)984 vn_decode_VkPhysicalDeviceVariablePointersFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
985 {
986     VkStructureType stype;
987     vn_decode_VkStructureType(dec, &stype);
988     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES)
989         vn_cs_decoder_set_fatal(dec);
990 
991     val->sType = stype;
992     val->pNext = vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext_partial_temp(dec);
993     vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_partial_temp(dec, val);
994 }
995 
996 static inline void
vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self(VkPhysicalDeviceVariablePointersFeatures * val)997 vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self(VkPhysicalDeviceVariablePointersFeatures *val)
998 {
999     /* skip val->sType */
1000     /* skip val->pNext */
1001     /* skip val->variablePointersStorageBuffer */
1002     /* skip val->variablePointers */
1003 }
1004 
1005 static inline void
vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle(VkPhysicalDeviceVariablePointersFeatures * val)1006 vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle(VkPhysicalDeviceVariablePointersFeatures *val)
1007 {
1008     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1009 
1010     do {
1011         switch ((int32_t)pnext->sType) {
1012         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
1013             vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self((VkPhysicalDeviceVariablePointersFeatures *)pnext);
1014             break;
1015         default:
1016             /* ignore unknown/unsupported struct */
1017             break;
1018         }
1019         pnext = pnext->pNext;
1020     } while (pnext);
1021 }
1022 
1023 /* struct VkPhysicalDeviceMultiviewFeatures chain */
1024 
1025 static inline void
vn_encode_VkPhysicalDeviceMultiviewFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1026 vn_encode_VkPhysicalDeviceMultiviewFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1027 {
1028     /* no known/supported struct */
1029     vn_encode_simple_pointer(enc, NULL);
1030 }
1031 
1032 static inline void
vn_encode_VkPhysicalDeviceMultiviewFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiviewFeatures * val)1033 vn_encode_VkPhysicalDeviceMultiviewFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1034 {
1035     /* skip val->{sType,pNext} */
1036     vn_encode_VkBool32(enc, &val->multiview);
1037     vn_encode_VkBool32(enc, &val->multiviewGeometryShader);
1038     vn_encode_VkBool32(enc, &val->multiviewTessellationShader);
1039 }
1040 
1041 static inline void
vn_encode_VkPhysicalDeviceMultiviewFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiviewFeatures * val)1042 vn_encode_VkPhysicalDeviceMultiviewFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1043 {
1044     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES);
1045     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES });
1046     vn_encode_VkPhysicalDeviceMultiviewFeatures_pnext(enc, val->pNext);
1047     vn_encode_VkPhysicalDeviceMultiviewFeatures_self(enc, val);
1048 }
1049 
1050 static inline void *
vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_temp(struct vn_cs_decoder * dec)1051 vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_temp(struct vn_cs_decoder *dec)
1052 {
1053     /* no known/supported struct */
1054     if (vn_decode_simple_pointer(dec))
1055         vn_cs_decoder_set_fatal(dec);
1056     return NULL;
1057 }
1058 
1059 static inline void
vn_decode_VkPhysicalDeviceMultiviewFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewFeatures * val)1060 vn_decode_VkPhysicalDeviceMultiviewFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1061 {
1062     /* skip val->{sType,pNext} */
1063     vn_decode_VkBool32(dec, &val->multiview);
1064     vn_decode_VkBool32(dec, &val->multiviewGeometryShader);
1065     vn_decode_VkBool32(dec, &val->multiviewTessellationShader);
1066 }
1067 
1068 static inline void
vn_decode_VkPhysicalDeviceMultiviewFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewFeatures * val)1069 vn_decode_VkPhysicalDeviceMultiviewFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1070 {
1071     VkStructureType stype;
1072     vn_decode_VkStructureType(dec, &stype);
1073     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES)
1074         vn_cs_decoder_set_fatal(dec);
1075 
1076     val->sType = stype;
1077     val->pNext = vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_temp(dec);
1078     vn_decode_VkPhysicalDeviceMultiviewFeatures_self_temp(dec, val);
1079 }
1080 
1081 static inline void *
vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1082 vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1083 {
1084     /* no known/supported struct */
1085     if (vn_decode_simple_pointer(dec))
1086         vn_cs_decoder_set_fatal(dec);
1087     return NULL;
1088 }
1089 
1090 static inline void
vn_decode_VkPhysicalDeviceMultiviewFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewFeatures * val)1091 vn_decode_VkPhysicalDeviceMultiviewFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1092 {
1093     /* skip val->{sType,pNext} */
1094     /* skip val->multiview */
1095     /* skip val->multiviewGeometryShader */
1096     /* skip val->multiviewTessellationShader */
1097 }
1098 
1099 static inline void
vn_decode_VkPhysicalDeviceMultiviewFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewFeatures * val)1100 vn_decode_VkPhysicalDeviceMultiviewFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1101 {
1102     VkStructureType stype;
1103     vn_decode_VkStructureType(dec, &stype);
1104     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES)
1105         vn_cs_decoder_set_fatal(dec);
1106 
1107     val->sType = stype;
1108     val->pNext = vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext_partial_temp(dec);
1109     vn_decode_VkPhysicalDeviceMultiviewFeatures_self_partial_temp(dec, val);
1110 }
1111 
1112 static inline void
vn_replace_VkPhysicalDeviceMultiviewFeatures_handle_self(VkPhysicalDeviceMultiviewFeatures * val)1113 vn_replace_VkPhysicalDeviceMultiviewFeatures_handle_self(VkPhysicalDeviceMultiviewFeatures *val)
1114 {
1115     /* skip val->sType */
1116     /* skip val->pNext */
1117     /* skip val->multiview */
1118     /* skip val->multiviewGeometryShader */
1119     /* skip val->multiviewTessellationShader */
1120 }
1121 
1122 static inline void
vn_replace_VkPhysicalDeviceMultiviewFeatures_handle(VkPhysicalDeviceMultiviewFeatures * val)1123 vn_replace_VkPhysicalDeviceMultiviewFeatures_handle(VkPhysicalDeviceMultiviewFeatures *val)
1124 {
1125     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1126 
1127     do {
1128         switch ((int32_t)pnext->sType) {
1129         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
1130             vn_replace_VkPhysicalDeviceMultiviewFeatures_handle_self((VkPhysicalDeviceMultiviewFeatures *)pnext);
1131             break;
1132         default:
1133             /* ignore unknown/unsupported struct */
1134             break;
1135         }
1136         pnext = pnext->pNext;
1137     } while (pnext);
1138 }
1139 
1140 /* struct VkPhysicalDevice16BitStorageFeatures chain */
1141 
1142 static inline void
vn_encode_VkPhysicalDevice16BitStorageFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1143 vn_encode_VkPhysicalDevice16BitStorageFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1144 {
1145     /* no known/supported struct */
1146     vn_encode_simple_pointer(enc, NULL);
1147 }
1148 
1149 static inline void
vn_encode_VkPhysicalDevice16BitStorageFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDevice16BitStorageFeatures * val)1150 vn_encode_VkPhysicalDevice16BitStorageFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1151 {
1152     /* skip val->{sType,pNext} */
1153     vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess);
1154     vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess);
1155     vn_encode_VkBool32(enc, &val->storagePushConstant16);
1156     vn_encode_VkBool32(enc, &val->storageInputOutput16);
1157 }
1158 
1159 static inline void
vn_encode_VkPhysicalDevice16BitStorageFeatures(struct vn_cs_encoder * enc,const VkPhysicalDevice16BitStorageFeatures * val)1160 vn_encode_VkPhysicalDevice16BitStorageFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1161 {
1162     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES);
1163     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES });
1164     vn_encode_VkPhysicalDevice16BitStorageFeatures_pnext(enc, val->pNext);
1165     vn_encode_VkPhysicalDevice16BitStorageFeatures_self(enc, val);
1166 }
1167 
1168 static inline void *
vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_temp(struct vn_cs_decoder * dec)1169 vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_temp(struct vn_cs_decoder *dec)
1170 {
1171     /* no known/supported struct */
1172     if (vn_decode_simple_pointer(dec))
1173         vn_cs_decoder_set_fatal(dec);
1174     return NULL;
1175 }
1176 
1177 static inline void
vn_decode_VkPhysicalDevice16BitStorageFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevice16BitStorageFeatures * val)1178 vn_decode_VkPhysicalDevice16BitStorageFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1179 {
1180     /* skip val->{sType,pNext} */
1181     vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess);
1182     vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess);
1183     vn_decode_VkBool32(dec, &val->storagePushConstant16);
1184     vn_decode_VkBool32(dec, &val->storageInputOutput16);
1185 }
1186 
1187 static inline void
vn_decode_VkPhysicalDevice16BitStorageFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDevice16BitStorageFeatures * val)1188 vn_decode_VkPhysicalDevice16BitStorageFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1189 {
1190     VkStructureType stype;
1191     vn_decode_VkStructureType(dec, &stype);
1192     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
1193         vn_cs_decoder_set_fatal(dec);
1194 
1195     val->sType = stype;
1196     val->pNext = vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_temp(dec);
1197     vn_decode_VkPhysicalDevice16BitStorageFeatures_self_temp(dec, val);
1198 }
1199 
1200 static inline void *
vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1201 vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1202 {
1203     /* no known/supported struct */
1204     if (vn_decode_simple_pointer(dec))
1205         vn_cs_decoder_set_fatal(dec);
1206     return NULL;
1207 }
1208 
1209 static inline void
vn_decode_VkPhysicalDevice16BitStorageFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice16BitStorageFeatures * val)1210 vn_decode_VkPhysicalDevice16BitStorageFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1211 {
1212     /* skip val->{sType,pNext} */
1213     /* skip val->storageBuffer16BitAccess */
1214     /* skip val->uniformAndStorageBuffer16BitAccess */
1215     /* skip val->storagePushConstant16 */
1216     /* skip val->storageInputOutput16 */
1217 }
1218 
1219 static inline void
vn_decode_VkPhysicalDevice16BitStorageFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice16BitStorageFeatures * val)1220 vn_decode_VkPhysicalDevice16BitStorageFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1221 {
1222     VkStructureType stype;
1223     vn_decode_VkStructureType(dec, &stype);
1224     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
1225         vn_cs_decoder_set_fatal(dec);
1226 
1227     val->sType = stype;
1228     val->pNext = vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext_partial_temp(dec);
1229     vn_decode_VkPhysicalDevice16BitStorageFeatures_self_partial_temp(dec, val);
1230 }
1231 
1232 static inline void
vn_replace_VkPhysicalDevice16BitStorageFeatures_handle_self(VkPhysicalDevice16BitStorageFeatures * val)1233 vn_replace_VkPhysicalDevice16BitStorageFeatures_handle_self(VkPhysicalDevice16BitStorageFeatures *val)
1234 {
1235     /* skip val->sType */
1236     /* skip val->pNext */
1237     /* skip val->storageBuffer16BitAccess */
1238     /* skip val->uniformAndStorageBuffer16BitAccess */
1239     /* skip val->storagePushConstant16 */
1240     /* skip val->storageInputOutput16 */
1241 }
1242 
1243 static inline void
vn_replace_VkPhysicalDevice16BitStorageFeatures_handle(VkPhysicalDevice16BitStorageFeatures * val)1244 vn_replace_VkPhysicalDevice16BitStorageFeatures_handle(VkPhysicalDevice16BitStorageFeatures *val)
1245 {
1246     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1247 
1248     do {
1249         switch ((int32_t)pnext->sType) {
1250         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
1251             vn_replace_VkPhysicalDevice16BitStorageFeatures_handle_self((VkPhysicalDevice16BitStorageFeatures *)pnext);
1252             break;
1253         default:
1254             /* ignore unknown/unsupported struct */
1255             break;
1256         }
1257         pnext = pnext->pNext;
1258     } while (pnext);
1259 }
1260 
1261 /* struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures chain */
1262 
1263 static inline void
vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1264 vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1265 {
1266     /* no known/supported struct */
1267     vn_encode_simple_pointer(enc, NULL);
1268 }
1269 
1270 static inline void
vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1271 vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1272 {
1273     /* skip val->{sType,pNext} */
1274     vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes);
1275 }
1276 
1277 static inline void
vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1278 vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1279 {
1280     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES);
1281     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES });
1282     vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(enc, val->pNext);
1283     vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(enc, val);
1284 }
1285 
1286 static inline void *
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_temp(struct vn_cs_decoder * dec)1287 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_temp(struct vn_cs_decoder *dec)
1288 {
1289     /* no known/supported struct */
1290     if (vn_decode_simple_pointer(dec))
1291         vn_cs_decoder_set_fatal(dec);
1292     return NULL;
1293 }
1294 
1295 static inline void
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1296 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1297 {
1298     /* skip val->{sType,pNext} */
1299     vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes);
1300 }
1301 
1302 static inline void
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1303 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1304 {
1305     VkStructureType stype;
1306     vn_decode_VkStructureType(dec, &stype);
1307     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES)
1308         vn_cs_decoder_set_fatal(dec);
1309 
1310     val->sType = stype;
1311     val->pNext = vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_temp(dec);
1312     vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_temp(dec, val);
1313 }
1314 
1315 static inline void *
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1316 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1317 {
1318     /* no known/supported struct */
1319     if (vn_decode_simple_pointer(dec))
1320         vn_cs_decoder_set_fatal(dec);
1321     return NULL;
1322 }
1323 
1324 static inline void
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1325 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1326 {
1327     /* skip val->{sType,pNext} */
1328     /* skip val->shaderSubgroupExtendedTypes */
1329 }
1330 
1331 static inline void
vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1332 vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1333 {
1334     VkStructureType stype;
1335     vn_decode_VkStructureType(dec, &stype);
1336     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES)
1337         vn_cs_decoder_set_fatal(dec);
1338 
1339     val->sType = stype;
1340     val->pNext = vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial_temp(dec);
1341     vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial_temp(dec, val);
1342 }
1343 
1344 static inline void
vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle_self(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1345 vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle_self(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1346 {
1347     /* skip val->sType */
1348     /* skip val->pNext */
1349     /* skip val->shaderSubgroupExtendedTypes */
1350 }
1351 
1352 static inline void
vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * val)1353 vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1354 {
1355     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1356 
1357     do {
1358         switch ((int32_t)pnext->sType) {
1359         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
1360             vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle_self((VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
1361             break;
1362         default:
1363             /* ignore unknown/unsupported struct */
1364             break;
1365         }
1366         pnext = pnext->pNext;
1367     } while (pnext);
1368 }
1369 
1370 /* struct VkPhysicalDeviceSamplerYcbcrConversionFeatures chain */
1371 
1372 static inline void
vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1373 vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1374 {
1375     /* no known/supported struct */
1376     vn_encode_simple_pointer(enc, NULL);
1377 }
1378 
1379 static inline void
vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1380 vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1381 {
1382     /* skip val->{sType,pNext} */
1383     vn_encode_VkBool32(enc, &val->samplerYcbcrConversion);
1384 }
1385 
1386 static inline void
vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1387 vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1388 {
1389     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES);
1390     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES });
1391     vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(enc, val->pNext);
1392     vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(enc, val);
1393 }
1394 
1395 static inline void *
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_temp(struct vn_cs_decoder * dec)1396 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_temp(struct vn_cs_decoder *dec)
1397 {
1398     /* no known/supported struct */
1399     if (vn_decode_simple_pointer(dec))
1400         vn_cs_decoder_set_fatal(dec);
1401     return NULL;
1402 }
1403 
1404 static inline void
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1405 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1406 {
1407     /* skip val->{sType,pNext} */
1408     vn_decode_VkBool32(dec, &val->samplerYcbcrConversion);
1409 }
1410 
1411 static inline void
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1412 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1413 {
1414     VkStructureType stype;
1415     vn_decode_VkStructureType(dec, &stype);
1416     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES)
1417         vn_cs_decoder_set_fatal(dec);
1418 
1419     val->sType = stype;
1420     val->pNext = vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_temp(dec);
1421     vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_temp(dec, val);
1422 }
1423 
1424 static inline void *
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1425 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1426 {
1427     /* no known/supported struct */
1428     if (vn_decode_simple_pointer(dec))
1429         vn_cs_decoder_set_fatal(dec);
1430     return NULL;
1431 }
1432 
1433 static inline void
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1434 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1435 {
1436     /* skip val->{sType,pNext} */
1437     /* skip val->samplerYcbcrConversion */
1438 }
1439 
1440 static inline void
vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1441 vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1442 {
1443     VkStructureType stype;
1444     vn_decode_VkStructureType(dec, &stype);
1445     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES)
1446         vn_cs_decoder_set_fatal(dec);
1447 
1448     val->sType = stype;
1449     val->pNext = vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial_temp(dec);
1450     vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial_temp(dec, val);
1451 }
1452 
1453 static inline void
vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle_self(VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1454 vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle_self(VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1455 {
1456     /* skip val->sType */
1457     /* skip val->pNext */
1458     /* skip val->samplerYcbcrConversion */
1459 }
1460 
1461 static inline void
vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle(VkPhysicalDeviceSamplerYcbcrConversionFeatures * val)1462 vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle(VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1463 {
1464     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1465 
1466     do {
1467         switch ((int32_t)pnext->sType) {
1468         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
1469             vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle_self((VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
1470             break;
1471         default:
1472             /* ignore unknown/unsupported struct */
1473             break;
1474         }
1475         pnext = pnext->pNext;
1476     } while (pnext);
1477 }
1478 
1479 /* struct VkPhysicalDeviceProtectedMemoryFeatures chain */
1480 
1481 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1482 vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1483 {
1484     /* no known/supported struct */
1485     vn_encode_simple_pointer(enc, NULL);
1486 }
1487 
1488 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceProtectedMemoryFeatures * val)1489 vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
1490 {
1491     /* skip val->{sType,pNext} */
1492     vn_encode_VkBool32(enc, &val->protectedMemory);
1493 }
1494 
1495 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceProtectedMemoryFeatures * val)1496 vn_encode_VkPhysicalDeviceProtectedMemoryFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
1497 {
1498     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES);
1499     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES });
1500     vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(enc, val->pNext);
1501     vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, val);
1502 }
1503 
1504 static inline void *
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_temp(struct vn_cs_decoder * dec)1505 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_temp(struct vn_cs_decoder *dec)
1506 {
1507     /* no known/supported struct */
1508     if (vn_decode_simple_pointer(dec))
1509         vn_cs_decoder_set_fatal(dec);
1510     return NULL;
1511 }
1512 
1513 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryFeatures * val)1514 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
1515 {
1516     /* skip val->{sType,pNext} */
1517     vn_decode_VkBool32(dec, &val->protectedMemory);
1518 }
1519 
1520 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryFeatures * val)1521 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
1522 {
1523     VkStructureType stype;
1524     vn_decode_VkStructureType(dec, &stype);
1525     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES)
1526         vn_cs_decoder_set_fatal(dec);
1527 
1528     val->sType = stype;
1529     val->pNext = vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_temp(dec);
1530     vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(dec, val);
1531 }
1532 
1533 static inline void *
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1534 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1535 {
1536     /* no known/supported struct */
1537     if (vn_decode_simple_pointer(dec))
1538         vn_cs_decoder_set_fatal(dec);
1539     return NULL;
1540 }
1541 
1542 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryFeatures * val)1543 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
1544 {
1545     /* skip val->{sType,pNext} */
1546     /* skip val->protectedMemory */
1547 }
1548 
1549 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryFeatures * val)1550 vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
1551 {
1552     VkStructureType stype;
1553     vn_decode_VkStructureType(dec, &stype);
1554     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES)
1555         vn_cs_decoder_set_fatal(dec);
1556 
1557     val->sType = stype;
1558     val->pNext = vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial_temp(dec);
1559     vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial_temp(dec, val);
1560 }
1561 
1562 static inline void
vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self(VkPhysicalDeviceProtectedMemoryFeatures * val)1563 vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self(VkPhysicalDeviceProtectedMemoryFeatures *val)
1564 {
1565     /* skip val->sType */
1566     /* skip val->pNext */
1567     /* skip val->protectedMemory */
1568 }
1569 
1570 static inline void
vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle(VkPhysicalDeviceProtectedMemoryFeatures * val)1571 vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle(VkPhysicalDeviceProtectedMemoryFeatures *val)
1572 {
1573     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1574 
1575     do {
1576         switch ((int32_t)pnext->sType) {
1577         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
1578             vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self((VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
1579             break;
1580         default:
1581             /* ignore unknown/unsupported struct */
1582             break;
1583         }
1584         pnext = pnext->pNext;
1585     } while (pnext);
1586 }
1587 
1588 /* struct VkPhysicalDeviceMultiDrawFeaturesEXT chain */
1589 
1590 static inline void
vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)1591 vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
1592 {
1593     /* no known/supported struct */
1594     vn_encode_simple_pointer(enc, NULL);
1595 }
1596 
1597 static inline void
vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiDrawFeaturesEXT * val)1598 vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1599 {
1600     /* skip val->{sType,pNext} */
1601     vn_encode_VkBool32(enc, &val->multiDraw);
1602 }
1603 
1604 static inline void
vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiDrawFeaturesEXT * val)1605 vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1606 {
1607     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT);
1608     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT });
1609     vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext(enc, val->pNext);
1610     vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_self(enc, val);
1611 }
1612 
1613 static inline void *
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)1614 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
1615 {
1616     /* no known/supported struct */
1617     if (vn_decode_simple_pointer(dec))
1618         vn_cs_decoder_set_fatal(dec);
1619     return NULL;
1620 }
1621 
1622 static inline void
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawFeaturesEXT * val)1623 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1624 {
1625     /* skip val->{sType,pNext} */
1626     vn_decode_VkBool32(dec, &val->multiDraw);
1627 }
1628 
1629 static inline void
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawFeaturesEXT * val)1630 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1631 {
1632     VkStructureType stype;
1633     vn_decode_VkStructureType(dec, &stype);
1634     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT)
1635         vn_cs_decoder_set_fatal(dec);
1636 
1637     val->sType = stype;
1638     val->pNext = vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_temp(dec);
1639     vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_temp(dec, val);
1640 }
1641 
1642 static inline void *
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)1643 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
1644 {
1645     /* no known/supported struct */
1646     if (vn_decode_simple_pointer(dec))
1647         vn_cs_decoder_set_fatal(dec);
1648     return NULL;
1649 }
1650 
1651 static inline void
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawFeaturesEXT * val)1652 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1653 {
1654     /* skip val->{sType,pNext} */
1655     /* skip val->multiDraw */
1656 }
1657 
1658 static inline void
vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawFeaturesEXT * val)1659 vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1660 {
1661     VkStructureType stype;
1662     vn_decode_VkStructureType(dec, &stype);
1663     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT)
1664         vn_cs_decoder_set_fatal(dec);
1665 
1666     val->sType = stype;
1667     val->pNext = vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_pnext_partial_temp(dec);
1668     vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_partial_temp(dec, val);
1669 }
1670 
1671 static inline void
vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle_self(VkPhysicalDeviceMultiDrawFeaturesEXT * val)1672 vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle_self(VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1673 {
1674     /* skip val->sType */
1675     /* skip val->pNext */
1676     /* skip val->multiDraw */
1677 }
1678 
1679 static inline void
vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle(VkPhysicalDeviceMultiDrawFeaturesEXT * val)1680 vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle(VkPhysicalDeviceMultiDrawFeaturesEXT *val)
1681 {
1682     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1683 
1684     do {
1685         switch ((int32_t)pnext->sType) {
1686         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
1687             vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle_self((VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
1688             break;
1689         default:
1690             /* ignore unknown/unsupported struct */
1691             break;
1692         }
1693         pnext = pnext->pNext;
1694     } while (pnext);
1695 }
1696 
1697 /* struct VkPhysicalDeviceInlineUniformBlockFeatures chain */
1698 
1699 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1700 vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1701 {
1702     /* no known/supported struct */
1703     vn_encode_simple_pointer(enc, NULL);
1704 }
1705 
1706 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceInlineUniformBlockFeatures * val)1707 vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
1708 {
1709     /* skip val->{sType,pNext} */
1710     vn_encode_VkBool32(enc, &val->inlineUniformBlock);
1711     vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
1712 }
1713 
1714 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceInlineUniformBlockFeatures * val)1715 vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
1716 {
1717     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES);
1718     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES });
1719     vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(enc, val->pNext);
1720     vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, val);
1721 }
1722 
1723 static inline void *
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_temp(struct vn_cs_decoder * dec)1724 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_temp(struct vn_cs_decoder *dec)
1725 {
1726     /* no known/supported struct */
1727     if (vn_decode_simple_pointer(dec))
1728         vn_cs_decoder_set_fatal(dec);
1729     return NULL;
1730 }
1731 
1732 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockFeatures * val)1733 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
1734 {
1735     /* skip val->{sType,pNext} */
1736     vn_decode_VkBool32(dec, &val->inlineUniformBlock);
1737     vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
1738 }
1739 
1740 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockFeatures * val)1741 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
1742 {
1743     VkStructureType stype;
1744     vn_decode_VkStructureType(dec, &stype);
1745     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)
1746         vn_cs_decoder_set_fatal(dec);
1747 
1748     val->sType = stype;
1749     val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_temp(dec);
1750     vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, val);
1751 }
1752 
1753 static inline void *
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1754 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1755 {
1756     /* no known/supported struct */
1757     if (vn_decode_simple_pointer(dec))
1758         vn_cs_decoder_set_fatal(dec);
1759     return NULL;
1760 }
1761 
1762 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockFeatures * val)1763 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
1764 {
1765     /* skip val->{sType,pNext} */
1766     /* skip val->inlineUniformBlock */
1767     /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
1768 }
1769 
1770 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockFeatures * val)1771 vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
1772 {
1773     VkStructureType stype;
1774     vn_decode_VkStructureType(dec, &stype);
1775     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)
1776         vn_cs_decoder_set_fatal(dec);
1777 
1778     val->sType = stype;
1779     val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial_temp(dec);
1780     vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(dec, val);
1781 }
1782 
1783 static inline void
vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self(VkPhysicalDeviceInlineUniformBlockFeatures * val)1784 vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self(VkPhysicalDeviceInlineUniformBlockFeatures *val)
1785 {
1786     /* skip val->sType */
1787     /* skip val->pNext */
1788     /* skip val->inlineUniformBlock */
1789     /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
1790 }
1791 
1792 static inline void
vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle(VkPhysicalDeviceInlineUniformBlockFeatures * val)1793 vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle(VkPhysicalDeviceInlineUniformBlockFeatures *val)
1794 {
1795     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1796 
1797     do {
1798         switch ((int32_t)pnext->sType) {
1799         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
1800             vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
1801             break;
1802         default:
1803             /* ignore unknown/unsupported struct */
1804             break;
1805         }
1806         pnext = pnext->pNext;
1807     } while (pnext);
1808 }
1809 
1810 /* struct VkPhysicalDeviceMaintenance4Features chain */
1811 
1812 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(struct vn_cs_encoder * enc,const void * val)1813 vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(struct vn_cs_encoder *enc, const void *val)
1814 {
1815     /* no known/supported struct */
1816     vn_encode_simple_pointer(enc, NULL);
1817 }
1818 
1819 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance4Features * val)1820 vn_encode_VkPhysicalDeviceMaintenance4Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
1821 {
1822     /* skip val->{sType,pNext} */
1823     vn_encode_VkBool32(enc, &val->maintenance4);
1824 }
1825 
1826 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance4Features * val)1827 vn_encode_VkPhysicalDeviceMaintenance4Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
1828 {
1829     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES);
1830     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES });
1831     vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(enc, val->pNext);
1832     vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, val);
1833 }
1834 
1835 static inline void *
vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_temp(struct vn_cs_decoder * dec)1836 vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_temp(struct vn_cs_decoder *dec)
1837 {
1838     /* no known/supported struct */
1839     if (vn_decode_simple_pointer(dec))
1840         vn_cs_decoder_set_fatal(dec);
1841     return NULL;
1842 }
1843 
1844 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Features * val)1845 vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
1846 {
1847     /* skip val->{sType,pNext} */
1848     vn_decode_VkBool32(dec, &val->maintenance4);
1849 }
1850 
1851 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Features * val)1852 vn_decode_VkPhysicalDeviceMaintenance4Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
1853 {
1854     VkStructureType stype;
1855     vn_decode_VkStructureType(dec, &stype);
1856     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)
1857         vn_cs_decoder_set_fatal(dec);
1858 
1859     val->sType = stype;
1860     val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_temp(dec);
1861     vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, val);
1862 }
1863 
1864 static inline void *
vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_partial_temp(struct vn_cs_decoder * dec)1865 vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_partial_temp(struct vn_cs_decoder *dec)
1866 {
1867     /* no known/supported struct */
1868     if (vn_decode_simple_pointer(dec))
1869         vn_cs_decoder_set_fatal(dec);
1870     return NULL;
1871 }
1872 
1873 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Features * val)1874 vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
1875 {
1876     /* skip val->{sType,pNext} */
1877     /* skip val->maintenance4 */
1878 }
1879 
1880 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Features * val)1881 vn_decode_VkPhysicalDeviceMaintenance4Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
1882 {
1883     VkStructureType stype;
1884     vn_decode_VkStructureType(dec, &stype);
1885     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)
1886         vn_cs_decoder_set_fatal(dec);
1887 
1888     val->sType = stype;
1889     val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_partial_temp(dec);
1890     vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(dec, val);
1891 }
1892 
1893 static inline void
vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self(VkPhysicalDeviceMaintenance4Features * val)1894 vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self(VkPhysicalDeviceMaintenance4Features *val)
1895 {
1896     /* skip val->sType */
1897     /* skip val->pNext */
1898     /* skip val->maintenance4 */
1899 }
1900 
1901 static inline void
vn_replace_VkPhysicalDeviceMaintenance4Features_handle(VkPhysicalDeviceMaintenance4Features * val)1902 vn_replace_VkPhysicalDeviceMaintenance4Features_handle(VkPhysicalDeviceMaintenance4Features *val)
1903 {
1904     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
1905 
1906     do {
1907         switch ((int32_t)pnext->sType) {
1908         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
1909             vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext);
1910             break;
1911         default:
1912             /* ignore unknown/unsupported struct */
1913             break;
1914         }
1915         pnext = pnext->pNext;
1916     } while (pnext);
1917 }
1918 
1919 /* struct VkPhysicalDeviceShaderDrawParametersFeatures chain */
1920 
1921 static inline void
vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_encoder * enc,const void * val)1922 vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1923 {
1924     /* no known/supported struct */
1925     vn_encode_simple_pointer(enc, NULL);
1926 }
1927 
1928 static inline void
vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderDrawParametersFeatures * val)1929 vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
1930 {
1931     /* skip val->{sType,pNext} */
1932     vn_encode_VkBool32(enc, &val->shaderDrawParameters);
1933 }
1934 
1935 static inline void
vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderDrawParametersFeatures * val)1936 vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
1937 {
1938     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES);
1939     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES });
1940     vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(enc, val->pNext);
1941     vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, val);
1942 }
1943 
1944 static inline void *
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(struct vn_cs_decoder * dec)1945 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(struct vn_cs_decoder *dec)
1946 {
1947     /* no known/supported struct */
1948     if (vn_decode_simple_pointer(dec))
1949         vn_cs_decoder_set_fatal(dec);
1950     return NULL;
1951 }
1952 
1953 static inline void
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDrawParametersFeatures * val)1954 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
1955 {
1956     /* skip val->{sType,pNext} */
1957     vn_decode_VkBool32(dec, &val->shaderDrawParameters);
1958 }
1959 
1960 static inline void
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDrawParametersFeatures * val)1961 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
1962 {
1963     VkStructureType stype;
1964     vn_decode_VkStructureType(dec, &stype);
1965     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES)
1966         vn_cs_decoder_set_fatal(dec);
1967 
1968     val->sType = stype;
1969     val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(dec);
1970     vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(dec, val);
1971 }
1972 
1973 static inline void *
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)1974 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
1975 {
1976     /* no known/supported struct */
1977     if (vn_decode_simple_pointer(dec))
1978         vn_cs_decoder_set_fatal(dec);
1979     return NULL;
1980 }
1981 
1982 static inline void
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDrawParametersFeatures * val)1983 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
1984 {
1985     /* skip val->{sType,pNext} */
1986     /* skip val->shaderDrawParameters */
1987 }
1988 
1989 static inline void
vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDrawParametersFeatures * val)1990 vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
1991 {
1992     VkStructureType stype;
1993     vn_decode_VkStructureType(dec, &stype);
1994     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES)
1995         vn_cs_decoder_set_fatal(dec);
1996 
1997     val->sType = stype;
1998     val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(dec);
1999     vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(dec, val);
2000 }
2001 
2002 static inline void
vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self(VkPhysicalDeviceShaderDrawParametersFeatures * val)2003 vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self(VkPhysicalDeviceShaderDrawParametersFeatures *val)
2004 {
2005     /* skip val->sType */
2006     /* skip val->pNext */
2007     /* skip val->shaderDrawParameters */
2008 }
2009 
2010 static inline void
vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle(VkPhysicalDeviceShaderDrawParametersFeatures * val)2011 vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle(VkPhysicalDeviceShaderDrawParametersFeatures *val)
2012 {
2013     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2014 
2015     do {
2016         switch ((int32_t)pnext->sType) {
2017         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
2018             vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
2019             break;
2020         default:
2021             /* ignore unknown/unsupported struct */
2022             break;
2023         }
2024         pnext = pnext->pNext;
2025     } while (pnext);
2026 }
2027 
2028 /* struct VkPhysicalDeviceShaderFloat16Int8Features chain */
2029 
2030 static inline void
vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_encoder * enc,const void * val)2031 vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_encoder *enc, const void *val)
2032 {
2033     /* no known/supported struct */
2034     vn_encode_simple_pointer(enc, NULL);
2035 }
2036 
2037 static inline void
vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderFloat16Int8Features * val)2038 vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2039 {
2040     /* skip val->{sType,pNext} */
2041     vn_encode_VkBool32(enc, &val->shaderFloat16);
2042     vn_encode_VkBool32(enc, &val->shaderInt8);
2043 }
2044 
2045 static inline void
vn_encode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderFloat16Int8Features * val)2046 vn_encode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2047 {
2048     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES);
2049     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES });
2050     vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(enc, val->pNext);
2051     vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, val);
2052 }
2053 
2054 static inline void *
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(struct vn_cs_decoder * dec)2055 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(struct vn_cs_decoder *dec)
2056 {
2057     /* no known/supported struct */
2058     if (vn_decode_simple_pointer(dec))
2059         vn_cs_decoder_set_fatal(dec);
2060     return NULL;
2061 }
2062 
2063 static inline void
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderFloat16Int8Features * val)2064 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2065 {
2066     /* skip val->{sType,pNext} */
2067     vn_decode_VkBool32(dec, &val->shaderFloat16);
2068     vn_decode_VkBool32(dec, &val->shaderInt8);
2069 }
2070 
2071 static inline void
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderFloat16Int8Features * val)2072 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2073 {
2074     VkStructureType stype;
2075     vn_decode_VkStructureType(dec, &stype);
2076     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
2077         vn_cs_decoder_set_fatal(dec);
2078 
2079     val->sType = stype;
2080     val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(dec);
2081     vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(dec, val);
2082 }
2083 
2084 static inline void *
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(struct vn_cs_decoder * dec)2085 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(struct vn_cs_decoder *dec)
2086 {
2087     /* no known/supported struct */
2088     if (vn_decode_simple_pointer(dec))
2089         vn_cs_decoder_set_fatal(dec);
2090     return NULL;
2091 }
2092 
2093 static inline void
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderFloat16Int8Features * val)2094 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2095 {
2096     /* skip val->{sType,pNext} */
2097     /* skip val->shaderFloat16 */
2098     /* skip val->shaderInt8 */
2099 }
2100 
2101 static inline void
vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderFloat16Int8Features * val)2102 vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2103 {
2104     VkStructureType stype;
2105     vn_decode_VkStructureType(dec, &stype);
2106     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
2107         vn_cs_decoder_set_fatal(dec);
2108 
2109     val->sType = stype;
2110     val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(dec);
2111     vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(dec, val);
2112 }
2113 
2114 static inline void
vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self(VkPhysicalDeviceShaderFloat16Int8Features * val)2115 vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self(VkPhysicalDeviceShaderFloat16Int8Features *val)
2116 {
2117     /* skip val->sType */
2118     /* skip val->pNext */
2119     /* skip val->shaderFloat16 */
2120     /* skip val->shaderInt8 */
2121 }
2122 
2123 static inline void
vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle(VkPhysicalDeviceShaderFloat16Int8Features * val)2124 vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle(VkPhysicalDeviceShaderFloat16Int8Features *val)
2125 {
2126     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2127 
2128     do {
2129         switch ((int32_t)pnext->sType) {
2130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
2131             vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self((VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
2132             break;
2133         default:
2134             /* ignore unknown/unsupported struct */
2135             break;
2136         }
2137         pnext = pnext->pNext;
2138     } while (pnext);
2139 }
2140 
2141 /* struct VkPhysicalDeviceHostQueryResetFeatures chain */
2142 
2143 static inline void
vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_encoder * enc,const void * val)2144 vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2145 {
2146     /* no known/supported struct */
2147     vn_encode_simple_pointer(enc, NULL);
2148 }
2149 
2150 static inline void
vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceHostQueryResetFeatures * val)2151 vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2152 {
2153     /* skip val->{sType,pNext} */
2154     vn_encode_VkBool32(enc, &val->hostQueryReset);
2155 }
2156 
2157 static inline void
vn_encode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceHostQueryResetFeatures * val)2158 vn_encode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2159 {
2160     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES);
2161     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES });
2162     vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(enc, val->pNext);
2163     vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, val);
2164 }
2165 
2166 static inline void *
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(struct vn_cs_decoder * dec)2167 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(struct vn_cs_decoder *dec)
2168 {
2169     /* no known/supported struct */
2170     if (vn_decode_simple_pointer(dec))
2171         vn_cs_decoder_set_fatal(dec);
2172     return NULL;
2173 }
2174 
2175 static inline void
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceHostQueryResetFeatures * val)2176 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2177 {
2178     /* skip val->{sType,pNext} */
2179     vn_decode_VkBool32(dec, &val->hostQueryReset);
2180 }
2181 
2182 static inline void
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceHostQueryResetFeatures * val)2183 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2184 {
2185     VkStructureType stype;
2186     vn_decode_VkStructureType(dec, &stype);
2187     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES)
2188         vn_cs_decoder_set_fatal(dec);
2189 
2190     val->sType = stype;
2191     val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(dec);
2192     vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(dec, val);
2193 }
2194 
2195 static inline void *
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)2196 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
2197 {
2198     /* no known/supported struct */
2199     if (vn_decode_simple_pointer(dec))
2200         vn_cs_decoder_set_fatal(dec);
2201     return NULL;
2202 }
2203 
2204 static inline void
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceHostQueryResetFeatures * val)2205 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2206 {
2207     /* skip val->{sType,pNext} */
2208     /* skip val->hostQueryReset */
2209 }
2210 
2211 static inline void
vn_decode_VkPhysicalDeviceHostQueryResetFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceHostQueryResetFeatures * val)2212 vn_decode_VkPhysicalDeviceHostQueryResetFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2213 {
2214     VkStructureType stype;
2215     vn_decode_VkStructureType(dec, &stype);
2216     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES)
2217         vn_cs_decoder_set_fatal(dec);
2218 
2219     val->sType = stype;
2220     val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(dec);
2221     vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(dec, val);
2222 }
2223 
2224 static inline void
vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self(VkPhysicalDeviceHostQueryResetFeatures * val)2225 vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self(VkPhysicalDeviceHostQueryResetFeatures *val)
2226 {
2227     /* skip val->sType */
2228     /* skip val->pNext */
2229     /* skip val->hostQueryReset */
2230 }
2231 
2232 static inline void
vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle(VkPhysicalDeviceHostQueryResetFeatures * val)2233 vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle(VkPhysicalDeviceHostQueryResetFeatures *val)
2234 {
2235     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2236 
2237     do {
2238         switch ((int32_t)pnext->sType) {
2239         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
2240             vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self((VkPhysicalDeviceHostQueryResetFeatures *)pnext);
2241             break;
2242         default:
2243             /* ignore unknown/unsupported struct */
2244             break;
2245         }
2246         pnext = pnext->pNext;
2247     } while (pnext);
2248 }
2249 
2250 /* struct VkPhysicalDeviceDescriptorIndexingFeatures chain */
2251 
2252 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_encoder * enc,const void * val)2253 vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2254 {
2255     /* no known/supported struct */
2256     vn_encode_simple_pointer(enc, NULL);
2257 }
2258 
2259 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDescriptorIndexingFeatures * val)2260 vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2261 {
2262     /* skip val->{sType,pNext} */
2263     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing);
2264     vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing);
2265     vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing);
2266     vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing);
2267     vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing);
2268     vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing);
2269     vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing);
2270     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing);
2271     vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
2272     vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
2273     vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind);
2274     vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind);
2275     vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind);
2276     vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind);
2277     vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
2278     vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
2279     vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending);
2280     vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound);
2281     vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount);
2282     vn_encode_VkBool32(enc, &val->runtimeDescriptorArray);
2283 }
2284 
2285 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceDescriptorIndexingFeatures * val)2286 vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2287 {
2288     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES);
2289     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES });
2290     vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(enc, val->pNext);
2291     vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(enc, val);
2292 }
2293 
2294 static inline void *
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_temp(struct vn_cs_decoder * dec)2295 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_temp(struct vn_cs_decoder *dec)
2296 {
2297     /* no known/supported struct */
2298     if (vn_decode_simple_pointer(dec))
2299         vn_cs_decoder_set_fatal(dec);
2300     return NULL;
2301 }
2302 
2303 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingFeatures * val)2304 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
2305 {
2306     /* skip val->{sType,pNext} */
2307     vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing);
2308     vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing);
2309     vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing);
2310     vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing);
2311     vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing);
2312     vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing);
2313     vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing);
2314     vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing);
2315     vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
2316     vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
2317     vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind);
2318     vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind);
2319     vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind);
2320     vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind);
2321     vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
2322     vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
2323     vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending);
2324     vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound);
2325     vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount);
2326     vn_decode_VkBool32(dec, &val->runtimeDescriptorArray);
2327 }
2328 
2329 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingFeatures * val)2330 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
2331 {
2332     VkStructureType stype;
2333     vn_decode_VkStructureType(dec, &stype);
2334     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES)
2335         vn_cs_decoder_set_fatal(dec);
2336 
2337     val->sType = stype;
2338     val->pNext = vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_temp(dec);
2339     vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_temp(dec, val);
2340 }
2341 
2342 static inline void *
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)2343 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
2344 {
2345     /* no known/supported struct */
2346     if (vn_decode_simple_pointer(dec))
2347         vn_cs_decoder_set_fatal(dec);
2348     return NULL;
2349 }
2350 
2351 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingFeatures * val)2352 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
2353 {
2354     /* skip val->{sType,pNext} */
2355     /* skip val->shaderInputAttachmentArrayDynamicIndexing */
2356     /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
2357     /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
2358     /* skip val->shaderUniformBufferArrayNonUniformIndexing */
2359     /* skip val->shaderSampledImageArrayNonUniformIndexing */
2360     /* skip val->shaderStorageBufferArrayNonUniformIndexing */
2361     /* skip val->shaderStorageImageArrayNonUniformIndexing */
2362     /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
2363     /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
2364     /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
2365     /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
2366     /* skip val->descriptorBindingSampledImageUpdateAfterBind */
2367     /* skip val->descriptorBindingStorageImageUpdateAfterBind */
2368     /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
2369     /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
2370     /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
2371     /* skip val->descriptorBindingUpdateUnusedWhilePending */
2372     /* skip val->descriptorBindingPartiallyBound */
2373     /* skip val->descriptorBindingVariableDescriptorCount */
2374     /* skip val->runtimeDescriptorArray */
2375 }
2376 
2377 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingFeatures * val)2378 vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
2379 {
2380     VkStructureType stype;
2381     vn_decode_VkStructureType(dec, &stype);
2382     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES)
2383         vn_cs_decoder_set_fatal(dec);
2384 
2385     val->sType = stype;
2386     val->pNext = vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial_temp(dec);
2387     vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial_temp(dec, val);
2388 }
2389 
2390 static inline void
vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle_self(VkPhysicalDeviceDescriptorIndexingFeatures * val)2391 vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle_self(VkPhysicalDeviceDescriptorIndexingFeatures *val)
2392 {
2393     /* skip val->sType */
2394     /* skip val->pNext */
2395     /* skip val->shaderInputAttachmentArrayDynamicIndexing */
2396     /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
2397     /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
2398     /* skip val->shaderUniformBufferArrayNonUniformIndexing */
2399     /* skip val->shaderSampledImageArrayNonUniformIndexing */
2400     /* skip val->shaderStorageBufferArrayNonUniformIndexing */
2401     /* skip val->shaderStorageImageArrayNonUniformIndexing */
2402     /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
2403     /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
2404     /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
2405     /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
2406     /* skip val->descriptorBindingSampledImageUpdateAfterBind */
2407     /* skip val->descriptorBindingStorageImageUpdateAfterBind */
2408     /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
2409     /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
2410     /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
2411     /* skip val->descriptorBindingUpdateUnusedWhilePending */
2412     /* skip val->descriptorBindingPartiallyBound */
2413     /* skip val->descriptorBindingVariableDescriptorCount */
2414     /* skip val->runtimeDescriptorArray */
2415 }
2416 
2417 static inline void
vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle(VkPhysicalDeviceDescriptorIndexingFeatures * val)2418 vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle(VkPhysicalDeviceDescriptorIndexingFeatures *val)
2419 {
2420     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2421 
2422     do {
2423         switch ((int32_t)pnext->sType) {
2424         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
2425             vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle_self((VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
2426             break;
2427         default:
2428             /* ignore unknown/unsupported struct */
2429             break;
2430         }
2431         pnext = pnext->pNext;
2432     } while (pnext);
2433 }
2434 
2435 /* struct VkPhysicalDeviceTimelineSemaphoreFeatures chain */
2436 
2437 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(struct vn_cs_encoder * enc,const void * val)2438 vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2439 {
2440     /* no known/supported struct */
2441     vn_encode_simple_pointer(enc, NULL);
2442 }
2443 
2444 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTimelineSemaphoreFeatures * val)2445 vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2446 {
2447     /* skip val->{sType,pNext} */
2448     vn_encode_VkBool32(enc, &val->timelineSemaphore);
2449 }
2450 
2451 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceTimelineSemaphoreFeatures * val)2452 vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2453 {
2454     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES);
2455     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES });
2456     vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(enc, val->pNext);
2457     vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(enc, val);
2458 }
2459 
2460 static inline void *
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_temp(struct vn_cs_decoder * dec)2461 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_temp(struct vn_cs_decoder *dec)
2462 {
2463     /* no known/supported struct */
2464     if (vn_decode_simple_pointer(dec))
2465         vn_cs_decoder_set_fatal(dec);
2466     return NULL;
2467 }
2468 
2469 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreFeatures * val)2470 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2471 {
2472     /* skip val->{sType,pNext} */
2473     vn_decode_VkBool32(dec, &val->timelineSemaphore);
2474 }
2475 
2476 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreFeatures * val)2477 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2478 {
2479     VkStructureType stype;
2480     vn_decode_VkStructureType(dec, &stype);
2481     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES)
2482         vn_cs_decoder_set_fatal(dec);
2483 
2484     val->sType = stype;
2485     val->pNext = vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_temp(dec);
2486     vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(dec, val);
2487 }
2488 
2489 static inline void *
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)2490 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
2491 {
2492     /* no known/supported struct */
2493     if (vn_decode_simple_pointer(dec))
2494         vn_cs_decoder_set_fatal(dec);
2495     return NULL;
2496 }
2497 
2498 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreFeatures * val)2499 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2500 {
2501     /* skip val->{sType,pNext} */
2502     /* skip val->timelineSemaphore */
2503 }
2504 
2505 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreFeatures * val)2506 vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2507 {
2508     VkStructureType stype;
2509     vn_decode_VkStructureType(dec, &stype);
2510     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES)
2511         vn_cs_decoder_set_fatal(dec);
2512 
2513     val->sType = stype;
2514     val->pNext = vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial_temp(dec);
2515     vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial_temp(dec, val);
2516 }
2517 
2518 static inline void
vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle_self(VkPhysicalDeviceTimelineSemaphoreFeatures * val)2519 vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle_self(VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2520 {
2521     /* skip val->sType */
2522     /* skip val->pNext */
2523     /* skip val->timelineSemaphore */
2524 }
2525 
2526 static inline void
vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle(VkPhysicalDeviceTimelineSemaphoreFeatures * val)2527 vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle(VkPhysicalDeviceTimelineSemaphoreFeatures *val)
2528 {
2529     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2530 
2531     do {
2532         switch ((int32_t)pnext->sType) {
2533         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
2534             vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle_self((VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
2535             break;
2536         default:
2537             /* ignore unknown/unsupported struct */
2538             break;
2539         }
2540         pnext = pnext->pNext;
2541     } while (pnext);
2542 }
2543 
2544 /* struct VkPhysicalDevice8BitStorageFeatures chain */
2545 
2546 static inline void
vn_encode_VkPhysicalDevice8BitStorageFeatures_pnext(struct vn_cs_encoder * enc,const void * val)2547 vn_encode_VkPhysicalDevice8BitStorageFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2548 {
2549     /* no known/supported struct */
2550     vn_encode_simple_pointer(enc, NULL);
2551 }
2552 
2553 static inline void
vn_encode_VkPhysicalDevice8BitStorageFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDevice8BitStorageFeatures * val)2554 vn_encode_VkPhysicalDevice8BitStorageFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
2555 {
2556     /* skip val->{sType,pNext} */
2557     vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess);
2558     vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess);
2559     vn_encode_VkBool32(enc, &val->storagePushConstant8);
2560 }
2561 
2562 static inline void
vn_encode_VkPhysicalDevice8BitStorageFeatures(struct vn_cs_encoder * enc,const VkPhysicalDevice8BitStorageFeatures * val)2563 vn_encode_VkPhysicalDevice8BitStorageFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
2564 {
2565     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES);
2566     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES });
2567     vn_encode_VkPhysicalDevice8BitStorageFeatures_pnext(enc, val->pNext);
2568     vn_encode_VkPhysicalDevice8BitStorageFeatures_self(enc, val);
2569 }
2570 
2571 static inline void *
vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_temp(struct vn_cs_decoder * dec)2572 vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_temp(struct vn_cs_decoder *dec)
2573 {
2574     /* no known/supported struct */
2575     if (vn_decode_simple_pointer(dec))
2576         vn_cs_decoder_set_fatal(dec);
2577     return NULL;
2578 }
2579 
2580 static inline void
vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevice8BitStorageFeatures * val)2581 vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
2582 {
2583     /* skip val->{sType,pNext} */
2584     vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess);
2585     vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess);
2586     vn_decode_VkBool32(dec, &val->storagePushConstant8);
2587 }
2588 
2589 static inline void
vn_decode_VkPhysicalDevice8BitStorageFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDevice8BitStorageFeatures * val)2590 vn_decode_VkPhysicalDevice8BitStorageFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
2591 {
2592     VkStructureType stype;
2593     vn_decode_VkStructureType(dec, &stype);
2594     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES)
2595         vn_cs_decoder_set_fatal(dec);
2596 
2597     val->sType = stype;
2598     val->pNext = vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_temp(dec);
2599     vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(dec, val);
2600 }
2601 
2602 static inline void *
vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)2603 vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
2604 {
2605     /* no known/supported struct */
2606     if (vn_decode_simple_pointer(dec))
2607         vn_cs_decoder_set_fatal(dec);
2608     return NULL;
2609 }
2610 
2611 static inline void
vn_decode_VkPhysicalDevice8BitStorageFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice8BitStorageFeatures * val)2612 vn_decode_VkPhysicalDevice8BitStorageFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
2613 {
2614     /* skip val->{sType,pNext} */
2615     /* skip val->storageBuffer8BitAccess */
2616     /* skip val->uniformAndStorageBuffer8BitAccess */
2617     /* skip val->storagePushConstant8 */
2618 }
2619 
2620 static inline void
vn_decode_VkPhysicalDevice8BitStorageFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice8BitStorageFeatures * val)2621 vn_decode_VkPhysicalDevice8BitStorageFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
2622 {
2623     VkStructureType stype;
2624     vn_decode_VkStructureType(dec, &stype);
2625     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES)
2626         vn_cs_decoder_set_fatal(dec);
2627 
2628     val->sType = stype;
2629     val->pNext = vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext_partial_temp(dec);
2630     vn_decode_VkPhysicalDevice8BitStorageFeatures_self_partial_temp(dec, val);
2631 }
2632 
2633 static inline void
vn_replace_VkPhysicalDevice8BitStorageFeatures_handle_self(VkPhysicalDevice8BitStorageFeatures * val)2634 vn_replace_VkPhysicalDevice8BitStorageFeatures_handle_self(VkPhysicalDevice8BitStorageFeatures *val)
2635 {
2636     /* skip val->sType */
2637     /* skip val->pNext */
2638     /* skip val->storageBuffer8BitAccess */
2639     /* skip val->uniformAndStorageBuffer8BitAccess */
2640     /* skip val->storagePushConstant8 */
2641 }
2642 
2643 static inline void
vn_replace_VkPhysicalDevice8BitStorageFeatures_handle(VkPhysicalDevice8BitStorageFeatures * val)2644 vn_replace_VkPhysicalDevice8BitStorageFeatures_handle(VkPhysicalDevice8BitStorageFeatures *val)
2645 {
2646     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2647 
2648     do {
2649         switch ((int32_t)pnext->sType) {
2650         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
2651             vn_replace_VkPhysicalDevice8BitStorageFeatures_handle_self((VkPhysicalDevice8BitStorageFeatures *)pnext);
2652             break;
2653         default:
2654             /* ignore unknown/unsupported struct */
2655             break;
2656         }
2657         pnext = pnext->pNext;
2658     } while (pnext);
2659 }
2660 
2661 /* struct VkPhysicalDeviceConditionalRenderingFeaturesEXT chain */
2662 
2663 static inline void
vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)2664 vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
2665 {
2666     /* no known/supported struct */
2667     vn_encode_simple_pointer(enc, NULL);
2668 }
2669 
2670 static inline void
vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2671 vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2672 {
2673     /* skip val->{sType,pNext} */
2674     vn_encode_VkBool32(enc, &val->conditionalRendering);
2675     vn_encode_VkBool32(enc, &val->inheritedConditionalRendering);
2676 }
2677 
2678 static inline void
vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2679 vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2680 {
2681     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT);
2682     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT });
2683     vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(enc, val->pNext);
2684     vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(enc, val);
2685 }
2686 
2687 static inline void *
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)2688 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
2689 {
2690     /* no known/supported struct */
2691     if (vn_decode_simple_pointer(dec))
2692         vn_cs_decoder_set_fatal(dec);
2693     return NULL;
2694 }
2695 
2696 static inline void
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2697 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2698 {
2699     /* skip val->{sType,pNext} */
2700     vn_decode_VkBool32(dec, &val->conditionalRendering);
2701     vn_decode_VkBool32(dec, &val->inheritedConditionalRendering);
2702 }
2703 
2704 static inline void
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2705 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2706 {
2707     VkStructureType stype;
2708     vn_decode_VkStructureType(dec, &stype);
2709     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT)
2710         vn_cs_decoder_set_fatal(dec);
2711 
2712     val->sType = stype;
2713     val->pNext = vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_temp(dec);
2714     vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_temp(dec, val);
2715 }
2716 
2717 static inline void *
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)2718 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
2719 {
2720     /* no known/supported struct */
2721     if (vn_decode_simple_pointer(dec))
2722         vn_cs_decoder_set_fatal(dec);
2723     return NULL;
2724 }
2725 
2726 static inline void
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2727 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2728 {
2729     /* skip val->{sType,pNext} */
2730     /* skip val->conditionalRendering */
2731     /* skip val->inheritedConditionalRendering */
2732 }
2733 
2734 static inline void
vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2735 vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2736 {
2737     VkStructureType stype;
2738     vn_decode_VkStructureType(dec, &stype);
2739     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT)
2740         vn_cs_decoder_set_fatal(dec);
2741 
2742     val->sType = stype;
2743     val->pNext = vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial_temp(dec);
2744     vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial_temp(dec, val);
2745 }
2746 
2747 static inline void
vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle_self(VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2748 vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle_self(VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2749 {
2750     /* skip val->sType */
2751     /* skip val->pNext */
2752     /* skip val->conditionalRendering */
2753     /* skip val->inheritedConditionalRendering */
2754 }
2755 
2756 static inline void
vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle(VkPhysicalDeviceConditionalRenderingFeaturesEXT * val)2757 vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle(VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
2758 {
2759     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2760 
2761     do {
2762         switch ((int32_t)pnext->sType) {
2763         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
2764             vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle_self((VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
2765             break;
2766         default:
2767             /* ignore unknown/unsupported struct */
2768             break;
2769         }
2770         pnext = pnext->pNext;
2771     } while (pnext);
2772 }
2773 
2774 /* struct VkPhysicalDeviceVulkanMemoryModelFeatures chain */
2775 
2776 static inline void
vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(struct vn_cs_encoder * enc,const void * val)2777 vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2778 {
2779     /* no known/supported struct */
2780     vn_encode_simple_pointer(enc, NULL);
2781 }
2782 
2783 static inline void
vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkanMemoryModelFeatures * val)2784 vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2785 {
2786     /* skip val->{sType,pNext} */
2787     vn_encode_VkBool32(enc, &val->vulkanMemoryModel);
2788     vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope);
2789     vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains);
2790 }
2791 
2792 static inline void
vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkanMemoryModelFeatures * val)2793 vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2794 {
2795     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES);
2796     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES });
2797     vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(enc, val->pNext);
2798     vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(enc, val);
2799 }
2800 
2801 static inline void *
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_temp(struct vn_cs_decoder * dec)2802 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_temp(struct vn_cs_decoder *dec)
2803 {
2804     /* no known/supported struct */
2805     if (vn_decode_simple_pointer(dec))
2806         vn_cs_decoder_set_fatal(dec);
2807     return NULL;
2808 }
2809 
2810 static inline void
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkanMemoryModelFeatures * val)2811 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2812 {
2813     /* skip val->{sType,pNext} */
2814     vn_decode_VkBool32(dec, &val->vulkanMemoryModel);
2815     vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope);
2816     vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains);
2817 }
2818 
2819 static inline void
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkanMemoryModelFeatures * val)2820 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2821 {
2822     VkStructureType stype;
2823     vn_decode_VkStructureType(dec, &stype);
2824     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES)
2825         vn_cs_decoder_set_fatal(dec);
2826 
2827     val->sType = stype;
2828     val->pNext = vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_temp(dec);
2829     vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(dec, val);
2830 }
2831 
2832 static inline void *
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)2833 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
2834 {
2835     /* no known/supported struct */
2836     if (vn_decode_simple_pointer(dec))
2837         vn_cs_decoder_set_fatal(dec);
2838     return NULL;
2839 }
2840 
2841 static inline void
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkanMemoryModelFeatures * val)2842 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2843 {
2844     /* skip val->{sType,pNext} */
2845     /* skip val->vulkanMemoryModel */
2846     /* skip val->vulkanMemoryModelDeviceScope */
2847     /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
2848 }
2849 
2850 static inline void
vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkanMemoryModelFeatures * val)2851 vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2852 {
2853     VkStructureType stype;
2854     vn_decode_VkStructureType(dec, &stype);
2855     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES)
2856         vn_cs_decoder_set_fatal(dec);
2857 
2858     val->sType = stype;
2859     val->pNext = vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial_temp(dec);
2860     vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial_temp(dec, val);
2861 }
2862 
2863 static inline void
vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle_self(VkPhysicalDeviceVulkanMemoryModelFeatures * val)2864 vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle_self(VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2865 {
2866     /* skip val->sType */
2867     /* skip val->pNext */
2868     /* skip val->vulkanMemoryModel */
2869     /* skip val->vulkanMemoryModelDeviceScope */
2870     /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
2871 }
2872 
2873 static inline void
vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle(VkPhysicalDeviceVulkanMemoryModelFeatures * val)2874 vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle(VkPhysicalDeviceVulkanMemoryModelFeatures *val)
2875 {
2876     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2877 
2878     do {
2879         switch ((int32_t)pnext->sType) {
2880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
2881             vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle_self((VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
2882             break;
2883         default:
2884             /* ignore unknown/unsupported struct */
2885             break;
2886         }
2887         pnext = pnext->pNext;
2888     } while (pnext);
2889 }
2890 
2891 /* struct VkPhysicalDeviceShaderAtomicInt64Features chain */
2892 
2893 static inline void
vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(struct vn_cs_encoder * enc,const void * val)2894 vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(struct vn_cs_encoder *enc, const void *val)
2895 {
2896     /* no known/supported struct */
2897     vn_encode_simple_pointer(enc, NULL);
2898 }
2899 
2900 static inline void
vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderAtomicInt64Features * val)2901 vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
2902 {
2903     /* skip val->{sType,pNext} */
2904     vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics);
2905     vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics);
2906 }
2907 
2908 static inline void
vn_encode_VkPhysicalDeviceShaderAtomicInt64Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderAtomicInt64Features * val)2909 vn_encode_VkPhysicalDeviceShaderAtomicInt64Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
2910 {
2911     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES);
2912     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES });
2913     vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(enc, val->pNext);
2914     vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(enc, val);
2915 }
2916 
2917 static inline void *
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_temp(struct vn_cs_decoder * dec)2918 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_temp(struct vn_cs_decoder *dec)
2919 {
2920     /* no known/supported struct */
2921     if (vn_decode_simple_pointer(dec))
2922         vn_cs_decoder_set_fatal(dec);
2923     return NULL;
2924 }
2925 
2926 static inline void
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderAtomicInt64Features * val)2927 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
2928 {
2929     /* skip val->{sType,pNext} */
2930     vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics);
2931     vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics);
2932 }
2933 
2934 static inline void
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderAtomicInt64Features * val)2935 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
2936 {
2937     VkStructureType stype;
2938     vn_decode_VkStructureType(dec, &stype);
2939     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES)
2940         vn_cs_decoder_set_fatal(dec);
2941 
2942     val->sType = stype;
2943     val->pNext = vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_temp(dec);
2944     vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(dec, val);
2945 }
2946 
2947 static inline void *
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial_temp(struct vn_cs_decoder * dec)2948 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial_temp(struct vn_cs_decoder *dec)
2949 {
2950     /* no known/supported struct */
2951     if (vn_decode_simple_pointer(dec))
2952         vn_cs_decoder_set_fatal(dec);
2953     return NULL;
2954 }
2955 
2956 static inline void
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderAtomicInt64Features * val)2957 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
2958 {
2959     /* skip val->{sType,pNext} */
2960     /* skip val->shaderBufferInt64Atomics */
2961     /* skip val->shaderSharedInt64Atomics */
2962 }
2963 
2964 static inline void
vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderAtomicInt64Features * val)2965 vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
2966 {
2967     VkStructureType stype;
2968     vn_decode_VkStructureType(dec, &stype);
2969     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES)
2970         vn_cs_decoder_set_fatal(dec);
2971 
2972     val->sType = stype;
2973     val->pNext = vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial_temp(dec);
2974     vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial_temp(dec, val);
2975 }
2976 
2977 static inline void
vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle_self(VkPhysicalDeviceShaderAtomicInt64Features * val)2978 vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle_self(VkPhysicalDeviceShaderAtomicInt64Features *val)
2979 {
2980     /* skip val->sType */
2981     /* skip val->pNext */
2982     /* skip val->shaderBufferInt64Atomics */
2983     /* skip val->shaderSharedInt64Atomics */
2984 }
2985 
2986 static inline void
vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle(VkPhysicalDeviceShaderAtomicInt64Features * val)2987 vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle(VkPhysicalDeviceShaderAtomicInt64Features *val)
2988 {
2989     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
2990 
2991     do {
2992         switch ((int32_t)pnext->sType) {
2993         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
2994             vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle_self((VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
2995             break;
2996         default:
2997             /* ignore unknown/unsupported struct */
2998             break;
2999         }
3000         pnext = pnext->pNext;
3001     } while (pnext);
3002 }
3003 
3004 /* struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT chain */
3005 
3006 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)3007 vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3008 {
3009     /* no known/supported struct */
3010     vn_encode_simple_pointer(enc, NULL);
3011 }
3012 
3013 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3014 vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3015 {
3016     /* skip val->{sType,pNext} */
3017     vn_encode_VkBool32(enc, &val->vertexAttributeInstanceRateDivisor);
3018     vn_encode_VkBool32(enc, &val->vertexAttributeInstanceRateZeroDivisor);
3019 }
3020 
3021 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3022 vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3023 {
3024     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT);
3025     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT });
3026     vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(enc, val->pNext);
3027     vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(enc, val);
3028 }
3029 
3030 static inline void *
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)3031 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
3032 {
3033     /* no known/supported struct */
3034     if (vn_decode_simple_pointer(dec))
3035         vn_cs_decoder_set_fatal(dec);
3036     return NULL;
3037 }
3038 
3039 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3040 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3041 {
3042     /* skip val->{sType,pNext} */
3043     vn_decode_VkBool32(dec, &val->vertexAttributeInstanceRateDivisor);
3044     vn_decode_VkBool32(dec, &val->vertexAttributeInstanceRateZeroDivisor);
3045 }
3046 
3047 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3048 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3049 {
3050     VkStructureType stype;
3051     vn_decode_VkStructureType(dec, &stype);
3052     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT)
3053         vn_cs_decoder_set_fatal(dec);
3054 
3055     val->sType = stype;
3056     val->pNext = vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_temp(dec);
3057     vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_temp(dec, val);
3058 }
3059 
3060 static inline void *
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)3061 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
3062 {
3063     /* no known/supported struct */
3064     if (vn_decode_simple_pointer(dec))
3065         vn_cs_decoder_set_fatal(dec);
3066     return NULL;
3067 }
3068 
3069 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3070 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3071 {
3072     /* skip val->{sType,pNext} */
3073     /* skip val->vertexAttributeInstanceRateDivisor */
3074     /* skip val->vertexAttributeInstanceRateZeroDivisor */
3075 }
3076 
3077 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3078 vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3079 {
3080     VkStructureType stype;
3081     vn_decode_VkStructureType(dec, &stype);
3082     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT)
3083         vn_cs_decoder_set_fatal(dec);
3084 
3085     val->sType = stype;
3086     val->pNext = vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial_temp(dec);
3087     vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial_temp(dec, val);
3088 }
3089 
3090 static inline void
vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle_self(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3091 vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle_self(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3092 {
3093     /* skip val->sType */
3094     /* skip val->pNext */
3095     /* skip val->vertexAttributeInstanceRateDivisor */
3096     /* skip val->vertexAttributeInstanceRateZeroDivisor */
3097 }
3098 
3099 static inline void
vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * val)3100 vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3101 {
3102     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3103 
3104     do {
3105         switch ((int32_t)pnext->sType) {
3106         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
3107             vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle_self((VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
3108             break;
3109         default:
3110             /* ignore unknown/unsupported struct */
3111             break;
3112         }
3113         pnext = pnext->pNext;
3114     } while (pnext);
3115 }
3116 
3117 /* struct VkPhysicalDeviceTransformFeedbackFeaturesEXT chain */
3118 
3119 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)3120 vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3121 {
3122     /* no known/supported struct */
3123     vn_encode_simple_pointer(enc, NULL);
3124 }
3125 
3126 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3127 vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3128 {
3129     /* skip val->{sType,pNext} */
3130     vn_encode_VkBool32(enc, &val->transformFeedback);
3131     vn_encode_VkBool32(enc, &val->geometryStreams);
3132 }
3133 
3134 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3135 vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3136 {
3137     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT);
3138     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT });
3139     vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(enc, val->pNext);
3140     vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(enc, val);
3141 }
3142 
3143 static inline void *
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)3144 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
3145 {
3146     /* no known/supported struct */
3147     if (vn_decode_simple_pointer(dec))
3148         vn_cs_decoder_set_fatal(dec);
3149     return NULL;
3150 }
3151 
3152 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3153 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3154 {
3155     /* skip val->{sType,pNext} */
3156     vn_decode_VkBool32(dec, &val->transformFeedback);
3157     vn_decode_VkBool32(dec, &val->geometryStreams);
3158 }
3159 
3160 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3161 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3162 {
3163     VkStructureType stype;
3164     vn_decode_VkStructureType(dec, &stype);
3165     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT)
3166         vn_cs_decoder_set_fatal(dec);
3167 
3168     val->sType = stype;
3169     val->pNext = vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_temp(dec);
3170     vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(dec, val);
3171 }
3172 
3173 static inline void *
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)3174 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
3175 {
3176     /* no known/supported struct */
3177     if (vn_decode_simple_pointer(dec))
3178         vn_cs_decoder_set_fatal(dec);
3179     return NULL;
3180 }
3181 
3182 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3183 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3184 {
3185     /* skip val->{sType,pNext} */
3186     /* skip val->transformFeedback */
3187     /* skip val->geometryStreams */
3188 }
3189 
3190 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3191 vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3192 {
3193     VkStructureType stype;
3194     vn_decode_VkStructureType(dec, &stype);
3195     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT)
3196         vn_cs_decoder_set_fatal(dec);
3197 
3198     val->sType = stype;
3199     val->pNext = vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial_temp(dec);
3200     vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial_temp(dec, val);
3201 }
3202 
3203 static inline void
vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle_self(VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3204 vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle_self(VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3205 {
3206     /* skip val->sType */
3207     /* skip val->pNext */
3208     /* skip val->transformFeedback */
3209     /* skip val->geometryStreams */
3210 }
3211 
3212 static inline void
vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle(VkPhysicalDeviceTransformFeedbackFeaturesEXT * val)3213 vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle(VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3214 {
3215     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3216 
3217     do {
3218         switch ((int32_t)pnext->sType) {
3219         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
3220             vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle_self((VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
3221             break;
3222         default:
3223             /* ignore unknown/unsupported struct */
3224             break;
3225         }
3226         pnext = pnext->pNext;
3227     } while (pnext);
3228 }
3229 
3230 /* struct VkPhysicalDeviceScalarBlockLayoutFeatures chain */
3231 
3232 static inline void
vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(struct vn_cs_encoder * enc,const void * val)3233 vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3234 {
3235     /* no known/supported struct */
3236     vn_encode_simple_pointer(enc, NULL);
3237 }
3238 
3239 static inline void
vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceScalarBlockLayoutFeatures * val)3240 vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3241 {
3242     /* skip val->{sType,pNext} */
3243     vn_encode_VkBool32(enc, &val->scalarBlockLayout);
3244 }
3245 
3246 static inline void
vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceScalarBlockLayoutFeatures * val)3247 vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3248 {
3249     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES);
3250     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES });
3251     vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(enc, val->pNext);
3252     vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(enc, val);
3253 }
3254 
3255 static inline void *
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_temp(struct vn_cs_decoder * dec)3256 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_temp(struct vn_cs_decoder *dec)
3257 {
3258     /* no known/supported struct */
3259     if (vn_decode_simple_pointer(dec))
3260         vn_cs_decoder_set_fatal(dec);
3261     return NULL;
3262 }
3263 
3264 static inline void
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceScalarBlockLayoutFeatures * val)3265 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3266 {
3267     /* skip val->{sType,pNext} */
3268     vn_decode_VkBool32(dec, &val->scalarBlockLayout);
3269 }
3270 
3271 static inline void
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceScalarBlockLayoutFeatures * val)3272 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3273 {
3274     VkStructureType stype;
3275     vn_decode_VkStructureType(dec, &stype);
3276     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES)
3277         vn_cs_decoder_set_fatal(dec);
3278 
3279     val->sType = stype;
3280     val->pNext = vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_temp(dec);
3281     vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(dec, val);
3282 }
3283 
3284 static inline void *
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)3285 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
3286 {
3287     /* no known/supported struct */
3288     if (vn_decode_simple_pointer(dec))
3289         vn_cs_decoder_set_fatal(dec);
3290     return NULL;
3291 }
3292 
3293 static inline void
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceScalarBlockLayoutFeatures * val)3294 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3295 {
3296     /* skip val->{sType,pNext} */
3297     /* skip val->scalarBlockLayout */
3298 }
3299 
3300 static inline void
vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceScalarBlockLayoutFeatures * val)3301 vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3302 {
3303     VkStructureType stype;
3304     vn_decode_VkStructureType(dec, &stype);
3305     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES)
3306         vn_cs_decoder_set_fatal(dec);
3307 
3308     val->sType = stype;
3309     val->pNext = vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial_temp(dec);
3310     vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial_temp(dec, val);
3311 }
3312 
3313 static inline void
vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle_self(VkPhysicalDeviceScalarBlockLayoutFeatures * val)3314 vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle_self(VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3315 {
3316     /* skip val->sType */
3317     /* skip val->pNext */
3318     /* skip val->scalarBlockLayout */
3319 }
3320 
3321 static inline void
vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle(VkPhysicalDeviceScalarBlockLayoutFeatures * val)3322 vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle(VkPhysicalDeviceScalarBlockLayoutFeatures *val)
3323 {
3324     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3325 
3326     do {
3327         switch ((int32_t)pnext->sType) {
3328         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
3329             vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle_self((VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
3330             break;
3331         default:
3332             /* ignore unknown/unsupported struct */
3333             break;
3334         }
3335         pnext = pnext->pNext;
3336     } while (pnext);
3337 }
3338 
3339 /* struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures chain */
3340 
3341 static inline void
vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(struct vn_cs_encoder * enc,const void * val)3342 vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3343 {
3344     /* no known/supported struct */
3345     vn_encode_simple_pointer(enc, NULL);
3346 }
3347 
3348 static inline void
vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3349 vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3350 {
3351     /* skip val->{sType,pNext} */
3352     vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout);
3353 }
3354 
3355 static inline void
vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3356 vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3357 {
3358     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES);
3359     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES });
3360     vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(enc, val->pNext);
3361     vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(enc, val);
3362 }
3363 
3364 static inline void *
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_temp(struct vn_cs_decoder * dec)3365 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_temp(struct vn_cs_decoder *dec)
3366 {
3367     /* no known/supported struct */
3368     if (vn_decode_simple_pointer(dec))
3369         vn_cs_decoder_set_fatal(dec);
3370     return NULL;
3371 }
3372 
3373 static inline void
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3374 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3375 {
3376     /* skip val->{sType,pNext} */
3377     vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout);
3378 }
3379 
3380 static inline void
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3381 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3382 {
3383     VkStructureType stype;
3384     vn_decode_VkStructureType(dec, &stype);
3385     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES)
3386         vn_cs_decoder_set_fatal(dec);
3387 
3388     val->sType = stype;
3389     val->pNext = vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_temp(dec);
3390     vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(dec, val);
3391 }
3392 
3393 static inline void *
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)3394 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
3395 {
3396     /* no known/supported struct */
3397     if (vn_decode_simple_pointer(dec))
3398         vn_cs_decoder_set_fatal(dec);
3399     return NULL;
3400 }
3401 
3402 static inline void
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3403 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3404 {
3405     /* skip val->{sType,pNext} */
3406     /* skip val->uniformBufferStandardLayout */
3407 }
3408 
3409 static inline void
vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3410 vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3411 {
3412     VkStructureType stype;
3413     vn_decode_VkStructureType(dec, &stype);
3414     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES)
3415         vn_cs_decoder_set_fatal(dec);
3416 
3417     val->sType = stype;
3418     val->pNext = vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial_temp(dec);
3419     vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial_temp(dec, val);
3420 }
3421 
3422 static inline void
vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle_self(VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3423 vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle_self(VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3424 {
3425     /* skip val->sType */
3426     /* skip val->pNext */
3427     /* skip val->uniformBufferStandardLayout */
3428 }
3429 
3430 static inline void
vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle(VkPhysicalDeviceUniformBufferStandardLayoutFeatures * val)3431 vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle(VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
3432 {
3433     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3434 
3435     do {
3436         switch ((int32_t)pnext->sType) {
3437         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
3438             vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle_self((VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
3439             break;
3440         default:
3441             /* ignore unknown/unsupported struct */
3442             break;
3443         }
3444         pnext = pnext->pNext;
3445     } while (pnext);
3446 }
3447 
3448 /* struct VkPhysicalDeviceDepthClipEnableFeaturesEXT chain */
3449 
3450 static inline void
vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)3451 vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3452 {
3453     /* no known/supported struct */
3454     vn_encode_simple_pointer(enc, NULL);
3455 }
3456 
3457 static inline void
vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3458 vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3459 {
3460     /* skip val->{sType,pNext} */
3461     vn_encode_VkBool32(enc, &val->depthClipEnable);
3462 }
3463 
3464 static inline void
vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3465 vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3466 {
3467     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT);
3468     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT });
3469     vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(enc, val->pNext);
3470     vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(enc, val);
3471 }
3472 
3473 static inline void *
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)3474 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
3475 {
3476     /* no known/supported struct */
3477     if (vn_decode_simple_pointer(dec))
3478         vn_cs_decoder_set_fatal(dec);
3479     return NULL;
3480 }
3481 
3482 static inline void
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3483 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3484 {
3485     /* skip val->{sType,pNext} */
3486     vn_decode_VkBool32(dec, &val->depthClipEnable);
3487 }
3488 
3489 static inline void
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3490 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3491 {
3492     VkStructureType stype;
3493     vn_decode_VkStructureType(dec, &stype);
3494     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT)
3495         vn_cs_decoder_set_fatal(dec);
3496 
3497     val->sType = stype;
3498     val->pNext = vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_temp(dec);
3499     vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_temp(dec, val);
3500 }
3501 
3502 static inline void *
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)3503 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
3504 {
3505     /* no known/supported struct */
3506     if (vn_decode_simple_pointer(dec))
3507         vn_cs_decoder_set_fatal(dec);
3508     return NULL;
3509 }
3510 
3511 static inline void
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3512 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3513 {
3514     /* skip val->{sType,pNext} */
3515     /* skip val->depthClipEnable */
3516 }
3517 
3518 static inline void
vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3519 vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3520 {
3521     VkStructureType stype;
3522     vn_decode_VkStructureType(dec, &stype);
3523     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT)
3524         vn_cs_decoder_set_fatal(dec);
3525 
3526     val->sType = stype;
3527     val->pNext = vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial_temp(dec);
3528     vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial_temp(dec, val);
3529 }
3530 
3531 static inline void
vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle_self(VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3532 vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle_self(VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3533 {
3534     /* skip val->sType */
3535     /* skip val->pNext */
3536     /* skip val->depthClipEnable */
3537 }
3538 
3539 static inline void
vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle(VkPhysicalDeviceDepthClipEnableFeaturesEXT * val)3540 vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle(VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
3541 {
3542     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3543 
3544     do {
3545         switch ((int32_t)pnext->sType) {
3546         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
3547             vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
3548             break;
3549         default:
3550             /* ignore unknown/unsupported struct */
3551             break;
3552         }
3553         pnext = pnext->pNext;
3554     } while (pnext);
3555 }
3556 
3557 /* struct VkPhysicalDeviceBufferDeviceAddressFeatures chain */
3558 
3559 static inline void
vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(struct vn_cs_encoder * enc,const void * val)3560 vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3561 {
3562     /* no known/supported struct */
3563     vn_encode_simple_pointer(enc, NULL);
3564 }
3565 
3566 static inline void
vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceBufferDeviceAddressFeatures * val)3567 vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3568 {
3569     /* skip val->{sType,pNext} */
3570     vn_encode_VkBool32(enc, &val->bufferDeviceAddress);
3571     vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay);
3572     vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice);
3573 }
3574 
3575 static inline void
vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceBufferDeviceAddressFeatures * val)3576 vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3577 {
3578     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES);
3579     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES });
3580     vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(enc, val->pNext);
3581     vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(enc, val);
3582 }
3583 
3584 static inline void *
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_temp(struct vn_cs_decoder * dec)3585 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_temp(struct vn_cs_decoder *dec)
3586 {
3587     /* no known/supported struct */
3588     if (vn_decode_simple_pointer(dec))
3589         vn_cs_decoder_set_fatal(dec);
3590     return NULL;
3591 }
3592 
3593 static inline void
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceBufferDeviceAddressFeatures * val)3594 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3595 {
3596     /* skip val->{sType,pNext} */
3597     vn_decode_VkBool32(dec, &val->bufferDeviceAddress);
3598     vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay);
3599     vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice);
3600 }
3601 
3602 static inline void
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceBufferDeviceAddressFeatures * val)3603 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3604 {
3605     VkStructureType stype;
3606     vn_decode_VkStructureType(dec, &stype);
3607     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES)
3608         vn_cs_decoder_set_fatal(dec);
3609 
3610     val->sType = stype;
3611     val->pNext = vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_temp(dec);
3612     vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(dec, val);
3613 }
3614 
3615 static inline void *
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)3616 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
3617 {
3618     /* no known/supported struct */
3619     if (vn_decode_simple_pointer(dec))
3620         vn_cs_decoder_set_fatal(dec);
3621     return NULL;
3622 }
3623 
3624 static inline void
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceBufferDeviceAddressFeatures * val)3625 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3626 {
3627     /* skip val->{sType,pNext} */
3628     /* skip val->bufferDeviceAddress */
3629     /* skip val->bufferDeviceAddressCaptureReplay */
3630     /* skip val->bufferDeviceAddressMultiDevice */
3631 }
3632 
3633 static inline void
vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceBufferDeviceAddressFeatures * val)3634 vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3635 {
3636     VkStructureType stype;
3637     vn_decode_VkStructureType(dec, &stype);
3638     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES)
3639         vn_cs_decoder_set_fatal(dec);
3640 
3641     val->sType = stype;
3642     val->pNext = vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial_temp(dec);
3643     vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial_temp(dec, val);
3644 }
3645 
3646 static inline void
vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle_self(VkPhysicalDeviceBufferDeviceAddressFeatures * val)3647 vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle_self(VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3648 {
3649     /* skip val->sType */
3650     /* skip val->pNext */
3651     /* skip val->bufferDeviceAddress */
3652     /* skip val->bufferDeviceAddressCaptureReplay */
3653     /* skip val->bufferDeviceAddressMultiDevice */
3654 }
3655 
3656 static inline void
vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle(VkPhysicalDeviceBufferDeviceAddressFeatures * val)3657 vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle(VkPhysicalDeviceBufferDeviceAddressFeatures *val)
3658 {
3659     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3660 
3661     do {
3662         switch ((int32_t)pnext->sType) {
3663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
3664             vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle_self((VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
3665             break;
3666         default:
3667             /* ignore unknown/unsupported struct */
3668             break;
3669         }
3670         pnext = pnext->pNext;
3671     } while (pnext);
3672 }
3673 
3674 /* struct VkPhysicalDeviceImagelessFramebufferFeatures chain */
3675 
3676 static inline void
vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(struct vn_cs_encoder * enc,const void * val)3677 vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3678 {
3679     /* no known/supported struct */
3680     vn_encode_simple_pointer(enc, NULL);
3681 }
3682 
3683 static inline void
vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceImagelessFramebufferFeatures * val)3684 vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
3685 {
3686     /* skip val->{sType,pNext} */
3687     vn_encode_VkBool32(enc, &val->imagelessFramebuffer);
3688 }
3689 
3690 static inline void
vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceImagelessFramebufferFeatures * val)3691 vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
3692 {
3693     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES);
3694     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES });
3695     vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(enc, val->pNext);
3696     vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, val);
3697 }
3698 
3699 static inline void *
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_temp(struct vn_cs_decoder * dec)3700 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_temp(struct vn_cs_decoder *dec)
3701 {
3702     /* no known/supported struct */
3703     if (vn_decode_simple_pointer(dec))
3704         vn_cs_decoder_set_fatal(dec);
3705     return NULL;
3706 }
3707 
3708 static inline void
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImagelessFramebufferFeatures * val)3709 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
3710 {
3711     /* skip val->{sType,pNext} */
3712     vn_decode_VkBool32(dec, &val->imagelessFramebuffer);
3713 }
3714 
3715 static inline void
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImagelessFramebufferFeatures * val)3716 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
3717 {
3718     VkStructureType stype;
3719     vn_decode_VkStructureType(dec, &stype);
3720     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES)
3721         vn_cs_decoder_set_fatal(dec);
3722 
3723     val->sType = stype;
3724     val->pNext = vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_temp(dec);
3725     vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, val);
3726 }
3727 
3728 static inline void *
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)3729 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
3730 {
3731     /* no known/supported struct */
3732     if (vn_decode_simple_pointer(dec))
3733         vn_cs_decoder_set_fatal(dec);
3734     return NULL;
3735 }
3736 
3737 static inline void
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImagelessFramebufferFeatures * val)3738 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
3739 {
3740     /* skip val->{sType,pNext} */
3741     /* skip val->imagelessFramebuffer */
3742 }
3743 
3744 static inline void
vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImagelessFramebufferFeatures * val)3745 vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
3746 {
3747     VkStructureType stype;
3748     vn_decode_VkStructureType(dec, &stype);
3749     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES)
3750         vn_cs_decoder_set_fatal(dec);
3751 
3752     val->sType = stype;
3753     val->pNext = vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial_temp(dec);
3754     vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial_temp(dec, val);
3755 }
3756 
3757 static inline void
vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self(VkPhysicalDeviceImagelessFramebufferFeatures * val)3758 vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self(VkPhysicalDeviceImagelessFramebufferFeatures *val)
3759 {
3760     /* skip val->sType */
3761     /* skip val->pNext */
3762     /* skip val->imagelessFramebuffer */
3763 }
3764 
3765 static inline void
vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle(VkPhysicalDeviceImagelessFramebufferFeatures * val)3766 vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle(VkPhysicalDeviceImagelessFramebufferFeatures *val)
3767 {
3768     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3769 
3770     do {
3771         switch ((int32_t)pnext->sType) {
3772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
3773             vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self((VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
3774             break;
3775         default:
3776             /* ignore unknown/unsupported struct */
3777             break;
3778         }
3779         pnext = pnext->pNext;
3780     } while (pnext);
3781 }
3782 
3783 /* struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures chain */
3784 
3785 static inline void
vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(struct vn_cs_encoder * enc,const void * val)3786 vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3787 {
3788     /* no known/supported struct */
3789     vn_encode_simple_pointer(enc, NULL);
3790 }
3791 
3792 static inline void
vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3793 vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3794 {
3795     /* skip val->{sType,pNext} */
3796     vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR);
3797 }
3798 
3799 static inline void
vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3800 vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3801 {
3802     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES);
3803     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES });
3804     vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(enc, val->pNext);
3805     vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, val);
3806 }
3807 
3808 static inline void *
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_temp(struct vn_cs_decoder * dec)3809 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_temp(struct vn_cs_decoder *dec)
3810 {
3811     /* no known/supported struct */
3812     if (vn_decode_simple_pointer(dec))
3813         vn_cs_decoder_set_fatal(dec);
3814     return NULL;
3815 }
3816 
3817 static inline void
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3818 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3819 {
3820     /* skip val->{sType,pNext} */
3821     vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR);
3822 }
3823 
3824 static inline void
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3825 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3826 {
3827     VkStructureType stype;
3828     vn_decode_VkStructureType(dec, &stype);
3829     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)
3830         vn_cs_decoder_set_fatal(dec);
3831 
3832     val->sType = stype;
3833     val->pNext = vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_temp(dec);
3834     vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, val);
3835 }
3836 
3837 static inline void *
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)3838 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
3839 {
3840     /* no known/supported struct */
3841     if (vn_decode_simple_pointer(dec))
3842         vn_cs_decoder_set_fatal(dec);
3843     return NULL;
3844 }
3845 
3846 static inline void
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3847 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3848 {
3849     /* skip val->{sType,pNext} */
3850     /* skip val->textureCompressionASTC_HDR */
3851 }
3852 
3853 static inline void
vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3854 vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3855 {
3856     VkStructureType stype;
3857     vn_decode_VkStructureType(dec, &stype);
3858     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)
3859         vn_cs_decoder_set_fatal(dec);
3860 
3861     val->sType = stype;
3862     val->pNext = vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial_temp(dec);
3863     vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(dec, val);
3864 }
3865 
3866 static inline void
vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self(VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3867 vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self(VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3868 {
3869     /* skip val->sType */
3870     /* skip val->pNext */
3871     /* skip val->textureCompressionASTC_HDR */
3872 }
3873 
3874 static inline void
vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle(VkPhysicalDeviceTextureCompressionASTCHDRFeatures * val)3875 vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle(VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
3876 {
3877     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3878 
3879     do {
3880         switch ((int32_t)pnext->sType) {
3881         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
3882             vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
3883             break;
3884         default:
3885             /* ignore unknown/unsupported struct */
3886             break;
3887         }
3888         pnext = pnext->pNext;
3889     } while (pnext);
3890 }
3891 
3892 /* struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT chain */
3893 
3894 static inline void
vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)3895 vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3896 {
3897     /* no known/supported struct */
3898     vn_encode_simple_pointer(enc, NULL);
3899 }
3900 
3901 static inline void
vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3902 vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3903 {
3904     /* skip val->{sType,pNext} */
3905     vn_encode_VkBool32(enc, &val->indexTypeUint8);
3906 }
3907 
3908 static inline void
vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3909 vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3910 {
3911     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT);
3912     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT });
3913     vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(enc, val->pNext);
3914     vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(enc, val);
3915 }
3916 
3917 static inline void *
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)3918 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
3919 {
3920     /* no known/supported struct */
3921     if (vn_decode_simple_pointer(dec))
3922         vn_cs_decoder_set_fatal(dec);
3923     return NULL;
3924 }
3925 
3926 static inline void
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3927 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3928 {
3929     /* skip val->{sType,pNext} */
3930     vn_decode_VkBool32(dec, &val->indexTypeUint8);
3931 }
3932 
3933 static inline void
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3934 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3935 {
3936     VkStructureType stype;
3937     vn_decode_VkStructureType(dec, &stype);
3938     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT)
3939         vn_cs_decoder_set_fatal(dec);
3940 
3941     val->sType = stype;
3942     val->pNext = vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_temp(dec);
3943     vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_temp(dec, val);
3944 }
3945 
3946 static inline void *
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)3947 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
3948 {
3949     /* no known/supported struct */
3950     if (vn_decode_simple_pointer(dec))
3951         vn_cs_decoder_set_fatal(dec);
3952     return NULL;
3953 }
3954 
3955 static inline void
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3956 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3957 {
3958     /* skip val->{sType,pNext} */
3959     /* skip val->indexTypeUint8 */
3960 }
3961 
3962 static inline void
vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3963 vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3964 {
3965     VkStructureType stype;
3966     vn_decode_VkStructureType(dec, &stype);
3967     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT)
3968         vn_cs_decoder_set_fatal(dec);
3969 
3970     val->sType = stype;
3971     val->pNext = vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial_temp(dec);
3972     vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial_temp(dec, val);
3973 }
3974 
3975 static inline void
vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle_self(VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3976 vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle_self(VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3977 {
3978     /* skip val->sType */
3979     /* skip val->pNext */
3980     /* skip val->indexTypeUint8 */
3981 }
3982 
3983 static inline void
vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle(VkPhysicalDeviceIndexTypeUint8FeaturesEXT * val)3984 vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle(VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
3985 {
3986     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
3987 
3988     do {
3989         switch ((int32_t)pnext->sType) {
3990         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
3991             vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle_self((VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
3992             break;
3993         default:
3994             /* ignore unknown/unsupported struct */
3995             break;
3996         }
3997         pnext = pnext->pNext;
3998     } while (pnext);
3999 }
4000 
4001 /* struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures chain */
4002 
4003 static inline void
vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_encoder * enc,const void * val)4004 vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4005 {
4006     /* no known/supported struct */
4007     vn_encode_simple_pointer(enc, NULL);
4008 }
4009 
4010 static inline void
vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4011 vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4012 {
4013     /* skip val->{sType,pNext} */
4014     vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts);
4015 }
4016 
4017 static inline void
vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4018 vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4019 {
4020     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES);
4021     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES });
4022     vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(enc, val->pNext);
4023     vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, val);
4024 }
4025 
4026 static inline void *
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(struct vn_cs_decoder * dec)4027 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(struct vn_cs_decoder *dec)
4028 {
4029     /* no known/supported struct */
4030     if (vn_decode_simple_pointer(dec))
4031         vn_cs_decoder_set_fatal(dec);
4032     return NULL;
4033 }
4034 
4035 static inline void
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4036 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4037 {
4038     /* skip val->{sType,pNext} */
4039     vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts);
4040 }
4041 
4042 static inline void
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4043 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4044 {
4045     VkStructureType stype;
4046     vn_decode_VkStructureType(dec, &stype);
4047     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES)
4048         vn_cs_decoder_set_fatal(dec);
4049 
4050     val->sType = stype;
4051     val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(dec);
4052     vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, val);
4053 }
4054 
4055 static inline void *
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)4056 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
4057 {
4058     /* no known/supported struct */
4059     if (vn_decode_simple_pointer(dec))
4060         vn_cs_decoder_set_fatal(dec);
4061     return NULL;
4062 }
4063 
4064 static inline void
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4065 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4066 {
4067     /* skip val->{sType,pNext} */
4068     /* skip val->separateDepthStencilLayouts */
4069 }
4070 
4071 static inline void
vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4072 vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4073 {
4074     VkStructureType stype;
4075     vn_decode_VkStructureType(dec, &stype);
4076     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES)
4077         vn_cs_decoder_set_fatal(dec);
4078 
4079     val->sType = stype;
4080     val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(dec);
4081     vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(dec, val);
4082 }
4083 
4084 static inline void
vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4085 vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4086 {
4087     /* skip val->sType */
4088     /* skip val->pNext */
4089     /* skip val->separateDepthStencilLayouts */
4090 }
4091 
4092 static inline void
vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * val)4093 vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
4094 {
4095     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4096 
4097     do {
4098         switch ((int32_t)pnext->sType) {
4099         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
4100             vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
4101             break;
4102         default:
4103             /* ignore unknown/unsupported struct */
4104             break;
4105         }
4106         pnext = pnext->pNext;
4107     } while (pnext);
4108 }
4109 
4110 /* struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT chain */
4111 
4112 static inline void
vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)4113 vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
4114 {
4115     /* no known/supported struct */
4116     vn_encode_simple_pointer(enc, NULL);
4117 }
4118 
4119 static inline void
vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4120 vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4121 {
4122     /* skip val->{sType,pNext} */
4123     vn_encode_VkBool32(enc, &val->primitiveTopologyListRestart);
4124     vn_encode_VkBool32(enc, &val->primitiveTopologyPatchListRestart);
4125 }
4126 
4127 static inline void
vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4128 vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4129 {
4130     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT);
4131     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT });
4132     vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext(enc, val->pNext);
4133     vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self(enc, val);
4134 }
4135 
4136 static inline void *
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)4137 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
4138 {
4139     /* no known/supported struct */
4140     if (vn_decode_simple_pointer(dec))
4141         vn_cs_decoder_set_fatal(dec);
4142     return NULL;
4143 }
4144 
4145 static inline void
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4146 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4147 {
4148     /* skip val->{sType,pNext} */
4149     vn_decode_VkBool32(dec, &val->primitiveTopologyListRestart);
4150     vn_decode_VkBool32(dec, &val->primitiveTopologyPatchListRestart);
4151 }
4152 
4153 static inline void
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4154 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4155 {
4156     VkStructureType stype;
4157     vn_decode_VkStructureType(dec, &stype);
4158     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT)
4159         vn_cs_decoder_set_fatal(dec);
4160 
4161     val->sType = stype;
4162     val->pNext = vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_temp(dec);
4163     vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_temp(dec, val);
4164 }
4165 
4166 static inline void *
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)4167 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
4168 {
4169     /* no known/supported struct */
4170     if (vn_decode_simple_pointer(dec))
4171         vn_cs_decoder_set_fatal(dec);
4172     return NULL;
4173 }
4174 
4175 static inline void
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4176 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4177 {
4178     /* skip val->{sType,pNext} */
4179     /* skip val->primitiveTopologyListRestart */
4180     /* skip val->primitiveTopologyPatchListRestart */
4181 }
4182 
4183 static inline void
vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4184 vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4185 {
4186     VkStructureType stype;
4187     vn_decode_VkStructureType(dec, &stype);
4188     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT)
4189         vn_cs_decoder_set_fatal(dec);
4190 
4191     val->sType = stype;
4192     val->pNext = vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_pnext_partial_temp(dec);
4193     vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_partial_temp(dec, val);
4194 }
4195 
4196 static inline void
vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle_self(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4197 vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle_self(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4198 {
4199     /* skip val->sType */
4200     /* skip val->pNext */
4201     /* skip val->primitiveTopologyListRestart */
4202     /* skip val->primitiveTopologyPatchListRestart */
4203 }
4204 
4205 static inline void
vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * val)4206 vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *val)
4207 {
4208     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4209 
4210     do {
4211         switch ((int32_t)pnext->sType) {
4212         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
4213             vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle_self((VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
4214             break;
4215         default:
4216             /* ignore unknown/unsupported struct */
4217             break;
4218         }
4219         pnext = pnext->pNext;
4220     } while (pnext);
4221 }
4222 
4223 /* struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures chain */
4224 
4225 static inline void
vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(struct vn_cs_encoder * enc,const void * val)4226 vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4227 {
4228     /* no known/supported struct */
4229     vn_encode_simple_pointer(enc, NULL);
4230 }
4231 
4232 static inline void
vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4233 vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4234 {
4235     /* skip val->{sType,pNext} */
4236     vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation);
4237 }
4238 
4239 static inline void
vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4240 vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4241 {
4242     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES);
4243     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES });
4244     vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(enc, val->pNext);
4245     vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, val);
4246 }
4247 
4248 static inline void *
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_temp(struct vn_cs_decoder * dec)4249 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_temp(struct vn_cs_decoder *dec)
4250 {
4251     /* no known/supported struct */
4252     if (vn_decode_simple_pointer(dec))
4253         vn_cs_decoder_set_fatal(dec);
4254     return NULL;
4255 }
4256 
4257 static inline void
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4258 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4259 {
4260     /* skip val->{sType,pNext} */
4261     vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation);
4262 }
4263 
4264 static inline void
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4265 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4266 {
4267     VkStructureType stype;
4268     vn_decode_VkStructureType(dec, &stype);
4269     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)
4270         vn_cs_decoder_set_fatal(dec);
4271 
4272     val->sType = stype;
4273     val->pNext = vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_temp(dec);
4274     vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, val);
4275 }
4276 
4277 static inline void *
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)4278 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
4279 {
4280     /* no known/supported struct */
4281     if (vn_decode_simple_pointer(dec))
4282         vn_cs_decoder_set_fatal(dec);
4283     return NULL;
4284 }
4285 
4286 static inline void
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4287 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4288 {
4289     /* skip val->{sType,pNext} */
4290     /* skip val->shaderDemoteToHelperInvocation */
4291 }
4292 
4293 static inline void
vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4294 vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4295 {
4296     VkStructureType stype;
4297     vn_decode_VkStructureType(dec, &stype);
4298     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)
4299         vn_cs_decoder_set_fatal(dec);
4300 
4301     val->sType = stype;
4302     val->pNext = vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial_temp(dec);
4303     vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(dec, val);
4304 }
4305 
4306 static inline void
vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4307 vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4308 {
4309     /* skip val->sType */
4310     /* skip val->pNext */
4311     /* skip val->shaderDemoteToHelperInvocation */
4312 }
4313 
4314 static inline void
vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * val)4315 vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
4316 {
4317     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4318 
4319     do {
4320         switch ((int32_t)pnext->sType) {
4321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
4322             vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
4323             break;
4324         default:
4325             /* ignore unknown/unsupported struct */
4326             break;
4327         }
4328         pnext = pnext->pNext;
4329     } while (pnext);
4330 }
4331 
4332 /* struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT chain */
4333 
4334 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)4335 vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
4336 {
4337     /* no known/supported struct */
4338     vn_encode_simple_pointer(enc, NULL);
4339 }
4340 
4341 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4342 vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4343 {
4344     /* skip val->{sType,pNext} */
4345     vn_encode_VkBool32(enc, &val->texelBufferAlignment);
4346 }
4347 
4348 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4349 vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4350 {
4351     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT);
4352     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT });
4353     vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(enc, val->pNext);
4354     vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, val);
4355 }
4356 
4357 static inline void *
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)4358 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
4359 {
4360     /* no known/supported struct */
4361     if (vn_decode_simple_pointer(dec))
4362         vn_cs_decoder_set_fatal(dec);
4363     return NULL;
4364 }
4365 
4366 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4367 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4368 {
4369     /* skip val->{sType,pNext} */
4370     vn_decode_VkBool32(dec, &val->texelBufferAlignment);
4371 }
4372 
4373 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4374 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4375 {
4376     VkStructureType stype;
4377     vn_decode_VkStructureType(dec, &stype);
4378     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT)
4379         vn_cs_decoder_set_fatal(dec);
4380 
4381     val->sType = stype;
4382     val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_temp(dec);
4383     vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, val);
4384 }
4385 
4386 static inline void *
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)4387 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
4388 {
4389     /* no known/supported struct */
4390     if (vn_decode_simple_pointer(dec))
4391         vn_cs_decoder_set_fatal(dec);
4392     return NULL;
4393 }
4394 
4395 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4396 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4397 {
4398     /* skip val->{sType,pNext} */
4399     /* skip val->texelBufferAlignment */
4400 }
4401 
4402 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4403 vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4404 {
4405     VkStructureType stype;
4406     vn_decode_VkStructureType(dec, &stype);
4407     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT)
4408         vn_cs_decoder_set_fatal(dec);
4409 
4410     val->sType = stype;
4411     val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial_temp(dec);
4412     vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(dec, val);
4413 }
4414 
4415 static inline void
vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4416 vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4417 {
4418     /* skip val->sType */
4419     /* skip val->pNext */
4420     /* skip val->texelBufferAlignment */
4421 }
4422 
4423 static inline void
vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * val)4424 vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
4425 {
4426     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4427 
4428     do {
4429         switch ((int32_t)pnext->sType) {
4430         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
4431             vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
4432             break;
4433         default:
4434             /* ignore unknown/unsupported struct */
4435             break;
4436         }
4437         pnext = pnext->pNext;
4438     } while (pnext);
4439 }
4440 
4441 /* struct VkPhysicalDeviceSubgroupSizeControlFeatures chain */
4442 
4443 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(struct vn_cs_encoder * enc,const void * val)4444 vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4445 {
4446     /* no known/supported struct */
4447     vn_encode_simple_pointer(enc, NULL);
4448 }
4449 
4450 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupSizeControlFeatures * val)4451 vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4452 {
4453     /* skip val->{sType,pNext} */
4454     vn_encode_VkBool32(enc, &val->subgroupSizeControl);
4455     vn_encode_VkBool32(enc, &val->computeFullSubgroups);
4456 }
4457 
4458 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupSizeControlFeatures * val)4459 vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4460 {
4461     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES);
4462     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES });
4463     vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(enc, val->pNext);
4464     vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, val);
4465 }
4466 
4467 static inline void *
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_temp(struct vn_cs_decoder * dec)4468 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_temp(struct vn_cs_decoder *dec)
4469 {
4470     /* no known/supported struct */
4471     if (vn_decode_simple_pointer(dec))
4472         vn_cs_decoder_set_fatal(dec);
4473     return NULL;
4474 }
4475 
4476 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlFeatures * val)4477 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4478 {
4479     /* skip val->{sType,pNext} */
4480     vn_decode_VkBool32(dec, &val->subgroupSizeControl);
4481     vn_decode_VkBool32(dec, &val->computeFullSubgroups);
4482 }
4483 
4484 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlFeatures * val)4485 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4486 {
4487     VkStructureType stype;
4488     vn_decode_VkStructureType(dec, &stype);
4489     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)
4490         vn_cs_decoder_set_fatal(dec);
4491 
4492     val->sType = stype;
4493     val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_temp(dec);
4494     vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, val);
4495 }
4496 
4497 static inline void *
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)4498 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
4499 {
4500     /* no known/supported struct */
4501     if (vn_decode_simple_pointer(dec))
4502         vn_cs_decoder_set_fatal(dec);
4503     return NULL;
4504 }
4505 
4506 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlFeatures * val)4507 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4508 {
4509     /* skip val->{sType,pNext} */
4510     /* skip val->subgroupSizeControl */
4511     /* skip val->computeFullSubgroups */
4512 }
4513 
4514 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlFeatures * val)4515 vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4516 {
4517     VkStructureType stype;
4518     vn_decode_VkStructureType(dec, &stype);
4519     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)
4520         vn_cs_decoder_set_fatal(dec);
4521 
4522     val->sType = stype;
4523     val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial_temp(dec);
4524     vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(dec, val);
4525 }
4526 
4527 static inline void
vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self(VkPhysicalDeviceSubgroupSizeControlFeatures * val)4528 vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self(VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4529 {
4530     /* skip val->sType */
4531     /* skip val->pNext */
4532     /* skip val->subgroupSizeControl */
4533     /* skip val->computeFullSubgroups */
4534 }
4535 
4536 static inline void
vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle(VkPhysicalDeviceSubgroupSizeControlFeatures * val)4537 vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle(VkPhysicalDeviceSubgroupSizeControlFeatures *val)
4538 {
4539     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4540 
4541     do {
4542         switch ((int32_t)pnext->sType) {
4543         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
4544             vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
4545             break;
4546         default:
4547             /* ignore unknown/unsupported struct */
4548             break;
4549         }
4550         pnext = pnext->pNext;
4551     } while (pnext);
4552 }
4553 
4554 /* struct VkPhysicalDeviceLineRasterizationFeaturesEXT chain */
4555 
4556 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)4557 vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
4558 {
4559     /* no known/supported struct */
4560     vn_encode_simple_pointer(enc, NULL);
4561 }
4562 
4563 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4564 vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4565 {
4566     /* skip val->{sType,pNext} */
4567     vn_encode_VkBool32(enc, &val->rectangularLines);
4568     vn_encode_VkBool32(enc, &val->bresenhamLines);
4569     vn_encode_VkBool32(enc, &val->smoothLines);
4570     vn_encode_VkBool32(enc, &val->stippledRectangularLines);
4571     vn_encode_VkBool32(enc, &val->stippledBresenhamLines);
4572     vn_encode_VkBool32(enc, &val->stippledSmoothLines);
4573 }
4574 
4575 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4576 vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4577 {
4578     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT);
4579     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT });
4580     vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(enc, val->pNext);
4581     vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, val);
4582 }
4583 
4584 static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)4585 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
4586 {
4587     /* no known/supported struct */
4588     if (vn_decode_simple_pointer(dec))
4589         vn_cs_decoder_set_fatal(dec);
4590     return NULL;
4591 }
4592 
4593 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4594 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4595 {
4596     /* skip val->{sType,pNext} */
4597     vn_decode_VkBool32(dec, &val->rectangularLines);
4598     vn_decode_VkBool32(dec, &val->bresenhamLines);
4599     vn_decode_VkBool32(dec, &val->smoothLines);
4600     vn_decode_VkBool32(dec, &val->stippledRectangularLines);
4601     vn_decode_VkBool32(dec, &val->stippledBresenhamLines);
4602     vn_decode_VkBool32(dec, &val->stippledSmoothLines);
4603 }
4604 
4605 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4606 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4607 {
4608     VkStructureType stype;
4609     vn_decode_VkStructureType(dec, &stype);
4610     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT)
4611         vn_cs_decoder_set_fatal(dec);
4612 
4613     val->sType = stype;
4614     val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_temp(dec);
4615     vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, val);
4616 }
4617 
4618 static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)4619 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
4620 {
4621     /* no known/supported struct */
4622     if (vn_decode_simple_pointer(dec))
4623         vn_cs_decoder_set_fatal(dec);
4624     return NULL;
4625 }
4626 
4627 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4628 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4629 {
4630     /* skip val->{sType,pNext} */
4631     /* skip val->rectangularLines */
4632     /* skip val->bresenhamLines */
4633     /* skip val->smoothLines */
4634     /* skip val->stippledRectangularLines */
4635     /* skip val->stippledBresenhamLines */
4636     /* skip val->stippledSmoothLines */
4637 }
4638 
4639 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4640 vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4641 {
4642     VkStructureType stype;
4643     vn_decode_VkStructureType(dec, &stype);
4644     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT)
4645         vn_cs_decoder_set_fatal(dec);
4646 
4647     val->sType = stype;
4648     val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial_temp(dec);
4649     vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(dec, val);
4650 }
4651 
4652 static inline void
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self(VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4653 vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self(VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4654 {
4655     /* skip val->sType */
4656     /* skip val->pNext */
4657     /* skip val->rectangularLines */
4658     /* skip val->bresenhamLines */
4659     /* skip val->smoothLines */
4660     /* skip val->stippledRectangularLines */
4661     /* skip val->stippledBresenhamLines */
4662     /* skip val->stippledSmoothLines */
4663 }
4664 
4665 static inline void
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle(VkPhysicalDeviceLineRasterizationFeaturesEXT * val)4666 vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle(VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
4667 {
4668     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4669 
4670     do {
4671         switch ((int32_t)pnext->sType) {
4672         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
4673             vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
4674             break;
4675         default:
4676             /* ignore unknown/unsupported struct */
4677             break;
4678         }
4679         pnext = pnext->pNext;
4680     } while (pnext);
4681 }
4682 
4683 /* struct VkPhysicalDevicePipelineCreationCacheControlFeatures chain */
4684 
4685 static inline void
vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(struct vn_cs_encoder * enc,const void * val)4686 vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4687 {
4688     /* no known/supported struct */
4689     vn_encode_simple_pointer(enc, NULL);
4690 }
4691 
4692 static inline void
vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4693 vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4694 {
4695     /* skip val->{sType,pNext} */
4696     vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl);
4697 }
4698 
4699 static inline void
vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures(struct vn_cs_encoder * enc,const VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4700 vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4701 {
4702     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES);
4703     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES });
4704     vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(enc, val->pNext);
4705     vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, val);
4706 }
4707 
4708 static inline void *
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_temp(struct vn_cs_decoder * dec)4709 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_temp(struct vn_cs_decoder *dec)
4710 {
4711     /* no known/supported struct */
4712     if (vn_decode_simple_pointer(dec))
4713         vn_cs_decoder_set_fatal(dec);
4714     return NULL;
4715 }
4716 
4717 static inline void
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4718 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4719 {
4720     /* skip val->{sType,pNext} */
4721     vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl);
4722 }
4723 
4724 static inline void
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4725 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4726 {
4727     VkStructureType stype;
4728     vn_decode_VkStructureType(dec, &stype);
4729     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)
4730         vn_cs_decoder_set_fatal(dec);
4731 
4732     val->sType = stype;
4733     val->pNext = vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_temp(dec);
4734     vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, val);
4735 }
4736 
4737 static inline void *
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)4738 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
4739 {
4740     /* no known/supported struct */
4741     if (vn_decode_simple_pointer(dec))
4742         vn_cs_decoder_set_fatal(dec);
4743     return NULL;
4744 }
4745 
4746 static inline void
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4747 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4748 {
4749     /* skip val->{sType,pNext} */
4750     /* skip val->pipelineCreationCacheControl */
4751 }
4752 
4753 static inline void
vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4754 vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4755 {
4756     VkStructureType stype;
4757     vn_decode_VkStructureType(dec, &stype);
4758     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)
4759         vn_cs_decoder_set_fatal(dec);
4760 
4761     val->sType = stype;
4762     val->pNext = vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial_temp(dec);
4763     vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(dec, val);
4764 }
4765 
4766 static inline void
vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self(VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4767 vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self(VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4768 {
4769     /* skip val->sType */
4770     /* skip val->pNext */
4771     /* skip val->pipelineCreationCacheControl */
4772 }
4773 
4774 static inline void
vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle(VkPhysicalDevicePipelineCreationCacheControlFeatures * val)4775 vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle(VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
4776 {
4777     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4778 
4779     do {
4780         switch ((int32_t)pnext->sType) {
4781         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
4782             vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
4783             break;
4784         default:
4785             /* ignore unknown/unsupported struct */
4786             break;
4787         }
4788         pnext = pnext->pNext;
4789     } while (pnext);
4790 }
4791 
4792 /* struct VkPhysicalDeviceVulkan11Features chain */
4793 
4794 static inline void
vn_encode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_encoder * enc,const void * val)4795 vn_encode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_encoder *enc, const void *val)
4796 {
4797     /* no known/supported struct */
4798     vn_encode_simple_pointer(enc, NULL);
4799 }
4800 
4801 static inline void
vn_encode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan11Features * val)4802 vn_encode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
4803 {
4804     /* skip val->{sType,pNext} */
4805     vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess);
4806     vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess);
4807     vn_encode_VkBool32(enc, &val->storagePushConstant16);
4808     vn_encode_VkBool32(enc, &val->storageInputOutput16);
4809     vn_encode_VkBool32(enc, &val->multiview);
4810     vn_encode_VkBool32(enc, &val->multiviewGeometryShader);
4811     vn_encode_VkBool32(enc, &val->multiviewTessellationShader);
4812     vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer);
4813     vn_encode_VkBool32(enc, &val->variablePointers);
4814     vn_encode_VkBool32(enc, &val->protectedMemory);
4815     vn_encode_VkBool32(enc, &val->samplerYcbcrConversion);
4816     vn_encode_VkBool32(enc, &val->shaderDrawParameters);
4817 }
4818 
4819 static inline void
vn_encode_VkPhysicalDeviceVulkan11Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan11Features * val)4820 vn_encode_VkPhysicalDeviceVulkan11Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
4821 {
4822     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES);
4823     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES });
4824     vn_encode_VkPhysicalDeviceVulkan11Features_pnext(enc, val->pNext);
4825     vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, val);
4826 }
4827 
4828 static inline void *
vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(struct vn_cs_decoder * dec)4829 vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(struct vn_cs_decoder *dec)
4830 {
4831     /* no known/supported struct */
4832     if (vn_decode_simple_pointer(dec))
4833         vn_cs_decoder_set_fatal(dec);
4834     return NULL;
4835 }
4836 
4837 static inline void
vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Features * val)4838 vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
4839 {
4840     /* skip val->{sType,pNext} */
4841     vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess);
4842     vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess);
4843     vn_decode_VkBool32(dec, &val->storagePushConstant16);
4844     vn_decode_VkBool32(dec, &val->storageInputOutput16);
4845     vn_decode_VkBool32(dec, &val->multiview);
4846     vn_decode_VkBool32(dec, &val->multiviewGeometryShader);
4847     vn_decode_VkBool32(dec, &val->multiviewTessellationShader);
4848     vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer);
4849     vn_decode_VkBool32(dec, &val->variablePointers);
4850     vn_decode_VkBool32(dec, &val->protectedMemory);
4851     vn_decode_VkBool32(dec, &val->samplerYcbcrConversion);
4852     vn_decode_VkBool32(dec, &val->shaderDrawParameters);
4853 }
4854 
4855 static inline void
vn_decode_VkPhysicalDeviceVulkan11Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Features * val)4856 vn_decode_VkPhysicalDeviceVulkan11Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
4857 {
4858     VkStructureType stype;
4859     vn_decode_VkStructureType(dec, &stype);
4860     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES)
4861         vn_cs_decoder_set_fatal(dec);
4862 
4863     val->sType = stype;
4864     val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(dec);
4865     vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, val);
4866 }
4867 
4868 static inline void *
vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(struct vn_cs_decoder * dec)4869 vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(struct vn_cs_decoder *dec)
4870 {
4871     /* no known/supported struct */
4872     if (vn_decode_simple_pointer(dec))
4873         vn_cs_decoder_set_fatal(dec);
4874     return NULL;
4875 }
4876 
4877 static inline void
vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Features * val)4878 vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
4879 {
4880     /* skip val->{sType,pNext} */
4881     /* skip val->storageBuffer16BitAccess */
4882     /* skip val->uniformAndStorageBuffer16BitAccess */
4883     /* skip val->storagePushConstant16 */
4884     /* skip val->storageInputOutput16 */
4885     /* skip val->multiview */
4886     /* skip val->multiviewGeometryShader */
4887     /* skip val->multiviewTessellationShader */
4888     /* skip val->variablePointersStorageBuffer */
4889     /* skip val->variablePointers */
4890     /* skip val->protectedMemory */
4891     /* skip val->samplerYcbcrConversion */
4892     /* skip val->shaderDrawParameters */
4893 }
4894 
4895 static inline void
vn_decode_VkPhysicalDeviceVulkan11Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Features * val)4896 vn_decode_VkPhysicalDeviceVulkan11Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
4897 {
4898     VkStructureType stype;
4899     vn_decode_VkStructureType(dec, &stype);
4900     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES)
4901         vn_cs_decoder_set_fatal(dec);
4902 
4903     val->sType = stype;
4904     val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(dec);
4905     vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(dec, val);
4906 }
4907 
4908 static inline void
vn_replace_VkPhysicalDeviceVulkan11Features_handle_self(VkPhysicalDeviceVulkan11Features * val)4909 vn_replace_VkPhysicalDeviceVulkan11Features_handle_self(VkPhysicalDeviceVulkan11Features *val)
4910 {
4911     /* skip val->sType */
4912     /* skip val->pNext */
4913     /* skip val->storageBuffer16BitAccess */
4914     /* skip val->uniformAndStorageBuffer16BitAccess */
4915     /* skip val->storagePushConstant16 */
4916     /* skip val->storageInputOutput16 */
4917     /* skip val->multiview */
4918     /* skip val->multiviewGeometryShader */
4919     /* skip val->multiviewTessellationShader */
4920     /* skip val->variablePointersStorageBuffer */
4921     /* skip val->variablePointers */
4922     /* skip val->protectedMemory */
4923     /* skip val->samplerYcbcrConversion */
4924     /* skip val->shaderDrawParameters */
4925 }
4926 
4927 static inline void
vn_replace_VkPhysicalDeviceVulkan11Features_handle(VkPhysicalDeviceVulkan11Features * val)4928 vn_replace_VkPhysicalDeviceVulkan11Features_handle(VkPhysicalDeviceVulkan11Features *val)
4929 {
4930     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
4931 
4932     do {
4933         switch ((int32_t)pnext->sType) {
4934         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
4935             vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext);
4936             break;
4937         default:
4938             /* ignore unknown/unsupported struct */
4939             break;
4940         }
4941         pnext = pnext->pNext;
4942     } while (pnext);
4943 }
4944 
4945 /* struct VkPhysicalDeviceVulkan12Features chain */
4946 
4947 static inline void
vn_encode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_encoder * enc,const void * val)4948 vn_encode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_encoder *enc, const void *val)
4949 {
4950     /* no known/supported struct */
4951     vn_encode_simple_pointer(enc, NULL);
4952 }
4953 
4954 static inline void
vn_encode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan12Features * val)4955 vn_encode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
4956 {
4957     /* skip val->{sType,pNext} */
4958     vn_encode_VkBool32(enc, &val->samplerMirrorClampToEdge);
4959     vn_encode_VkBool32(enc, &val->drawIndirectCount);
4960     vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess);
4961     vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess);
4962     vn_encode_VkBool32(enc, &val->storagePushConstant8);
4963     vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics);
4964     vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics);
4965     vn_encode_VkBool32(enc, &val->shaderFloat16);
4966     vn_encode_VkBool32(enc, &val->shaderInt8);
4967     vn_encode_VkBool32(enc, &val->descriptorIndexing);
4968     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing);
4969     vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing);
4970     vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing);
4971     vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing);
4972     vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing);
4973     vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing);
4974     vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing);
4975     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing);
4976     vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
4977     vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
4978     vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind);
4979     vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind);
4980     vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind);
4981     vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind);
4982     vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
4983     vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
4984     vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending);
4985     vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound);
4986     vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount);
4987     vn_encode_VkBool32(enc, &val->runtimeDescriptorArray);
4988     vn_encode_VkBool32(enc, &val->samplerFilterMinmax);
4989     vn_encode_VkBool32(enc, &val->scalarBlockLayout);
4990     vn_encode_VkBool32(enc, &val->imagelessFramebuffer);
4991     vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout);
4992     vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes);
4993     vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts);
4994     vn_encode_VkBool32(enc, &val->hostQueryReset);
4995     vn_encode_VkBool32(enc, &val->timelineSemaphore);
4996     vn_encode_VkBool32(enc, &val->bufferDeviceAddress);
4997     vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay);
4998     vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice);
4999     vn_encode_VkBool32(enc, &val->vulkanMemoryModel);
5000     vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope);
5001     vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains);
5002     vn_encode_VkBool32(enc, &val->shaderOutputViewportIndex);
5003     vn_encode_VkBool32(enc, &val->shaderOutputLayer);
5004     vn_encode_VkBool32(enc, &val->subgroupBroadcastDynamicId);
5005 }
5006 
5007 static inline void
vn_encode_VkPhysicalDeviceVulkan12Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan12Features * val)5008 vn_encode_VkPhysicalDeviceVulkan12Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
5009 {
5010     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES);
5011     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES });
5012     vn_encode_VkPhysicalDeviceVulkan12Features_pnext(enc, val->pNext);
5013     vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, val);
5014 }
5015 
5016 static inline void *
vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(struct vn_cs_decoder * dec)5017 vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(struct vn_cs_decoder *dec)
5018 {
5019     /* no known/supported struct */
5020     if (vn_decode_simple_pointer(dec))
5021         vn_cs_decoder_set_fatal(dec);
5022     return NULL;
5023 }
5024 
5025 static inline void
vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Features * val)5026 vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
5027 {
5028     /* skip val->{sType,pNext} */
5029     vn_decode_VkBool32(dec, &val->samplerMirrorClampToEdge);
5030     vn_decode_VkBool32(dec, &val->drawIndirectCount);
5031     vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess);
5032     vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess);
5033     vn_decode_VkBool32(dec, &val->storagePushConstant8);
5034     vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics);
5035     vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics);
5036     vn_decode_VkBool32(dec, &val->shaderFloat16);
5037     vn_decode_VkBool32(dec, &val->shaderInt8);
5038     vn_decode_VkBool32(dec, &val->descriptorIndexing);
5039     vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing);
5040     vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing);
5041     vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing);
5042     vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing);
5043     vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing);
5044     vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing);
5045     vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing);
5046     vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing);
5047     vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
5048     vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
5049     vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind);
5050     vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind);
5051     vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind);
5052     vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind);
5053     vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
5054     vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
5055     vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending);
5056     vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound);
5057     vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount);
5058     vn_decode_VkBool32(dec, &val->runtimeDescriptorArray);
5059     vn_decode_VkBool32(dec, &val->samplerFilterMinmax);
5060     vn_decode_VkBool32(dec, &val->scalarBlockLayout);
5061     vn_decode_VkBool32(dec, &val->imagelessFramebuffer);
5062     vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout);
5063     vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes);
5064     vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts);
5065     vn_decode_VkBool32(dec, &val->hostQueryReset);
5066     vn_decode_VkBool32(dec, &val->timelineSemaphore);
5067     vn_decode_VkBool32(dec, &val->bufferDeviceAddress);
5068     vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay);
5069     vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice);
5070     vn_decode_VkBool32(dec, &val->vulkanMemoryModel);
5071     vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope);
5072     vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains);
5073     vn_decode_VkBool32(dec, &val->shaderOutputViewportIndex);
5074     vn_decode_VkBool32(dec, &val->shaderOutputLayer);
5075     vn_decode_VkBool32(dec, &val->subgroupBroadcastDynamicId);
5076 }
5077 
5078 static inline void
vn_decode_VkPhysicalDeviceVulkan12Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Features * val)5079 vn_decode_VkPhysicalDeviceVulkan12Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
5080 {
5081     VkStructureType stype;
5082     vn_decode_VkStructureType(dec, &stype);
5083     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES)
5084         vn_cs_decoder_set_fatal(dec);
5085 
5086     val->sType = stype;
5087     val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(dec);
5088     vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, val);
5089 }
5090 
5091 static inline void *
vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(struct vn_cs_decoder * dec)5092 vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(struct vn_cs_decoder *dec)
5093 {
5094     /* no known/supported struct */
5095     if (vn_decode_simple_pointer(dec))
5096         vn_cs_decoder_set_fatal(dec);
5097     return NULL;
5098 }
5099 
5100 static inline void
vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Features * val)5101 vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
5102 {
5103     /* skip val->{sType,pNext} */
5104     /* skip val->samplerMirrorClampToEdge */
5105     /* skip val->drawIndirectCount */
5106     /* skip val->storageBuffer8BitAccess */
5107     /* skip val->uniformAndStorageBuffer8BitAccess */
5108     /* skip val->storagePushConstant8 */
5109     /* skip val->shaderBufferInt64Atomics */
5110     /* skip val->shaderSharedInt64Atomics */
5111     /* skip val->shaderFloat16 */
5112     /* skip val->shaderInt8 */
5113     /* skip val->descriptorIndexing */
5114     /* skip val->shaderInputAttachmentArrayDynamicIndexing */
5115     /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
5116     /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
5117     /* skip val->shaderUniformBufferArrayNonUniformIndexing */
5118     /* skip val->shaderSampledImageArrayNonUniformIndexing */
5119     /* skip val->shaderStorageBufferArrayNonUniformIndexing */
5120     /* skip val->shaderStorageImageArrayNonUniformIndexing */
5121     /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
5122     /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
5123     /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
5124     /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
5125     /* skip val->descriptorBindingSampledImageUpdateAfterBind */
5126     /* skip val->descriptorBindingStorageImageUpdateAfterBind */
5127     /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
5128     /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
5129     /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
5130     /* skip val->descriptorBindingUpdateUnusedWhilePending */
5131     /* skip val->descriptorBindingPartiallyBound */
5132     /* skip val->descriptorBindingVariableDescriptorCount */
5133     /* skip val->runtimeDescriptorArray */
5134     /* skip val->samplerFilterMinmax */
5135     /* skip val->scalarBlockLayout */
5136     /* skip val->imagelessFramebuffer */
5137     /* skip val->uniformBufferStandardLayout */
5138     /* skip val->shaderSubgroupExtendedTypes */
5139     /* skip val->separateDepthStencilLayouts */
5140     /* skip val->hostQueryReset */
5141     /* skip val->timelineSemaphore */
5142     /* skip val->bufferDeviceAddress */
5143     /* skip val->bufferDeviceAddressCaptureReplay */
5144     /* skip val->bufferDeviceAddressMultiDevice */
5145     /* skip val->vulkanMemoryModel */
5146     /* skip val->vulkanMemoryModelDeviceScope */
5147     /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
5148     /* skip val->shaderOutputViewportIndex */
5149     /* skip val->shaderOutputLayer */
5150     /* skip val->subgroupBroadcastDynamicId */
5151 }
5152 
5153 static inline void
vn_decode_VkPhysicalDeviceVulkan12Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Features * val)5154 vn_decode_VkPhysicalDeviceVulkan12Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
5155 {
5156     VkStructureType stype;
5157     vn_decode_VkStructureType(dec, &stype);
5158     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES)
5159         vn_cs_decoder_set_fatal(dec);
5160 
5161     val->sType = stype;
5162     val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(dec);
5163     vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(dec, val);
5164 }
5165 
5166 static inline void
vn_replace_VkPhysicalDeviceVulkan12Features_handle_self(VkPhysicalDeviceVulkan12Features * val)5167 vn_replace_VkPhysicalDeviceVulkan12Features_handle_self(VkPhysicalDeviceVulkan12Features *val)
5168 {
5169     /* skip val->sType */
5170     /* skip val->pNext */
5171     /* skip val->samplerMirrorClampToEdge */
5172     /* skip val->drawIndirectCount */
5173     /* skip val->storageBuffer8BitAccess */
5174     /* skip val->uniformAndStorageBuffer8BitAccess */
5175     /* skip val->storagePushConstant8 */
5176     /* skip val->shaderBufferInt64Atomics */
5177     /* skip val->shaderSharedInt64Atomics */
5178     /* skip val->shaderFloat16 */
5179     /* skip val->shaderInt8 */
5180     /* skip val->descriptorIndexing */
5181     /* skip val->shaderInputAttachmentArrayDynamicIndexing */
5182     /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
5183     /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
5184     /* skip val->shaderUniformBufferArrayNonUniformIndexing */
5185     /* skip val->shaderSampledImageArrayNonUniformIndexing */
5186     /* skip val->shaderStorageBufferArrayNonUniformIndexing */
5187     /* skip val->shaderStorageImageArrayNonUniformIndexing */
5188     /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
5189     /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
5190     /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
5191     /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
5192     /* skip val->descriptorBindingSampledImageUpdateAfterBind */
5193     /* skip val->descriptorBindingStorageImageUpdateAfterBind */
5194     /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
5195     /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
5196     /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
5197     /* skip val->descriptorBindingUpdateUnusedWhilePending */
5198     /* skip val->descriptorBindingPartiallyBound */
5199     /* skip val->descriptorBindingVariableDescriptorCount */
5200     /* skip val->runtimeDescriptorArray */
5201     /* skip val->samplerFilterMinmax */
5202     /* skip val->scalarBlockLayout */
5203     /* skip val->imagelessFramebuffer */
5204     /* skip val->uniformBufferStandardLayout */
5205     /* skip val->shaderSubgroupExtendedTypes */
5206     /* skip val->separateDepthStencilLayouts */
5207     /* skip val->hostQueryReset */
5208     /* skip val->timelineSemaphore */
5209     /* skip val->bufferDeviceAddress */
5210     /* skip val->bufferDeviceAddressCaptureReplay */
5211     /* skip val->bufferDeviceAddressMultiDevice */
5212     /* skip val->vulkanMemoryModel */
5213     /* skip val->vulkanMemoryModelDeviceScope */
5214     /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
5215     /* skip val->shaderOutputViewportIndex */
5216     /* skip val->shaderOutputLayer */
5217     /* skip val->subgroupBroadcastDynamicId */
5218 }
5219 
5220 static inline void
vn_replace_VkPhysicalDeviceVulkan12Features_handle(VkPhysicalDeviceVulkan12Features * val)5221 vn_replace_VkPhysicalDeviceVulkan12Features_handle(VkPhysicalDeviceVulkan12Features *val)
5222 {
5223     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5224 
5225     do {
5226         switch ((int32_t)pnext->sType) {
5227         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
5228             vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext);
5229             break;
5230         default:
5231             /* ignore unknown/unsupported struct */
5232             break;
5233         }
5234         pnext = pnext->pNext;
5235     } while (pnext);
5236 }
5237 
5238 /* struct VkPhysicalDeviceVulkan13Features chain */
5239 
5240 static inline void
vn_encode_VkPhysicalDeviceVulkan13Features_pnext(struct vn_cs_encoder * enc,const void * val)5241 vn_encode_VkPhysicalDeviceVulkan13Features_pnext(struct vn_cs_encoder *enc, const void *val)
5242 {
5243     /* no known/supported struct */
5244     vn_encode_simple_pointer(enc, NULL);
5245 }
5246 
5247 static inline void
vn_encode_VkPhysicalDeviceVulkan13Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan13Features * val)5248 vn_encode_VkPhysicalDeviceVulkan13Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
5249 {
5250     /* skip val->{sType,pNext} */
5251     vn_encode_VkBool32(enc, &val->robustImageAccess);
5252     vn_encode_VkBool32(enc, &val->inlineUniformBlock);
5253     vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
5254     vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl);
5255     vn_encode_VkBool32(enc, &val->privateData);
5256     vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation);
5257     vn_encode_VkBool32(enc, &val->shaderTerminateInvocation);
5258     vn_encode_VkBool32(enc, &val->subgroupSizeControl);
5259     vn_encode_VkBool32(enc, &val->computeFullSubgroups);
5260     vn_encode_VkBool32(enc, &val->synchronization2);
5261     vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR);
5262     vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory);
5263     vn_encode_VkBool32(enc, &val->dynamicRendering);
5264     vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct);
5265     vn_encode_VkBool32(enc, &val->maintenance4);
5266 }
5267 
5268 static inline void
vn_encode_VkPhysicalDeviceVulkan13Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan13Features * val)5269 vn_encode_VkPhysicalDeviceVulkan13Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
5270 {
5271     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES);
5272     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES });
5273     vn_encode_VkPhysicalDeviceVulkan13Features_pnext(enc, val->pNext);
5274     vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, val);
5275 }
5276 
5277 static inline void *
vn_decode_VkPhysicalDeviceVulkan13Features_pnext_temp(struct vn_cs_decoder * dec)5278 vn_decode_VkPhysicalDeviceVulkan13Features_pnext_temp(struct vn_cs_decoder *dec)
5279 {
5280     /* no known/supported struct */
5281     if (vn_decode_simple_pointer(dec))
5282         vn_cs_decoder_set_fatal(dec);
5283     return NULL;
5284 }
5285 
5286 static inline void
vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Features * val)5287 vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
5288 {
5289     /* skip val->{sType,pNext} */
5290     vn_decode_VkBool32(dec, &val->robustImageAccess);
5291     vn_decode_VkBool32(dec, &val->inlineUniformBlock);
5292     vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
5293     vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl);
5294     vn_decode_VkBool32(dec, &val->privateData);
5295     vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation);
5296     vn_decode_VkBool32(dec, &val->shaderTerminateInvocation);
5297     vn_decode_VkBool32(dec, &val->subgroupSizeControl);
5298     vn_decode_VkBool32(dec, &val->computeFullSubgroups);
5299     vn_decode_VkBool32(dec, &val->synchronization2);
5300     vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR);
5301     vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory);
5302     vn_decode_VkBool32(dec, &val->dynamicRendering);
5303     vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct);
5304     vn_decode_VkBool32(dec, &val->maintenance4);
5305 }
5306 
5307 static inline void
vn_decode_VkPhysicalDeviceVulkan13Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Features * val)5308 vn_decode_VkPhysicalDeviceVulkan13Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
5309 {
5310     VkStructureType stype;
5311     vn_decode_VkStructureType(dec, &stype);
5312     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)
5313         vn_cs_decoder_set_fatal(dec);
5314 
5315     val->sType = stype;
5316     val->pNext = vn_decode_VkPhysicalDeviceVulkan13Features_pnext_temp(dec);
5317     vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, val);
5318 }
5319 
5320 static inline void *
vn_decode_VkPhysicalDeviceVulkan13Features_pnext_partial_temp(struct vn_cs_decoder * dec)5321 vn_decode_VkPhysicalDeviceVulkan13Features_pnext_partial_temp(struct vn_cs_decoder *dec)
5322 {
5323     /* no known/supported struct */
5324     if (vn_decode_simple_pointer(dec))
5325         vn_cs_decoder_set_fatal(dec);
5326     return NULL;
5327 }
5328 
5329 static inline void
vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Features * val)5330 vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
5331 {
5332     /* skip val->{sType,pNext} */
5333     /* skip val->robustImageAccess */
5334     /* skip val->inlineUniformBlock */
5335     /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
5336     /* skip val->pipelineCreationCacheControl */
5337     /* skip val->privateData */
5338     /* skip val->shaderDemoteToHelperInvocation */
5339     /* skip val->shaderTerminateInvocation */
5340     /* skip val->subgroupSizeControl */
5341     /* skip val->computeFullSubgroups */
5342     /* skip val->synchronization2 */
5343     /* skip val->textureCompressionASTC_HDR */
5344     /* skip val->shaderZeroInitializeWorkgroupMemory */
5345     /* skip val->dynamicRendering */
5346     /* skip val->shaderIntegerDotProduct */
5347     /* skip val->maintenance4 */
5348 }
5349 
5350 static inline void
vn_decode_VkPhysicalDeviceVulkan13Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Features * val)5351 vn_decode_VkPhysicalDeviceVulkan13Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
5352 {
5353     VkStructureType stype;
5354     vn_decode_VkStructureType(dec, &stype);
5355     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)
5356         vn_cs_decoder_set_fatal(dec);
5357 
5358     val->sType = stype;
5359     val->pNext = vn_decode_VkPhysicalDeviceVulkan13Features_pnext_partial_temp(dec);
5360     vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(dec, val);
5361 }
5362 
5363 static inline void
vn_replace_VkPhysicalDeviceVulkan13Features_handle_self(VkPhysicalDeviceVulkan13Features * val)5364 vn_replace_VkPhysicalDeviceVulkan13Features_handle_self(VkPhysicalDeviceVulkan13Features *val)
5365 {
5366     /* skip val->sType */
5367     /* skip val->pNext */
5368     /* skip val->robustImageAccess */
5369     /* skip val->inlineUniformBlock */
5370     /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
5371     /* skip val->pipelineCreationCacheControl */
5372     /* skip val->privateData */
5373     /* skip val->shaderDemoteToHelperInvocation */
5374     /* skip val->shaderTerminateInvocation */
5375     /* skip val->subgroupSizeControl */
5376     /* skip val->computeFullSubgroups */
5377     /* skip val->synchronization2 */
5378     /* skip val->textureCompressionASTC_HDR */
5379     /* skip val->shaderZeroInitializeWorkgroupMemory */
5380     /* skip val->dynamicRendering */
5381     /* skip val->shaderIntegerDotProduct */
5382     /* skip val->maintenance4 */
5383 }
5384 
5385 static inline void
vn_replace_VkPhysicalDeviceVulkan13Features_handle(VkPhysicalDeviceVulkan13Features * val)5386 vn_replace_VkPhysicalDeviceVulkan13Features_handle(VkPhysicalDeviceVulkan13Features *val)
5387 {
5388     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5389 
5390     do {
5391         switch ((int32_t)pnext->sType) {
5392         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
5393             vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext);
5394             break;
5395         default:
5396             /* ignore unknown/unsupported struct */
5397             break;
5398         }
5399         pnext = pnext->pNext;
5400     } while (pnext);
5401 }
5402 
5403 /* struct VkPhysicalDeviceCustomBorderColorFeaturesEXT chain */
5404 
5405 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)5406 vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5407 {
5408     /* no known/supported struct */
5409     vn_encode_simple_pointer(enc, NULL);
5410 }
5411 
5412 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5413 vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5414 {
5415     /* skip val->{sType,pNext} */
5416     vn_encode_VkBool32(enc, &val->customBorderColors);
5417     vn_encode_VkBool32(enc, &val->customBorderColorWithoutFormat);
5418 }
5419 
5420 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5421 vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5422 {
5423     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT);
5424     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT });
5425     vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(enc, val->pNext);
5426     vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, val);
5427 }
5428 
5429 static inline void *
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)5430 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
5431 {
5432     /* no known/supported struct */
5433     if (vn_decode_simple_pointer(dec))
5434         vn_cs_decoder_set_fatal(dec);
5435     return NULL;
5436 }
5437 
5438 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5439 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5440 {
5441     /* skip val->{sType,pNext} */
5442     vn_decode_VkBool32(dec, &val->customBorderColors);
5443     vn_decode_VkBool32(dec, &val->customBorderColorWithoutFormat);
5444 }
5445 
5446 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5447 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5448 {
5449     VkStructureType stype;
5450     vn_decode_VkStructureType(dec, &stype);
5451     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT)
5452         vn_cs_decoder_set_fatal(dec);
5453 
5454     val->sType = stype;
5455     val->pNext = vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_temp(dec);
5456     vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_temp(dec, val);
5457 }
5458 
5459 static inline void *
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)5460 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
5461 {
5462     /* no known/supported struct */
5463     if (vn_decode_simple_pointer(dec))
5464         vn_cs_decoder_set_fatal(dec);
5465     return NULL;
5466 }
5467 
5468 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5469 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5470 {
5471     /* skip val->{sType,pNext} */
5472     /* skip val->customBorderColors */
5473     /* skip val->customBorderColorWithoutFormat */
5474 }
5475 
5476 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5477 vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5478 {
5479     VkStructureType stype;
5480     vn_decode_VkStructureType(dec, &stype);
5481     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT)
5482         vn_cs_decoder_set_fatal(dec);
5483 
5484     val->sType = stype;
5485     val->pNext = vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial_temp(dec);
5486     vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial_temp(dec, val);
5487 }
5488 
5489 static inline void
vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle_self(VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5490 vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle_self(VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5491 {
5492     /* skip val->sType */
5493     /* skip val->pNext */
5494     /* skip val->customBorderColors */
5495     /* skip val->customBorderColorWithoutFormat */
5496 }
5497 
5498 static inline void
vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle(VkPhysicalDeviceCustomBorderColorFeaturesEXT * val)5499 vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle(VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
5500 {
5501     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5502 
5503     do {
5504         switch ((int32_t)pnext->sType) {
5505         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
5506             vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle_self((VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
5507             break;
5508         default:
5509             /* ignore unknown/unsupported struct */
5510             break;
5511         }
5512         pnext = pnext->pNext;
5513     } while (pnext);
5514 }
5515 
5516 /* struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT chain */
5517 
5518 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)5519 vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5520 {
5521     /* no known/supported struct */
5522     vn_encode_simple_pointer(enc, NULL);
5523 }
5524 
5525 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5526 vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5527 {
5528     /* skip val->{sType,pNext} */
5529     vn_encode_VkBool32(enc, &val->extendedDynamicState);
5530 }
5531 
5532 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5533 vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5534 {
5535     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT);
5536     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT });
5537     vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(enc, val->pNext);
5538     vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, val);
5539 }
5540 
5541 static inline void *
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)5542 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
5543 {
5544     /* no known/supported struct */
5545     if (vn_decode_simple_pointer(dec))
5546         vn_cs_decoder_set_fatal(dec);
5547     return NULL;
5548 }
5549 
5550 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5551 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5552 {
5553     /* skip val->{sType,pNext} */
5554     vn_decode_VkBool32(dec, &val->extendedDynamicState);
5555 }
5556 
5557 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5558 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5559 {
5560     VkStructureType stype;
5561     vn_decode_VkStructureType(dec, &stype);
5562     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)
5563         vn_cs_decoder_set_fatal(dec);
5564 
5565     val->sType = stype;
5566     val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_temp(dec);
5567     vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, val);
5568 }
5569 
5570 static inline void *
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)5571 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
5572 {
5573     /* no known/supported struct */
5574     if (vn_decode_simple_pointer(dec))
5575         vn_cs_decoder_set_fatal(dec);
5576     return NULL;
5577 }
5578 
5579 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5580 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5581 {
5582     /* skip val->{sType,pNext} */
5583     /* skip val->extendedDynamicState */
5584 }
5585 
5586 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5587 vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5588 {
5589     VkStructureType stype;
5590     vn_decode_VkStructureType(dec, &stype);
5591     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)
5592         vn_cs_decoder_set_fatal(dec);
5593 
5594     val->sType = stype;
5595     val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial_temp(dec);
5596     vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(dec, val);
5597 }
5598 
5599 static inline void
vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5600 vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5601 {
5602     /* skip val->sType */
5603     /* skip val->pNext */
5604     /* skip val->extendedDynamicState */
5605 }
5606 
5607 static inline void
vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * val)5608 vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
5609 {
5610     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5611 
5612     do {
5613         switch ((int32_t)pnext->sType) {
5614         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
5615             vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
5616             break;
5617         default:
5618             /* ignore unknown/unsupported struct */
5619             break;
5620         }
5621         pnext = pnext->pNext;
5622     } while (pnext);
5623 }
5624 
5625 /* struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT chain */
5626 
5627 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)5628 vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5629 {
5630     /* no known/supported struct */
5631     vn_encode_simple_pointer(enc, NULL);
5632 }
5633 
5634 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5635 vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5636 {
5637     /* skip val->{sType,pNext} */
5638     vn_encode_VkBool32(enc, &val->extendedDynamicState2);
5639     vn_encode_VkBool32(enc, &val->extendedDynamicState2LogicOp);
5640     vn_encode_VkBool32(enc, &val->extendedDynamicState2PatchControlPoints);
5641 }
5642 
5643 static inline void
vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5644 vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5645 {
5646     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT);
5647     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT });
5648     vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(enc, val->pNext);
5649     vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, val);
5650 }
5651 
5652 static inline void *
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)5653 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
5654 {
5655     /* no known/supported struct */
5656     if (vn_decode_simple_pointer(dec))
5657         vn_cs_decoder_set_fatal(dec);
5658     return NULL;
5659 }
5660 
5661 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5662 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5663 {
5664     /* skip val->{sType,pNext} */
5665     vn_decode_VkBool32(dec, &val->extendedDynamicState2);
5666     vn_decode_VkBool32(dec, &val->extendedDynamicState2LogicOp);
5667     vn_decode_VkBool32(dec, &val->extendedDynamicState2PatchControlPoints);
5668 }
5669 
5670 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5671 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5672 {
5673     VkStructureType stype;
5674     vn_decode_VkStructureType(dec, &stype);
5675     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)
5676         vn_cs_decoder_set_fatal(dec);
5677 
5678     val->sType = stype;
5679     val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_temp(dec);
5680     vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, val);
5681 }
5682 
5683 static inline void *
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)5684 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
5685 {
5686     /* no known/supported struct */
5687     if (vn_decode_simple_pointer(dec))
5688         vn_cs_decoder_set_fatal(dec);
5689     return NULL;
5690 }
5691 
5692 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5693 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5694 {
5695     /* skip val->{sType,pNext} */
5696     /* skip val->extendedDynamicState2 */
5697     /* skip val->extendedDynamicState2LogicOp */
5698     /* skip val->extendedDynamicState2PatchControlPoints */
5699 }
5700 
5701 static inline void
vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5702 vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5703 {
5704     VkStructureType stype;
5705     vn_decode_VkStructureType(dec, &stype);
5706     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)
5707         vn_cs_decoder_set_fatal(dec);
5708 
5709     val->sType = stype;
5710     val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial_temp(dec);
5711     vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(dec, val);
5712 }
5713 
5714 static inline void
vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5715 vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5716 {
5717     /* skip val->sType */
5718     /* skip val->pNext */
5719     /* skip val->extendedDynamicState2 */
5720     /* skip val->extendedDynamicState2LogicOp */
5721     /* skip val->extendedDynamicState2PatchControlPoints */
5722 }
5723 
5724 static inline void
vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * val)5725 vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
5726 {
5727     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5728 
5729     do {
5730         switch ((int32_t)pnext->sType) {
5731         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
5732             vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
5733             break;
5734         default:
5735             /* ignore unknown/unsupported struct */
5736             break;
5737         }
5738         pnext = pnext->pNext;
5739     } while (pnext);
5740 }
5741 
5742 /* struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures chain */
5743 
5744 static inline void
vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(struct vn_cs_encoder * enc,const void * val)5745 vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5746 {
5747     /* no known/supported struct */
5748     vn_encode_simple_pointer(enc, NULL);
5749 }
5750 
5751 static inline void
vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5752 vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5753 {
5754     /* skip val->{sType,pNext} */
5755     vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory);
5756 }
5757 
5758 static inline void
vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5759 vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5760 {
5761     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES);
5762     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES });
5763     vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(enc, val->pNext);
5764     vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, val);
5765 }
5766 
5767 static inline void *
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_temp(struct vn_cs_decoder * dec)5768 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_temp(struct vn_cs_decoder *dec)
5769 {
5770     /* no known/supported struct */
5771     if (vn_decode_simple_pointer(dec))
5772         vn_cs_decoder_set_fatal(dec);
5773     return NULL;
5774 }
5775 
5776 static inline void
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5777 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5778 {
5779     /* skip val->{sType,pNext} */
5780     vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory);
5781 }
5782 
5783 static inline void
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5784 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5785 {
5786     VkStructureType stype;
5787     vn_decode_VkStructureType(dec, &stype);
5788     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)
5789         vn_cs_decoder_set_fatal(dec);
5790 
5791     val->sType = stype;
5792     val->pNext = vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_temp(dec);
5793     vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, val);
5794 }
5795 
5796 static inline void *
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)5797 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
5798 {
5799     /* no known/supported struct */
5800     if (vn_decode_simple_pointer(dec))
5801         vn_cs_decoder_set_fatal(dec);
5802     return NULL;
5803 }
5804 
5805 static inline void
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5806 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5807 {
5808     /* skip val->{sType,pNext} */
5809     /* skip val->shaderZeroInitializeWorkgroupMemory */
5810 }
5811 
5812 static inline void
vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5813 vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5814 {
5815     VkStructureType stype;
5816     vn_decode_VkStructureType(dec, &stype);
5817     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)
5818         vn_cs_decoder_set_fatal(dec);
5819 
5820     val->sType = stype;
5821     val->pNext = vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial_temp(dec);
5822     vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(dec, val);
5823 }
5824 
5825 static inline void
vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5826 vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5827 {
5828     /* skip val->sType */
5829     /* skip val->pNext */
5830     /* skip val->shaderZeroInitializeWorkgroupMemory */
5831 }
5832 
5833 static inline void
vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * val)5834 vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
5835 {
5836     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5837 
5838     do {
5839         switch ((int32_t)pnext->sType) {
5840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
5841             vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
5842             break;
5843         default:
5844             /* ignore unknown/unsupported struct */
5845             break;
5846         }
5847         pnext = pnext->pNext;
5848     } while (pnext);
5849 }
5850 
5851 /* struct VkPhysicalDeviceRobustness2FeaturesEXT chain */
5852 
5853 static inline void
vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)5854 vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5855 {
5856     /* no known/supported struct */
5857     vn_encode_simple_pointer(enc, NULL);
5858 }
5859 
5860 static inline void
vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceRobustness2FeaturesEXT * val)5861 vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
5862 {
5863     /* skip val->{sType,pNext} */
5864     vn_encode_VkBool32(enc, &val->robustBufferAccess2);
5865     vn_encode_VkBool32(enc, &val->robustImageAccess2);
5866     vn_encode_VkBool32(enc, &val->nullDescriptor);
5867 }
5868 
5869 static inline void
vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceRobustness2FeaturesEXT * val)5870 vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
5871 {
5872     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT);
5873     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT });
5874     vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(enc, val->pNext);
5875     vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(enc, val);
5876 }
5877 
5878 static inline void *
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)5879 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
5880 {
5881     /* no known/supported struct */
5882     if (vn_decode_simple_pointer(dec))
5883         vn_cs_decoder_set_fatal(dec);
5884     return NULL;
5885 }
5886 
5887 static inline void
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2FeaturesEXT * val)5888 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
5889 {
5890     /* skip val->{sType,pNext} */
5891     vn_decode_VkBool32(dec, &val->robustBufferAccess2);
5892     vn_decode_VkBool32(dec, &val->robustImageAccess2);
5893     vn_decode_VkBool32(dec, &val->nullDescriptor);
5894 }
5895 
5896 static inline void
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2FeaturesEXT * val)5897 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
5898 {
5899     VkStructureType stype;
5900     vn_decode_VkStructureType(dec, &stype);
5901     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT)
5902         vn_cs_decoder_set_fatal(dec);
5903 
5904     val->sType = stype;
5905     val->pNext = vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_temp(dec);
5906     vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_temp(dec, val);
5907 }
5908 
5909 static inline void *
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)5910 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
5911 {
5912     /* no known/supported struct */
5913     if (vn_decode_simple_pointer(dec))
5914         vn_cs_decoder_set_fatal(dec);
5915     return NULL;
5916 }
5917 
5918 static inline void
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2FeaturesEXT * val)5919 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
5920 {
5921     /* skip val->{sType,pNext} */
5922     /* skip val->robustBufferAccess2 */
5923     /* skip val->robustImageAccess2 */
5924     /* skip val->nullDescriptor */
5925 }
5926 
5927 static inline void
vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2FeaturesEXT * val)5928 vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
5929 {
5930     VkStructureType stype;
5931     vn_decode_VkStructureType(dec, &stype);
5932     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT)
5933         vn_cs_decoder_set_fatal(dec);
5934 
5935     val->sType = stype;
5936     val->pNext = vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial_temp(dec);
5937     vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial_temp(dec, val);
5938 }
5939 
5940 static inline void
vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle_self(VkPhysicalDeviceRobustness2FeaturesEXT * val)5941 vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle_self(VkPhysicalDeviceRobustness2FeaturesEXT *val)
5942 {
5943     /* skip val->sType */
5944     /* skip val->pNext */
5945     /* skip val->robustBufferAccess2 */
5946     /* skip val->robustImageAccess2 */
5947     /* skip val->nullDescriptor */
5948 }
5949 
5950 static inline void
vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle(VkPhysicalDeviceRobustness2FeaturesEXT * val)5951 vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle(VkPhysicalDeviceRobustness2FeaturesEXT *val)
5952 {
5953     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
5954 
5955     do {
5956         switch ((int32_t)pnext->sType) {
5957         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
5958             vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle_self((VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
5959             break;
5960         default:
5961             /* ignore unknown/unsupported struct */
5962             break;
5963         }
5964         pnext = pnext->pNext;
5965     } while (pnext);
5966 }
5967 
5968 /* struct VkPhysicalDeviceImageRobustnessFeatures chain */
5969 
5970 static inline void
vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(struct vn_cs_encoder * enc,const void * val)5971 vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5972 {
5973     /* no known/supported struct */
5974     vn_encode_simple_pointer(enc, NULL);
5975 }
5976 
5977 static inline void
vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceImageRobustnessFeatures * val)5978 vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
5979 {
5980     /* skip val->{sType,pNext} */
5981     vn_encode_VkBool32(enc, &val->robustImageAccess);
5982 }
5983 
5984 static inline void
vn_encode_VkPhysicalDeviceImageRobustnessFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceImageRobustnessFeatures * val)5985 vn_encode_VkPhysicalDeviceImageRobustnessFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
5986 {
5987     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES);
5988     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES });
5989     vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(enc, val->pNext);
5990     vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, val);
5991 }
5992 
5993 static inline void *
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_temp(struct vn_cs_decoder * dec)5994 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_temp(struct vn_cs_decoder *dec)
5995 {
5996     /* no known/supported struct */
5997     if (vn_decode_simple_pointer(dec))
5998         vn_cs_decoder_set_fatal(dec);
5999     return NULL;
6000 }
6001 
6002 static inline void
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageRobustnessFeatures * val)6003 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
6004 {
6005     /* skip val->{sType,pNext} */
6006     vn_decode_VkBool32(dec, &val->robustImageAccess);
6007 }
6008 
6009 static inline void
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageRobustnessFeatures * val)6010 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
6011 {
6012     VkStructureType stype;
6013     vn_decode_VkStructureType(dec, &stype);
6014     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)
6015         vn_cs_decoder_set_fatal(dec);
6016 
6017     val->sType = stype;
6018     val->pNext = vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_temp(dec);
6019     vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, val);
6020 }
6021 
6022 static inline void *
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)6023 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
6024 {
6025     /* no known/supported struct */
6026     if (vn_decode_simple_pointer(dec))
6027         vn_cs_decoder_set_fatal(dec);
6028     return NULL;
6029 }
6030 
6031 static inline void
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageRobustnessFeatures * val)6032 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
6033 {
6034     /* skip val->{sType,pNext} */
6035     /* skip val->robustImageAccess */
6036 }
6037 
6038 static inline void
vn_decode_VkPhysicalDeviceImageRobustnessFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageRobustnessFeatures * val)6039 vn_decode_VkPhysicalDeviceImageRobustnessFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
6040 {
6041     VkStructureType stype;
6042     vn_decode_VkStructureType(dec, &stype);
6043     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)
6044         vn_cs_decoder_set_fatal(dec);
6045 
6046     val->sType = stype;
6047     val->pNext = vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial_temp(dec);
6048     vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(dec, val);
6049 }
6050 
6051 static inline void
vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self(VkPhysicalDeviceImageRobustnessFeatures * val)6052 vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self(VkPhysicalDeviceImageRobustnessFeatures *val)
6053 {
6054     /* skip val->sType */
6055     /* skip val->pNext */
6056     /* skip val->robustImageAccess */
6057 }
6058 
6059 static inline void
vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle(VkPhysicalDeviceImageRobustnessFeatures * val)6060 vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle(VkPhysicalDeviceImageRobustnessFeatures *val)
6061 {
6062     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6063 
6064     do {
6065         switch ((int32_t)pnext->sType) {
6066         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
6067             vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext);
6068             break;
6069         default:
6070             /* ignore unknown/unsupported struct */
6071             break;
6072         }
6073         pnext = pnext->pNext;
6074     } while (pnext);
6075 }
6076 
6077 /* struct VkPhysicalDevice4444FormatsFeaturesEXT chain */
6078 
6079 static inline void
vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6080 vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6081 {
6082     /* no known/supported struct */
6083     vn_encode_simple_pointer(enc, NULL);
6084 }
6085 
6086 static inline void
vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDevice4444FormatsFeaturesEXT * val)6087 vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
6088 {
6089     /* skip val->{sType,pNext} */
6090     vn_encode_VkBool32(enc, &val->formatA4R4G4B4);
6091     vn_encode_VkBool32(enc, &val->formatA4B4G4R4);
6092 }
6093 
6094 static inline void
vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDevice4444FormatsFeaturesEXT * val)6095 vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
6096 {
6097     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT);
6098     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT });
6099     vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(enc, val->pNext);
6100     vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, val);
6101 }
6102 
6103 static inline void *
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6104 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6105 {
6106     /* no known/supported struct */
6107     if (vn_decode_simple_pointer(dec))
6108         vn_cs_decoder_set_fatal(dec);
6109     return NULL;
6110 }
6111 
6112 static inline void
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevice4444FormatsFeaturesEXT * val)6113 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
6114 {
6115     /* skip val->{sType,pNext} */
6116     vn_decode_VkBool32(dec, &val->formatA4R4G4B4);
6117     vn_decode_VkBool32(dec, &val->formatA4B4G4R4);
6118 }
6119 
6120 static inline void
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDevice4444FormatsFeaturesEXT * val)6121 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
6122 {
6123     VkStructureType stype;
6124     vn_decode_VkStructureType(dec, &stype);
6125     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT)
6126         vn_cs_decoder_set_fatal(dec);
6127 
6128     val->sType = stype;
6129     val->pNext = vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_temp(dec);
6130     vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, val);
6131 }
6132 
6133 static inline void *
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6134 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6135 {
6136     /* no known/supported struct */
6137     if (vn_decode_simple_pointer(dec))
6138         vn_cs_decoder_set_fatal(dec);
6139     return NULL;
6140 }
6141 
6142 static inline void
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice4444FormatsFeaturesEXT * val)6143 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
6144 {
6145     /* skip val->{sType,pNext} */
6146     /* skip val->formatA4R4G4B4 */
6147     /* skip val->formatA4B4G4R4 */
6148 }
6149 
6150 static inline void
vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevice4444FormatsFeaturesEXT * val)6151 vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
6152 {
6153     VkStructureType stype;
6154     vn_decode_VkStructureType(dec, &stype);
6155     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT)
6156         vn_cs_decoder_set_fatal(dec);
6157 
6158     val->sType = stype;
6159     val->pNext = vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial_temp(dec);
6160     vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(dec, val);
6161 }
6162 
6163 static inline void
vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self(VkPhysicalDevice4444FormatsFeaturesEXT * val)6164 vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self(VkPhysicalDevice4444FormatsFeaturesEXT *val)
6165 {
6166     /* skip val->sType */
6167     /* skip val->pNext */
6168     /* skip val->formatA4R4G4B4 */
6169     /* skip val->formatA4B4G4R4 */
6170 }
6171 
6172 static inline void
vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle(VkPhysicalDevice4444FormatsFeaturesEXT * val)6173 vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle(VkPhysicalDevice4444FormatsFeaturesEXT *val)
6174 {
6175     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6176 
6177     do {
6178         switch ((int32_t)pnext->sType) {
6179         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
6180             vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
6181             break;
6182         default:
6183             /* ignore unknown/unsupported struct */
6184             break;
6185         }
6186         pnext = pnext->pNext;
6187     } while (pnext);
6188 }
6189 
6190 /* struct VkPhysicalDeviceShaderTerminateInvocationFeatures chain */
6191 
6192 static inline void
vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(struct vn_cs_encoder * enc,const void * val)6193 vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
6194 {
6195     /* no known/supported struct */
6196     vn_encode_simple_pointer(enc, NULL);
6197 }
6198 
6199 static inline void
vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6200 vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6201 {
6202     /* skip val->{sType,pNext} */
6203     vn_encode_VkBool32(enc, &val->shaderTerminateInvocation);
6204 }
6205 
6206 static inline void
vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6207 vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6208 {
6209     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES);
6210     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES });
6211     vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(enc, val->pNext);
6212     vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, val);
6213 }
6214 
6215 static inline void *
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_temp(struct vn_cs_decoder * dec)6216 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_temp(struct vn_cs_decoder *dec)
6217 {
6218     /* no known/supported struct */
6219     if (vn_decode_simple_pointer(dec))
6220         vn_cs_decoder_set_fatal(dec);
6221     return NULL;
6222 }
6223 
6224 static inline void
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6225 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6226 {
6227     /* skip val->{sType,pNext} */
6228     vn_decode_VkBool32(dec, &val->shaderTerminateInvocation);
6229 }
6230 
6231 static inline void
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6232 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6233 {
6234     VkStructureType stype;
6235     vn_decode_VkStructureType(dec, &stype);
6236     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)
6237         vn_cs_decoder_set_fatal(dec);
6238 
6239     val->sType = stype;
6240     val->pNext = vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_temp(dec);
6241     vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, val);
6242 }
6243 
6244 static inline void *
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)6245 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
6246 {
6247     /* no known/supported struct */
6248     if (vn_decode_simple_pointer(dec))
6249         vn_cs_decoder_set_fatal(dec);
6250     return NULL;
6251 }
6252 
6253 static inline void
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6254 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6255 {
6256     /* skip val->{sType,pNext} */
6257     /* skip val->shaderTerminateInvocation */
6258 }
6259 
6260 static inline void
vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6261 vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6262 {
6263     VkStructureType stype;
6264     vn_decode_VkStructureType(dec, &stype);
6265     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)
6266         vn_cs_decoder_set_fatal(dec);
6267 
6268     val->sType = stype;
6269     val->pNext = vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial_temp(dec);
6270     vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(dec, val);
6271 }
6272 
6273 static inline void
vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self(VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6274 vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self(VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6275 {
6276     /* skip val->sType */
6277     /* skip val->pNext */
6278     /* skip val->shaderTerminateInvocation */
6279 }
6280 
6281 static inline void
vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle(VkPhysicalDeviceShaderTerminateInvocationFeatures * val)6282 vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle(VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
6283 {
6284     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6285 
6286     do {
6287         switch ((int32_t)pnext->sType) {
6288         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
6289             vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
6290             break;
6291         default:
6292             /* ignore unknown/unsupported struct */
6293             break;
6294         }
6295         pnext = pnext->pNext;
6296     } while (pnext);
6297 }
6298 
6299 /* struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT chain */
6300 
6301 static inline void
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6302 vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6303 {
6304     /* no known/supported struct */
6305     vn_encode_simple_pointer(enc, NULL);
6306 }
6307 
6308 static inline void
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6309 vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6310 {
6311     /* skip val->{sType,pNext} */
6312     vn_encode_VkBool32(enc, &val->mutableDescriptorType);
6313 }
6314 
6315 static inline void
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6316 vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6317 {
6318     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT);
6319     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT });
6320     vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext(enc, val->pNext);
6321     vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(enc, val);
6322 }
6323 
6324 static inline void *
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6325 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6326 {
6327     /* no known/supported struct */
6328     if (vn_decode_simple_pointer(dec))
6329         vn_cs_decoder_set_fatal(dec);
6330     return NULL;
6331 }
6332 
6333 static inline void
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6334 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6335 {
6336     /* skip val->{sType,pNext} */
6337     vn_decode_VkBool32(dec, &val->mutableDescriptorType);
6338 }
6339 
6340 static inline void
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6341 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6342 {
6343     VkStructureType stype;
6344     vn_decode_VkStructureType(dec, &stype);
6345     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT)
6346         vn_cs_decoder_set_fatal(dec);
6347 
6348     val->sType = stype;
6349     val->pNext = vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_temp(dec);
6350     vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_temp(dec, val);
6351 }
6352 
6353 static inline void *
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6354 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6355 {
6356     /* no known/supported struct */
6357     if (vn_decode_simple_pointer(dec))
6358         vn_cs_decoder_set_fatal(dec);
6359     return NULL;
6360 }
6361 
6362 static inline void
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6363 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6364 {
6365     /* skip val->{sType,pNext} */
6366     /* skip val->mutableDescriptorType */
6367 }
6368 
6369 static inline void
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6370 vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6371 {
6372     VkStructureType stype;
6373     vn_decode_VkStructureType(dec, &stype);
6374     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT)
6375         vn_cs_decoder_set_fatal(dec);
6376 
6377     val->sType = stype;
6378     val->pNext = vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_pnext_partial_temp(dec);
6379     vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial_temp(dec, val);
6380 }
6381 
6382 static inline void
vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle_self(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6383 vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle_self(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6384 {
6385     /* skip val->sType */
6386     /* skip val->pNext */
6387     /* skip val->mutableDescriptorType */
6388 }
6389 
6390 static inline void
vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * val)6391 vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *val)
6392 {
6393     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6394 
6395     do {
6396         switch ((int32_t)pnext->sType) {
6397         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
6398             vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle_self((VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
6399             break;
6400         default:
6401             /* ignore unknown/unsupported struct */
6402             break;
6403         }
6404         pnext = pnext->pNext;
6405     } while (pnext);
6406 }
6407 
6408 /* struct VkPhysicalDeviceDepthClipControlFeaturesEXT chain */
6409 
6410 static inline void
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6411 vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6412 {
6413     /* no known/supported struct */
6414     vn_encode_simple_pointer(enc, NULL);
6415 }
6416 
6417 static inline void
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6418 vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6419 {
6420     /* skip val->{sType,pNext} */
6421     vn_encode_VkBool32(enc, &val->depthClipControl);
6422 }
6423 
6424 static inline void
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6425 vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6426 {
6427     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT);
6428     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT });
6429     vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(enc, val->pNext);
6430     vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(enc, val);
6431 }
6432 
6433 static inline void *
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6434 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6435 {
6436     /* no known/supported struct */
6437     if (vn_decode_simple_pointer(dec))
6438         vn_cs_decoder_set_fatal(dec);
6439     return NULL;
6440 }
6441 
6442 static inline void
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6443 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6444 {
6445     /* skip val->{sType,pNext} */
6446     vn_decode_VkBool32(dec, &val->depthClipControl);
6447 }
6448 
6449 static inline void
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6450 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6451 {
6452     VkStructureType stype;
6453     vn_decode_VkStructureType(dec, &stype);
6454     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT)
6455         vn_cs_decoder_set_fatal(dec);
6456 
6457     val->sType = stype;
6458     val->pNext = vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_temp(dec);
6459     vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_temp(dec, val);
6460 }
6461 
6462 static inline void *
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6463 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6464 {
6465     /* no known/supported struct */
6466     if (vn_decode_simple_pointer(dec))
6467         vn_cs_decoder_set_fatal(dec);
6468     return NULL;
6469 }
6470 
6471 static inline void
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6472 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6473 {
6474     /* skip val->{sType,pNext} */
6475     /* skip val->depthClipControl */
6476 }
6477 
6478 static inline void
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6479 vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6480 {
6481     VkStructureType stype;
6482     vn_decode_VkStructureType(dec, &stype);
6483     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT)
6484         vn_cs_decoder_set_fatal(dec);
6485 
6486     val->sType = stype;
6487     val->pNext = vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial_temp(dec);
6488     vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial_temp(dec, val);
6489 }
6490 
6491 static inline void
vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle_self(VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6492 vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle_self(VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6493 {
6494     /* skip val->sType */
6495     /* skip val->pNext */
6496     /* skip val->depthClipControl */
6497 }
6498 
6499 static inline void
vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle(VkPhysicalDeviceDepthClipControlFeaturesEXT * val)6500 vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle(VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
6501 {
6502     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6503 
6504     do {
6505         switch ((int32_t)pnext->sType) {
6506         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
6507             vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
6508             break;
6509         default:
6510             /* ignore unknown/unsupported struct */
6511             break;
6512         }
6513         pnext = pnext->pNext;
6514     } while (pnext);
6515 }
6516 
6517 /* struct VkPhysicalDeviceSynchronization2Features chain */
6518 
6519 static inline void
vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(struct vn_cs_encoder * enc,const void * val)6520 vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(struct vn_cs_encoder *enc, const void *val)
6521 {
6522     /* no known/supported struct */
6523     vn_encode_simple_pointer(enc, NULL);
6524 }
6525 
6526 static inline void
vn_encode_VkPhysicalDeviceSynchronization2Features_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSynchronization2Features * val)6527 vn_encode_VkPhysicalDeviceSynchronization2Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
6528 {
6529     /* skip val->{sType,pNext} */
6530     vn_encode_VkBool32(enc, &val->synchronization2);
6531 }
6532 
6533 static inline void
vn_encode_VkPhysicalDeviceSynchronization2Features(struct vn_cs_encoder * enc,const VkPhysicalDeviceSynchronization2Features * val)6534 vn_encode_VkPhysicalDeviceSynchronization2Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
6535 {
6536     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES);
6537     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES });
6538     vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(enc, val->pNext);
6539     vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, val);
6540 }
6541 
6542 static inline void *
vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_temp(struct vn_cs_decoder * dec)6543 vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_temp(struct vn_cs_decoder *dec)
6544 {
6545     /* no known/supported struct */
6546     if (vn_decode_simple_pointer(dec))
6547         vn_cs_decoder_set_fatal(dec);
6548     return NULL;
6549 }
6550 
6551 static inline void
vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSynchronization2Features * val)6552 vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
6553 {
6554     /* skip val->{sType,pNext} */
6555     vn_decode_VkBool32(dec, &val->synchronization2);
6556 }
6557 
6558 static inline void
vn_decode_VkPhysicalDeviceSynchronization2Features_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSynchronization2Features * val)6559 vn_decode_VkPhysicalDeviceSynchronization2Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
6560 {
6561     VkStructureType stype;
6562     vn_decode_VkStructureType(dec, &stype);
6563     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)
6564         vn_cs_decoder_set_fatal(dec);
6565 
6566     val->sType = stype;
6567     val->pNext = vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_temp(dec);
6568     vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, val);
6569 }
6570 
6571 static inline void *
vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_partial_temp(struct vn_cs_decoder * dec)6572 vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_partial_temp(struct vn_cs_decoder *dec)
6573 {
6574     /* no known/supported struct */
6575     if (vn_decode_simple_pointer(dec))
6576         vn_cs_decoder_set_fatal(dec);
6577     return NULL;
6578 }
6579 
6580 static inline void
vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSynchronization2Features * val)6581 vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
6582 {
6583     /* skip val->{sType,pNext} */
6584     /* skip val->synchronization2 */
6585 }
6586 
6587 static inline void
vn_decode_VkPhysicalDeviceSynchronization2Features_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSynchronization2Features * val)6588 vn_decode_VkPhysicalDeviceSynchronization2Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
6589 {
6590     VkStructureType stype;
6591     vn_decode_VkStructureType(dec, &stype);
6592     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)
6593         vn_cs_decoder_set_fatal(dec);
6594 
6595     val->sType = stype;
6596     val->pNext = vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_partial_temp(dec);
6597     vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(dec, val);
6598 }
6599 
6600 static inline void
vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self(VkPhysicalDeviceSynchronization2Features * val)6601 vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self(VkPhysicalDeviceSynchronization2Features *val)
6602 {
6603     /* skip val->sType */
6604     /* skip val->pNext */
6605     /* skip val->synchronization2 */
6606 }
6607 
6608 static inline void
vn_replace_VkPhysicalDeviceSynchronization2Features_handle(VkPhysicalDeviceSynchronization2Features * val)6609 vn_replace_VkPhysicalDeviceSynchronization2Features_handle(VkPhysicalDeviceSynchronization2Features *val)
6610 {
6611     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6612 
6613     do {
6614         switch ((int32_t)pnext->sType) {
6615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
6616             vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext);
6617             break;
6618         default:
6619             /* ignore unknown/unsupported struct */
6620             break;
6621         }
6622         pnext = pnext->pNext;
6623     } while (pnext);
6624 }
6625 
6626 /* struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT chain */
6627 
6628 static inline void
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6629 vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6630 {
6631     /* no known/supported struct */
6632     vn_encode_simple_pointer(enc, NULL);
6633 }
6634 
6635 static inline void
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6636 vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6637 {
6638     /* skip val->{sType,pNext} */
6639     vn_encode_VkBool32(enc, &val->primitivesGeneratedQuery);
6640     vn_encode_VkBool32(enc, &val->primitivesGeneratedQueryWithRasterizerDiscard);
6641     vn_encode_VkBool32(enc, &val->primitivesGeneratedQueryWithNonZeroStreams);
6642 }
6643 
6644 static inline void
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6645 vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6646 {
6647     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT);
6648     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT });
6649     vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(enc, val->pNext);
6650     vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(enc, val);
6651 }
6652 
6653 static inline void *
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6654 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6655 {
6656     /* no known/supported struct */
6657     if (vn_decode_simple_pointer(dec))
6658         vn_cs_decoder_set_fatal(dec);
6659     return NULL;
6660 }
6661 
6662 static inline void
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6663 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6664 {
6665     /* skip val->{sType,pNext} */
6666     vn_decode_VkBool32(dec, &val->primitivesGeneratedQuery);
6667     vn_decode_VkBool32(dec, &val->primitivesGeneratedQueryWithRasterizerDiscard);
6668     vn_decode_VkBool32(dec, &val->primitivesGeneratedQueryWithNonZeroStreams);
6669 }
6670 
6671 static inline void
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6672 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6673 {
6674     VkStructureType stype;
6675     vn_decode_VkStructureType(dec, &stype);
6676     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT)
6677         vn_cs_decoder_set_fatal(dec);
6678 
6679     val->sType = stype;
6680     val->pNext = vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_temp(dec);
6681     vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_temp(dec, val);
6682 }
6683 
6684 static inline void *
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6685 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6686 {
6687     /* no known/supported struct */
6688     if (vn_decode_simple_pointer(dec))
6689         vn_cs_decoder_set_fatal(dec);
6690     return NULL;
6691 }
6692 
6693 static inline void
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6694 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6695 {
6696     /* skip val->{sType,pNext} */
6697     /* skip val->primitivesGeneratedQuery */
6698     /* skip val->primitivesGeneratedQueryWithRasterizerDiscard */
6699     /* skip val->primitivesGeneratedQueryWithNonZeroStreams */
6700 }
6701 
6702 static inline void
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6703 vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6704 {
6705     VkStructureType stype;
6706     vn_decode_VkStructureType(dec, &stype);
6707     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT)
6708         vn_cs_decoder_set_fatal(dec);
6709 
6710     val->sType = stype;
6711     val->pNext = vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial_temp(dec);
6712     vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial_temp(dec, val);
6713 }
6714 
6715 static inline void
vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle_self(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6716 vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle_self(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6717 {
6718     /* skip val->sType */
6719     /* skip val->pNext */
6720     /* skip val->primitivesGeneratedQuery */
6721     /* skip val->primitivesGeneratedQueryWithRasterizerDiscard */
6722     /* skip val->primitivesGeneratedQueryWithNonZeroStreams */
6723 }
6724 
6725 static inline void
vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * val)6726 vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
6727 {
6728     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6729 
6730     do {
6731         switch ((int32_t)pnext->sType) {
6732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
6733             vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle_self((VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
6734             break;
6735         default:
6736             /* ignore unknown/unsupported struct */
6737             break;
6738         }
6739         pnext = pnext->pNext;
6740     } while (pnext);
6741 }
6742 
6743 /* struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT chain */
6744 
6745 static inline void
vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6746 vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6747 {
6748     /* no known/supported struct */
6749     vn_encode_simple_pointer(enc, NULL);
6750 }
6751 
6752 static inline void
vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6753 vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6754 {
6755     /* skip val->{sType,pNext} */
6756     vn_encode_VkBool32(enc, &val->ycbcr2plane444Formats);
6757 }
6758 
6759 static inline void
vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6760 vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6761 {
6762     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT);
6763     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT });
6764     vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(enc, val->pNext);
6765     vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, val);
6766 }
6767 
6768 static inline void *
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6769 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6770 {
6771     /* no known/supported struct */
6772     if (vn_decode_simple_pointer(dec))
6773         vn_cs_decoder_set_fatal(dec);
6774     return NULL;
6775 }
6776 
6777 static inline void
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6778 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6779 {
6780     /* skip val->{sType,pNext} */
6781     vn_decode_VkBool32(dec, &val->ycbcr2plane444Formats);
6782 }
6783 
6784 static inline void
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6785 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6786 {
6787     VkStructureType stype;
6788     vn_decode_VkStructureType(dec, &stype);
6789     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)
6790         vn_cs_decoder_set_fatal(dec);
6791 
6792     val->sType = stype;
6793     val->pNext = vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_temp(dec);
6794     vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, val);
6795 }
6796 
6797 static inline void *
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6798 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6799 {
6800     /* no known/supported struct */
6801     if (vn_decode_simple_pointer(dec))
6802         vn_cs_decoder_set_fatal(dec);
6803     return NULL;
6804 }
6805 
6806 static inline void
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6807 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6808 {
6809     /* skip val->{sType,pNext} */
6810     /* skip val->ycbcr2plane444Formats */
6811 }
6812 
6813 static inline void
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6814 vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6815 {
6816     VkStructureType stype;
6817     vn_decode_VkStructureType(dec, &stype);
6818     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)
6819         vn_cs_decoder_set_fatal(dec);
6820 
6821     val->sType = stype;
6822     val->pNext = vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial_temp(dec);
6823     vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(dec, val);
6824 }
6825 
6826 static inline void
vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6827 vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6828 {
6829     /* skip val->sType */
6830     /* skip val->pNext */
6831     /* skip val->ycbcr2plane444Formats */
6832 }
6833 
6834 static inline void
vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * val)6835 vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
6836 {
6837     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6838 
6839     do {
6840         switch ((int32_t)pnext->sType) {
6841         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
6842             vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
6843             break;
6844         default:
6845             /* ignore unknown/unsupported struct */
6846             break;
6847         }
6848         pnext = pnext->pNext;
6849     } while (pnext);
6850 }
6851 
6852 /* struct VkPhysicalDeviceProvokingVertexFeaturesEXT chain */
6853 
6854 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)6855 vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6856 {
6857     /* no known/supported struct */
6858     vn_encode_simple_pointer(enc, NULL);
6859 }
6860 
6861 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6862 vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6863 {
6864     /* skip val->{sType,pNext} */
6865     vn_encode_VkBool32(enc, &val->provokingVertexLast);
6866     vn_encode_VkBool32(enc, &val->transformFeedbackPreservesProvokingVertex);
6867 }
6868 
6869 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6870 vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6871 {
6872     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT);
6873     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT });
6874     vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(enc, val->pNext);
6875     vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, val);
6876 }
6877 
6878 static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)6879 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
6880 {
6881     /* no known/supported struct */
6882     if (vn_decode_simple_pointer(dec))
6883         vn_cs_decoder_set_fatal(dec);
6884     return NULL;
6885 }
6886 
6887 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6888 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6889 {
6890     /* skip val->{sType,pNext} */
6891     vn_decode_VkBool32(dec, &val->provokingVertexLast);
6892     vn_decode_VkBool32(dec, &val->transformFeedbackPreservesProvokingVertex);
6893 }
6894 
6895 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6896 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6897 {
6898     VkStructureType stype;
6899     vn_decode_VkStructureType(dec, &stype);
6900     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
6901         vn_cs_decoder_set_fatal(dec);
6902 
6903     val->sType = stype;
6904     val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_temp(dec);
6905     vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, val);
6906 }
6907 
6908 static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)6909 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
6910 {
6911     /* no known/supported struct */
6912     if (vn_decode_simple_pointer(dec))
6913         vn_cs_decoder_set_fatal(dec);
6914     return NULL;
6915 }
6916 
6917 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6918 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6919 {
6920     /* skip val->{sType,pNext} */
6921     /* skip val->provokingVertexLast */
6922     /* skip val->transformFeedbackPreservesProvokingVertex */
6923 }
6924 
6925 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6926 vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6927 {
6928     VkStructureType stype;
6929     vn_decode_VkStructureType(dec, &stype);
6930     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
6931         vn_cs_decoder_set_fatal(dec);
6932 
6933     val->sType = stype;
6934     val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial_temp(dec);
6935     vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(dec, val);
6936 }
6937 
6938 static inline void
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self(VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6939 vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self(VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6940 {
6941     /* skip val->sType */
6942     /* skip val->pNext */
6943     /* skip val->provokingVertexLast */
6944     /* skip val->transformFeedbackPreservesProvokingVertex */
6945 }
6946 
6947 static inline void
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle(VkPhysicalDeviceProvokingVertexFeaturesEXT * val)6948 vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle(VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
6949 {
6950     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
6951 
6952     do {
6953         switch ((int32_t)pnext->sType) {
6954         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
6955             vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
6956             break;
6957         default:
6958             /* ignore unknown/unsupported struct */
6959             break;
6960         }
6961         pnext = pnext->pNext;
6962     } while (pnext);
6963 }
6964 
6965 /* struct VkPhysicalDeviceShaderIntegerDotProductFeatures chain */
6966 
6967 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(struct vn_cs_encoder * enc,const void * val)6968 vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
6969 {
6970     /* no known/supported struct */
6971     vn_encode_simple_pointer(enc, NULL);
6972 }
6973 
6974 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderIntegerDotProductFeatures * val)6975 vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
6976 {
6977     /* skip val->{sType,pNext} */
6978     vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct);
6979 }
6980 
6981 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderIntegerDotProductFeatures * val)6982 vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
6983 {
6984     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES);
6985     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES });
6986     vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(enc, val->pNext);
6987     vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, val);
6988 }
6989 
6990 static inline void *
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_temp(struct vn_cs_decoder * dec)6991 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_temp(struct vn_cs_decoder *dec)
6992 {
6993     /* no known/supported struct */
6994     if (vn_decode_simple_pointer(dec))
6995         vn_cs_decoder_set_fatal(dec);
6996     return NULL;
6997 }
6998 
6999 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7000 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7001 {
7002     /* skip val->{sType,pNext} */
7003     vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct);
7004 }
7005 
7006 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7007 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7008 {
7009     VkStructureType stype;
7010     vn_decode_VkStructureType(dec, &stype);
7011     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)
7012         vn_cs_decoder_set_fatal(dec);
7013 
7014     val->sType = stype;
7015     val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_temp(dec);
7016     vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, val);
7017 }
7018 
7019 static inline void *
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)7020 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
7021 {
7022     /* no known/supported struct */
7023     if (vn_decode_simple_pointer(dec))
7024         vn_cs_decoder_set_fatal(dec);
7025     return NULL;
7026 }
7027 
7028 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7029 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7030 {
7031     /* skip val->{sType,pNext} */
7032     /* skip val->shaderIntegerDotProduct */
7033 }
7034 
7035 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7036 vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7037 {
7038     VkStructureType stype;
7039     vn_decode_VkStructureType(dec, &stype);
7040     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)
7041         vn_cs_decoder_set_fatal(dec);
7042 
7043     val->sType = stype;
7044     val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial_temp(dec);
7045     vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(dec, val);
7046 }
7047 
7048 static inline void
vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self(VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7049 vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self(VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7050 {
7051     /* skip val->sType */
7052     /* skip val->pNext */
7053     /* skip val->shaderIntegerDotProduct */
7054 }
7055 
7056 static inline void
vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle(VkPhysicalDeviceShaderIntegerDotProductFeatures * val)7057 vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle(VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
7058 {
7059     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
7060 
7061     do {
7062         switch ((int32_t)pnext->sType) {
7063         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
7064             vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
7065             break;
7066         default:
7067             /* ignore unknown/unsupported struct */
7068             break;
7069         }
7070         pnext = pnext->pNext;
7071     } while (pnext);
7072 }
7073 
7074 /* struct VkPhysicalDeviceDynamicRenderingFeatures chain */
7075 
7076 static inline void
vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(struct vn_cs_encoder * enc,const void * val)7077 vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
7078 {
7079     /* no known/supported struct */
7080     vn_encode_simple_pointer(enc, NULL);
7081 }
7082 
7083 static inline void
vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDynamicRenderingFeatures * val)7084 vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
7085 {
7086     /* skip val->{sType,pNext} */
7087     vn_encode_VkBool32(enc, &val->dynamicRendering);
7088 }
7089 
7090 static inline void
vn_encode_VkPhysicalDeviceDynamicRenderingFeatures(struct vn_cs_encoder * enc,const VkPhysicalDeviceDynamicRenderingFeatures * val)7091 vn_encode_VkPhysicalDeviceDynamicRenderingFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
7092 {
7093     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES);
7094     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES });
7095     vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(enc, val->pNext);
7096     vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, val);
7097 }
7098 
7099 static inline void *
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_temp(struct vn_cs_decoder * dec)7100 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_temp(struct vn_cs_decoder *dec)
7101 {
7102     /* no known/supported struct */
7103     if (vn_decode_simple_pointer(dec))
7104         vn_cs_decoder_set_fatal(dec);
7105     return NULL;
7106 }
7107 
7108 static inline void
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDynamicRenderingFeatures * val)7109 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
7110 {
7111     /* skip val->{sType,pNext} */
7112     vn_decode_VkBool32(dec, &val->dynamicRendering);
7113 }
7114 
7115 static inline void
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDynamicRenderingFeatures * val)7116 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
7117 {
7118     VkStructureType stype;
7119     vn_decode_VkStructureType(dec, &stype);
7120     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)
7121         vn_cs_decoder_set_fatal(dec);
7122 
7123     val->sType = stype;
7124     val->pNext = vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_temp(dec);
7125     vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, val);
7126 }
7127 
7128 static inline void *
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial_temp(struct vn_cs_decoder * dec)7129 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial_temp(struct vn_cs_decoder *dec)
7130 {
7131     /* no known/supported struct */
7132     if (vn_decode_simple_pointer(dec))
7133         vn_cs_decoder_set_fatal(dec);
7134     return NULL;
7135 }
7136 
7137 static inline void
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDynamicRenderingFeatures * val)7138 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
7139 {
7140     /* skip val->{sType,pNext} */
7141     /* skip val->dynamicRendering */
7142 }
7143 
7144 static inline void
vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDynamicRenderingFeatures * val)7145 vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
7146 {
7147     VkStructureType stype;
7148     vn_decode_VkStructureType(dec, &stype);
7149     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)
7150         vn_cs_decoder_set_fatal(dec);
7151 
7152     val->sType = stype;
7153     val->pNext = vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial_temp(dec);
7154     vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(dec, val);
7155 }
7156 
7157 static inline void
vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self(VkPhysicalDeviceDynamicRenderingFeatures * val)7158 vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self(VkPhysicalDeviceDynamicRenderingFeatures *val)
7159 {
7160     /* skip val->sType */
7161     /* skip val->pNext */
7162     /* skip val->dynamicRendering */
7163 }
7164 
7165 static inline void
vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle(VkPhysicalDeviceDynamicRenderingFeatures * val)7166 vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle(VkPhysicalDeviceDynamicRenderingFeatures *val)
7167 {
7168     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
7169 
7170     do {
7171         switch ((int32_t)pnext->sType) {
7172         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
7173             vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
7174             break;
7175         default:
7176             /* ignore unknown/unsupported struct */
7177             break;
7178         }
7179         pnext = pnext->pNext;
7180     } while (pnext);
7181 }
7182 
7183 /* struct VkPhysicalDeviceImageViewMinLodFeaturesEXT chain */
7184 
7185 static inline void
vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(struct vn_cs_encoder * enc,const void * val)7186 vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
7187 {
7188     /* no known/supported struct */
7189     vn_encode_simple_pointer(enc, NULL);
7190 }
7191 
7192 static inline void
vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7193 vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7194 {
7195     /* skip val->{sType,pNext} */
7196     vn_encode_VkBool32(enc, &val->minLod);
7197 }
7198 
7199 static inline void
vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7200 vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7201 {
7202     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT);
7203     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT });
7204     vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(enc, val->pNext);
7205     vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(enc, val);
7206 }
7207 
7208 static inline void *
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_temp(struct vn_cs_decoder * dec)7209 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
7210 {
7211     /* no known/supported struct */
7212     if (vn_decode_simple_pointer(dec))
7213         vn_cs_decoder_set_fatal(dec);
7214     return NULL;
7215 }
7216 
7217 static inline void
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7218 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7219 {
7220     /* skip val->{sType,pNext} */
7221     vn_decode_VkBool32(dec, &val->minLod);
7222 }
7223 
7224 static inline void
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7225 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7226 {
7227     VkStructureType stype;
7228     vn_decode_VkStructureType(dec, &stype);
7229     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT)
7230         vn_cs_decoder_set_fatal(dec);
7231 
7232     val->sType = stype;
7233     val->pNext = vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_temp(dec);
7234     vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_temp(dec, val);
7235 }
7236 
7237 static inline void *
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)7238 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
7239 {
7240     /* no known/supported struct */
7241     if (vn_decode_simple_pointer(dec))
7242         vn_cs_decoder_set_fatal(dec);
7243     return NULL;
7244 }
7245 
7246 static inline void
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7247 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7248 {
7249     /* skip val->{sType,pNext} */
7250     /* skip val->minLod */
7251 }
7252 
7253 static inline void
vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7254 vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7255 {
7256     VkStructureType stype;
7257     vn_decode_VkStructureType(dec, &stype);
7258     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT)
7259         vn_cs_decoder_set_fatal(dec);
7260 
7261     val->sType = stype;
7262     val->pNext = vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial_temp(dec);
7263     vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial_temp(dec, val);
7264 }
7265 
7266 static inline void
vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle_self(VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7267 vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle_self(VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7268 {
7269     /* skip val->sType */
7270     /* skip val->pNext */
7271     /* skip val->minLod */
7272 }
7273 
7274 static inline void
vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle(VkPhysicalDeviceImageViewMinLodFeaturesEXT * val)7275 vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle(VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
7276 {
7277     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
7278 
7279     do {
7280         switch ((int32_t)pnext->sType) {
7281         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
7282             vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle_self((VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
7283             break;
7284         default:
7285             /* ignore unknown/unsupported struct */
7286             break;
7287         }
7288         pnext = pnext->pNext;
7289     } while (pnext);
7290 }
7291 
7292 /* struct VkPhysicalDeviceFeatures2 chain */
7293 
7294 static inline void
vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder * enc,const void * val)7295 vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void *val)
7296 {
7297     const VkBaseInStructure *pnext = val;
7298 
7299     while (pnext) {
7300         switch ((int32_t)pnext->sType) {
7301         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
7302             vn_encode_simple_pointer(enc, pnext);
7303             vn_encode_VkStructureType(enc, &pnext->sType);
7304             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7305             vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, (const VkPhysicalDevicePrivateDataFeatures *)pnext);
7306             return;
7307         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
7308             vn_encode_simple_pointer(enc, pnext);
7309             vn_encode_VkStructureType(enc, &pnext->sType);
7310             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7311             vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(enc, (const VkPhysicalDeviceVariablePointersFeatures *)pnext);
7312             return;
7313         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
7314             vn_encode_simple_pointer(enc, pnext);
7315             vn_encode_VkStructureType(enc, &pnext->sType);
7316             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7317             vn_encode_VkPhysicalDeviceMultiviewFeatures_self(enc, (const VkPhysicalDeviceMultiviewFeatures *)pnext);
7318             return;
7319         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
7320             vn_encode_simple_pointer(enc, pnext);
7321             vn_encode_VkStructureType(enc, &pnext->sType);
7322             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7323             vn_encode_VkPhysicalDevice16BitStorageFeatures_self(enc, (const VkPhysicalDevice16BitStorageFeatures *)pnext);
7324             return;
7325         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
7326             vn_encode_simple_pointer(enc, pnext);
7327             vn_encode_VkStructureType(enc, &pnext->sType);
7328             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7329             vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(enc, (const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
7330             return;
7331         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
7332             vn_encode_simple_pointer(enc, pnext);
7333             vn_encode_VkStructureType(enc, &pnext->sType);
7334             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7335             vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(enc, (const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
7336             return;
7337         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
7338             vn_encode_simple_pointer(enc, pnext);
7339             vn_encode_VkStructureType(enc, &pnext->sType);
7340             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7341             vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, (const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
7342             return;
7343         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
7344             vn_encode_simple_pointer(enc, pnext);
7345             vn_encode_VkStructureType(enc, &pnext->sType);
7346             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7347             vn_encode_VkPhysicalDeviceMultiDrawFeaturesEXT_self(enc, (const VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
7348             return;
7349         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
7350             vn_encode_simple_pointer(enc, pnext);
7351             vn_encode_VkStructureType(enc, &pnext->sType);
7352             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7353             vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, (const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
7354             return;
7355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
7356             vn_encode_simple_pointer(enc, pnext);
7357             vn_encode_VkStructureType(enc, &pnext->sType);
7358             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7359             vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, (const VkPhysicalDeviceMaintenance4Features *)pnext);
7360             return;
7361         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
7362             vn_encode_simple_pointer(enc, pnext);
7363             vn_encode_VkStructureType(enc, &pnext->sType);
7364             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7365             vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, (const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
7366             return;
7367         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
7368             vn_encode_simple_pointer(enc, pnext);
7369             vn_encode_VkStructureType(enc, &pnext->sType);
7370             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7371             vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, (const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
7372             return;
7373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
7374             vn_encode_simple_pointer(enc, pnext);
7375             vn_encode_VkStructureType(enc, &pnext->sType);
7376             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7377             vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, (const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
7378             return;
7379         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
7380             vn_encode_simple_pointer(enc, pnext);
7381             vn_encode_VkStructureType(enc, &pnext->sType);
7382             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7383             vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(enc, (const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
7384             return;
7385         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
7386             vn_encode_simple_pointer(enc, pnext);
7387             vn_encode_VkStructureType(enc, &pnext->sType);
7388             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7389             vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(enc, (const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
7390             return;
7391         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
7392             vn_encode_simple_pointer(enc, pnext);
7393             vn_encode_VkStructureType(enc, &pnext->sType);
7394             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7395             vn_encode_VkPhysicalDevice8BitStorageFeatures_self(enc, (const VkPhysicalDevice8BitStorageFeatures *)pnext);
7396             return;
7397         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
7398             vn_encode_simple_pointer(enc, pnext);
7399             vn_encode_VkStructureType(enc, &pnext->sType);
7400             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7401             vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(enc, (const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
7402             return;
7403         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
7404             vn_encode_simple_pointer(enc, pnext);
7405             vn_encode_VkStructureType(enc, &pnext->sType);
7406             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7407             vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(enc, (const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
7408             return;
7409         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
7410             vn_encode_simple_pointer(enc, pnext);
7411             vn_encode_VkStructureType(enc, &pnext->sType);
7412             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7413             vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(enc, (const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
7414             return;
7415         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
7416             vn_encode_simple_pointer(enc, pnext);
7417             vn_encode_VkStructureType(enc, &pnext->sType);
7418             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7419             vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(enc, (const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
7420             return;
7421         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
7422             vn_encode_simple_pointer(enc, pnext);
7423             vn_encode_VkStructureType(enc, &pnext->sType);
7424             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7425             vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
7426             return;
7427         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
7428             vn_encode_simple_pointer(enc, pnext);
7429             vn_encode_VkStructureType(enc, &pnext->sType);
7430             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7431             vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(enc, (const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
7432             return;
7433         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
7434             vn_encode_simple_pointer(enc, pnext);
7435             vn_encode_VkStructureType(enc, &pnext->sType);
7436             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7437             vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(enc, (const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
7438             return;
7439         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
7440             vn_encode_simple_pointer(enc, pnext);
7441             vn_encode_VkStructureType(enc, &pnext->sType);
7442             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7443             vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
7444             return;
7445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
7446             vn_encode_simple_pointer(enc, pnext);
7447             vn_encode_VkStructureType(enc, &pnext->sType);
7448             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7449             vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(enc, (const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
7450             return;
7451         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
7452             vn_encode_simple_pointer(enc, pnext);
7453             vn_encode_VkStructureType(enc, &pnext->sType);
7454             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7455             vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, (const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
7456             return;
7457         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
7458             vn_encode_simple_pointer(enc, pnext);
7459             vn_encode_VkStructureType(enc, &pnext->sType);
7460             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7461             vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
7462             return;
7463         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
7464             vn_encode_simple_pointer(enc, pnext);
7465             vn_encode_VkStructureType(enc, &pnext->sType);
7466             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7467             vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(enc, (const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
7468             return;
7469         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
7470             vn_encode_simple_pointer(enc, pnext);
7471             vn_encode_VkStructureType(enc, &pnext->sType);
7472             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7473             vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
7474             return;
7475         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
7476             vn_encode_simple_pointer(enc, pnext);
7477             vn_encode_VkStructureType(enc, &pnext->sType);
7478             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7479             vn_encode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self(enc, (const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
7480             return;
7481         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
7482             vn_encode_simple_pointer(enc, pnext);
7483             vn_encode_VkStructureType(enc, &pnext->sType);
7484             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7485             vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
7486             return;
7487         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
7488             vn_encode_simple_pointer(enc, pnext);
7489             vn_encode_VkStructureType(enc, &pnext->sType);
7490             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7491             vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
7492             return;
7493         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
7494             vn_encode_simple_pointer(enc, pnext);
7495             vn_encode_VkStructureType(enc, &pnext->sType);
7496             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7497             vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
7498             return;
7499         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
7500             vn_encode_simple_pointer(enc, pnext);
7501             vn_encode_VkStructureType(enc, &pnext->sType);
7502             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7503             vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
7504             return;
7505         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
7506             vn_encode_simple_pointer(enc, pnext);
7507             vn_encode_VkStructureType(enc, &pnext->sType);
7508             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7509             vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, (const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
7510             return;
7511         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
7512             vn_encode_simple_pointer(enc, pnext);
7513             vn_encode_VkStructureType(enc, &pnext->sType);
7514             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7515             vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, (const VkPhysicalDeviceVulkan11Features *)pnext);
7516             return;
7517         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
7518             vn_encode_simple_pointer(enc, pnext);
7519             vn_encode_VkStructureType(enc, &pnext->sType);
7520             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7521             vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, (const VkPhysicalDeviceVulkan12Features *)pnext);
7522             return;
7523         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
7524             vn_encode_simple_pointer(enc, pnext);
7525             vn_encode_VkStructureType(enc, &pnext->sType);
7526             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7527             vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext);
7528             return;
7529         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
7530             vn_encode_simple_pointer(enc, pnext);
7531             vn_encode_VkStructureType(enc, &pnext->sType);
7532             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7533             vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
7534             return;
7535         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
7536             vn_encode_simple_pointer(enc, pnext);
7537             vn_encode_VkStructureType(enc, &pnext->sType);
7538             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7539             vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
7540             return;
7541         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
7542             vn_encode_simple_pointer(enc, pnext);
7543             vn_encode_VkStructureType(enc, &pnext->sType);
7544             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7545             vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
7546             return;
7547         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
7548             vn_encode_simple_pointer(enc, pnext);
7549             vn_encode_VkStructureType(enc, &pnext->sType);
7550             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7551             vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
7552             return;
7553         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
7554             vn_encode_simple_pointer(enc, pnext);
7555             vn_encode_VkStructureType(enc, &pnext->sType);
7556             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7557             vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(enc, (const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
7558             return;
7559         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
7560             vn_encode_simple_pointer(enc, pnext);
7561             vn_encode_VkStructureType(enc, &pnext->sType);
7562             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7563             vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, (const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
7564             return;
7565         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
7566             vn_encode_simple_pointer(enc, pnext);
7567             vn_encode_VkStructureType(enc, &pnext->sType);
7568             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7569             vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, (const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
7570             return;
7571         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
7572             vn_encode_simple_pointer(enc, pnext);
7573             vn_encode_VkStructureType(enc, &pnext->sType);
7574             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7575             vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
7576             return;
7577         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
7578             vn_encode_simple_pointer(enc, pnext);
7579             vn_encode_VkStructureType(enc, &pnext->sType);
7580             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7581             vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
7582             return;
7583         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
7584             vn_encode_simple_pointer(enc, pnext);
7585             vn_encode_VkStructureType(enc, &pnext->sType);
7586             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7587             vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
7588             return;
7589         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
7590             vn_encode_simple_pointer(enc, pnext);
7591             vn_encode_VkStructureType(enc, &pnext->sType);
7592             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7593             vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
7594             return;
7595         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
7596             vn_encode_simple_pointer(enc, pnext);
7597             vn_encode_VkStructureType(enc, &pnext->sType);
7598             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7599             vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(enc, (const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
7600             return;
7601         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
7602             vn_encode_simple_pointer(enc, pnext);
7603             vn_encode_VkStructureType(enc, &pnext->sType);
7604             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7605             vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
7606             return;
7607         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
7608             vn_encode_simple_pointer(enc, pnext);
7609             vn_encode_VkStructureType(enc, &pnext->sType);
7610             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7611             vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
7612             return;
7613         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
7614             vn_encode_simple_pointer(enc, pnext);
7615             vn_encode_VkStructureType(enc, &pnext->sType);
7616             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7617             vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
7618             return;
7619         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
7620             vn_encode_simple_pointer(enc, pnext);
7621             vn_encode_VkStructureType(enc, &pnext->sType);
7622             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7623             vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, (const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
7624             return;
7625         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
7626             vn_encode_simple_pointer(enc, pnext);
7627             vn_encode_VkStructureType(enc, &pnext->sType);
7628             vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
7629             vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(enc, (const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
7630             return;
7631         default:
7632             /* ignore unknown/unsupported struct */
7633             break;
7634         }
7635         pnext = pnext->pNext;
7636     }
7637 
7638     vn_encode_simple_pointer(enc, NULL);
7639 }
7640 
7641 static inline void
vn_encode_VkPhysicalDeviceFeatures2_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceFeatures2 * val)7642 vn_encode_VkPhysicalDeviceFeatures2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
7643 {
7644     /* skip val->{sType,pNext} */
7645     vn_encode_VkPhysicalDeviceFeatures(enc, &val->features);
7646 }
7647 
7648 static inline void
vn_encode_VkPhysicalDeviceFeatures2(struct vn_cs_encoder * enc,const VkPhysicalDeviceFeatures2 * val)7649 vn_encode_VkPhysicalDeviceFeatures2(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
7650 {
7651     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2);
7652     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 });
7653     vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, val->pNext);
7654     vn_encode_VkPhysicalDeviceFeatures2_self(enc, val);
7655 }
7656 
7657 static inline void *
vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder * dec)7658 vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec)
7659 {
7660     VkBaseOutStructure *pnext;
7661     VkStructureType stype;
7662 
7663     if (!vn_decode_simple_pointer(dec))
7664         return NULL;
7665 
7666     vn_decode_VkStructureType(dec, &stype);
7667     switch ((int32_t)stype) {
7668     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
7669         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures));
7670         if (pnext) {
7671             pnext->sType = stype;
7672             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7673             vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext);
7674         }
7675         break;
7676     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
7677         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVariablePointersFeatures));
7678         if (pnext) {
7679             pnext->sType = stype;
7680             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7681             vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_temp(dec, (VkPhysicalDeviceVariablePointersFeatures *)pnext);
7682         }
7683         break;
7684     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
7685         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiviewFeatures));
7686         if (pnext) {
7687             pnext->sType = stype;
7688             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7689             vn_decode_VkPhysicalDeviceMultiviewFeatures_self_temp(dec, (VkPhysicalDeviceMultiviewFeatures *)pnext);
7690         }
7691         break;
7692     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
7693         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice16BitStorageFeatures));
7694         if (pnext) {
7695             pnext->sType = stype;
7696             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7697             vn_decode_VkPhysicalDevice16BitStorageFeatures_self_temp(dec, (VkPhysicalDevice16BitStorageFeatures *)pnext);
7698         }
7699         break;
7700     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
7701         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
7702         if (pnext) {
7703             pnext->sType = stype;
7704             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7705             vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_temp(dec, (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
7706         }
7707         break;
7708     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
7709         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
7710         if (pnext) {
7711             pnext->sType = stype;
7712             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7713             vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_temp(dec, (VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
7714         }
7715         break;
7716     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
7717         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
7718         if (pnext) {
7719             pnext->sType = stype;
7720             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7721             vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
7722         }
7723         break;
7724     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
7725         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
7726         if (pnext) {
7727             pnext->sType = stype;
7728             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7729             vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_temp(dec, (VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
7730         }
7731         break;
7732     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
7733         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
7734         if (pnext) {
7735             pnext->sType = stype;
7736             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7737             vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
7738         }
7739         break;
7740     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
7741         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features));
7742         if (pnext) {
7743             pnext->sType = stype;
7744             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7745             vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext);
7746         }
7747         break;
7748     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
7749         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
7750         if (pnext) {
7751             pnext->sType = stype;
7752             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7753             vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(dec, (VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
7754         }
7755         break;
7756     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
7757         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
7758         if (pnext) {
7759             pnext->sType = stype;
7760             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7761             vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(dec, (VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
7762         }
7763         break;
7764     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
7765         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
7766         if (pnext) {
7767             pnext->sType = stype;
7768             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7769             vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(dec, (VkPhysicalDeviceHostQueryResetFeatures *)pnext);
7770         }
7771         break;
7772     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
7773         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
7774         if (pnext) {
7775             pnext->sType = stype;
7776             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7777             vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_temp(dec, (VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
7778         }
7779         break;
7780     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
7781         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
7782         if (pnext) {
7783             pnext->sType = stype;
7784             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7785             vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
7786         }
7787         break;
7788     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
7789         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice8BitStorageFeatures));
7790         if (pnext) {
7791             pnext->sType = stype;
7792             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7793             vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext);
7794         }
7795         break;
7796     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
7797         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
7798         if (pnext) {
7799             pnext->sType = stype;
7800             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7801             vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_temp(dec, (VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
7802         }
7803         break;
7804     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
7805         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
7806         if (pnext) {
7807             pnext->sType = stype;
7808             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7809             vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
7810         }
7811         break;
7812     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
7813         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
7814         if (pnext) {
7815             pnext->sType = stype;
7816             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7817             vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
7818         }
7819         break;
7820     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
7821         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
7822         if (pnext) {
7823             pnext->sType = stype;
7824             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7825             vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_temp(dec, (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
7826         }
7827         break;
7828     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
7829         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
7830         if (pnext) {
7831             pnext->sType = stype;
7832             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7833             vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
7834         }
7835         break;
7836     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
7837         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
7838         if (pnext) {
7839             pnext->sType = stype;
7840             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7841             vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
7842         }
7843         break;
7844     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
7845         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
7846         if (pnext) {
7847             pnext->sType = stype;
7848             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7849             vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
7850         }
7851         break;
7852     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
7853         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
7854         if (pnext) {
7855             pnext->sType = stype;
7856             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7857             vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_temp(dec, (VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
7858         }
7859         break;
7860     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
7861         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
7862         if (pnext) {
7863             pnext->sType = stype;
7864             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7865             vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
7866         }
7867         break;
7868     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
7869         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
7870         if (pnext) {
7871             pnext->sType = stype;
7872             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7873             vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
7874         }
7875         break;
7876     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
7877         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
7878         if (pnext) {
7879             pnext->sType = stype;
7880             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7881             vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
7882         }
7883         break;
7884     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
7885         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
7886         if (pnext) {
7887             pnext->sType = stype;
7888             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7889             vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_temp(dec, (VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
7890         }
7891         break;
7892     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
7893         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
7894         if (pnext) {
7895             pnext->sType = stype;
7896             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7897             vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
7898         }
7899         break;
7900     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
7901         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
7902         if (pnext) {
7903             pnext->sType = stype;
7904             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7905             vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_temp(dec, (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
7906         }
7907         break;
7908     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
7909         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
7910         if (pnext) {
7911             pnext->sType = stype;
7912             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7913             vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
7914         }
7915         break;
7916     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
7917         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
7918         if (pnext) {
7919             pnext->sType = stype;
7920             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7921             vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
7922         }
7923         break;
7924     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
7925         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
7926         if (pnext) {
7927             pnext->sType = stype;
7928             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7929             vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
7930         }
7931         break;
7932     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
7933         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
7934         if (pnext) {
7935             pnext->sType = stype;
7936             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7937             vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
7938         }
7939         break;
7940     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
7941         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
7942         if (pnext) {
7943             pnext->sType = stype;
7944             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7945             vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
7946         }
7947         break;
7948     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
7949         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features));
7950         if (pnext) {
7951             pnext->sType = stype;
7952             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7953             vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext);
7954         }
7955         break;
7956     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
7957         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features));
7958         if (pnext) {
7959             pnext->sType = stype;
7960             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7961             vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext);
7962         }
7963         break;
7964     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
7965         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features));
7966         if (pnext) {
7967             pnext->sType = stype;
7968             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7969             vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext);
7970         }
7971         break;
7972     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
7973         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
7974         if (pnext) {
7975             pnext->sType = stype;
7976             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7977             vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_temp(dec, (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
7978         }
7979         break;
7980     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
7981         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
7982         if (pnext) {
7983             pnext->sType = stype;
7984             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7985             vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
7986         }
7987         break;
7988     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
7989         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
7990         if (pnext) {
7991             pnext->sType = stype;
7992             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
7993             vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
7994         }
7995         break;
7996     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
7997         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
7998         if (pnext) {
7999             pnext->sType = stype;
8000             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8001             vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
8002         }
8003         break;
8004     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
8005         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
8006         if (pnext) {
8007             pnext->sType = stype;
8008             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8009             vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
8010         }
8011         break;
8012     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
8013         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
8014         if (pnext) {
8015             pnext->sType = stype;
8016             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8017             vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext);
8018         }
8019         break;
8020     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
8021         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
8022         if (pnext) {
8023             pnext->sType = stype;
8024             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8025             vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
8026         }
8027         break;
8028     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
8029         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
8030         if (pnext) {
8031             pnext->sType = stype;
8032             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8033             vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
8034         }
8035         break;
8036     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
8037         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT));
8038         if (pnext) {
8039             pnext->sType = stype;
8040             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8041             vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_temp(dec, (VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
8042         }
8043         break;
8044     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
8045         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
8046         if (pnext) {
8047             pnext->sType = stype;
8048             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8049             vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_temp(dec, (VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
8050         }
8051         break;
8052     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
8053         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features));
8054         if (pnext) {
8055             pnext->sType = stype;
8056             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8057             vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext);
8058         }
8059         break;
8060     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
8061         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
8062         if (pnext) {
8063             pnext->sType = stype;
8064             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8065             vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_temp(dec, (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
8066         }
8067         break;
8068     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
8069         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
8070         if (pnext) {
8071             pnext->sType = stype;
8072             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8073             vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
8074         }
8075         break;
8076     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
8077         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
8078         if (pnext) {
8079             pnext->sType = stype;
8080             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8081             vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
8082         }
8083         break;
8084     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
8085         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
8086         if (pnext) {
8087             pnext->sType = stype;
8088             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8089             vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
8090         }
8091         break;
8092     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
8093         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
8094         if (pnext) {
8095             pnext->sType = stype;
8096             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8097             vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
8098         }
8099         break;
8100     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
8101         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
8102         if (pnext) {
8103             pnext->sType = stype;
8104             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8105             vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_temp(dec, (VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
8106         }
8107         break;
8108     default:
8109         /* unexpected struct */
8110         pnext = NULL;
8111         vn_cs_decoder_set_fatal(dec);
8112         break;
8113     }
8114 
8115     return pnext;
8116 }
8117 
8118 static inline void
vn_decode_VkPhysicalDeviceFeatures2_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures2 * val)8119 vn_decode_VkPhysicalDeviceFeatures2_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
8120 {
8121     /* skip val->{sType,pNext} */
8122     vn_decode_VkPhysicalDeviceFeatures_temp(dec, &val->features);
8123 }
8124 
8125 static inline void
vn_decode_VkPhysicalDeviceFeatures2_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures2 * val)8126 vn_decode_VkPhysicalDeviceFeatures2_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
8127 {
8128     VkStructureType stype;
8129     vn_decode_VkStructureType(dec, &stype);
8130     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2)
8131         vn_cs_decoder_set_fatal(dec);
8132 
8133     val->sType = stype;
8134     val->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
8135     vn_decode_VkPhysicalDeviceFeatures2_self_temp(dec, val);
8136 }
8137 
8138 static inline void *
vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder * dec)8139 vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec)
8140 {
8141     VkBaseOutStructure *pnext;
8142     VkStructureType stype;
8143 
8144     if (!vn_decode_simple_pointer(dec))
8145         return NULL;
8146 
8147     vn_decode_VkStructureType(dec, &stype);
8148     switch ((int32_t)stype) {
8149     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
8150         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures));
8151         if (pnext) {
8152             pnext->sType = stype;
8153             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8154             vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext);
8155         }
8156         break;
8157     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
8158         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVariablePointersFeatures));
8159         if (pnext) {
8160             pnext->sType = stype;
8161             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8162             vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_partial_temp(dec, (VkPhysicalDeviceVariablePointersFeatures *)pnext);
8163         }
8164         break;
8165     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
8166         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiviewFeatures));
8167         if (pnext) {
8168             pnext->sType = stype;
8169             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8170             vn_decode_VkPhysicalDeviceMultiviewFeatures_self_partial_temp(dec, (VkPhysicalDeviceMultiviewFeatures *)pnext);
8171         }
8172         break;
8173     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
8174         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice16BitStorageFeatures));
8175         if (pnext) {
8176             pnext->sType = stype;
8177             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8178             vn_decode_VkPhysicalDevice16BitStorageFeatures_self_partial_temp(dec, (VkPhysicalDevice16BitStorageFeatures *)pnext);
8179         }
8180         break;
8181     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
8182         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
8183         if (pnext) {
8184             pnext->sType = stype;
8185             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8186             vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
8187         }
8188         break;
8189     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
8190         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
8191         if (pnext) {
8192             pnext->sType = stype;
8193             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8194             vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial_temp(dec, (VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
8195         }
8196         break;
8197     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
8198         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
8199         if (pnext) {
8200             pnext->sType = stype;
8201             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8202             vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
8203         }
8204         break;
8205     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
8206         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
8207         if (pnext) {
8208             pnext->sType = stype;
8209             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8210             vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
8211         }
8212         break;
8213     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
8214         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
8215         if (pnext) {
8216             pnext->sType = stype;
8217             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8218             vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
8219         }
8220         break;
8221     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
8222         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features));
8223         if (pnext) {
8224             pnext->sType = stype;
8225             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8226             vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext);
8227         }
8228         break;
8229     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
8230         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
8231         if (pnext) {
8232             pnext->sType = stype;
8233             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8234             vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
8235         }
8236         break;
8237     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
8238         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
8239         if (pnext) {
8240             pnext->sType = stype;
8241             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8242             vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(dec, (VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
8243         }
8244         break;
8245     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
8246         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
8247         if (pnext) {
8248             pnext->sType = stype;
8249             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8250             vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(dec, (VkPhysicalDeviceHostQueryResetFeatures *)pnext);
8251         }
8252         break;
8253     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
8254         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
8255         if (pnext) {
8256             pnext->sType = stype;
8257             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8258             vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial_temp(dec, (VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
8259         }
8260         break;
8261     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
8262         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
8263         if (pnext) {
8264             pnext->sType = stype;
8265             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8266             vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial_temp(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
8267         }
8268         break;
8269     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
8270         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice8BitStorageFeatures));
8271         if (pnext) {
8272             pnext->sType = stype;
8273             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8274             vn_decode_VkPhysicalDevice8BitStorageFeatures_self_partial_temp(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext);
8275         }
8276         break;
8277     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
8278         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
8279         if (pnext) {
8280             pnext->sType = stype;
8281             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8282             vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
8283         }
8284         break;
8285     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
8286         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
8287         if (pnext) {
8288             pnext->sType = stype;
8289             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8290             vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial_temp(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
8291         }
8292         break;
8293     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
8294         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
8295         if (pnext) {
8296             pnext->sType = stype;
8297             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8298             vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial_temp(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
8299         }
8300         break;
8301     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
8302         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
8303         if (pnext) {
8304             pnext->sType = stype;
8305             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8306             vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
8307         }
8308         break;
8309     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
8310         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
8311         if (pnext) {
8312             pnext->sType = stype;
8313             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8314             vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
8315         }
8316         break;
8317     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
8318         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
8319         if (pnext) {
8320             pnext->sType = stype;
8321             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8322             vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial_temp(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
8323         }
8324         break;
8325     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
8326         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
8327         if (pnext) {
8328             pnext->sType = stype;
8329             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8330             vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial_temp(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
8331         }
8332         break;
8333     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
8334         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
8335         if (pnext) {
8336             pnext->sType = stype;
8337             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8338             vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
8339         }
8340         break;
8341     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
8342         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
8343         if (pnext) {
8344             pnext->sType = stype;
8345             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8346             vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial_temp(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
8347         }
8348         break;
8349     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
8350         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
8351         if (pnext) {
8352             pnext->sType = stype;
8353             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8354             vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
8355         }
8356         break;
8357     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
8358         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
8359         if (pnext) {
8360             pnext->sType = stype;
8361             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8362             vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
8363         }
8364         break;
8365     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
8366         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
8367         if (pnext) {
8368             pnext->sType = stype;
8369             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8370             vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
8371         }
8372         break;
8373     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
8374         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
8375         if (pnext) {
8376             pnext->sType = stype;
8377             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8378             vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
8379         }
8380         break;
8381     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
8382         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
8383         if (pnext) {
8384             pnext->sType = stype;
8385             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8386             vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_partial_temp(dec, (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
8387         }
8388         break;
8389     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
8390         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
8391         if (pnext) {
8392             pnext->sType = stype;
8393             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8394             vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
8395         }
8396         break;
8397     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
8398         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
8399         if (pnext) {
8400             pnext->sType = stype;
8401             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8402             vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
8403         }
8404         break;
8405     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
8406         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
8407         if (pnext) {
8408             pnext->sType = stype;
8409             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8410             vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
8411         }
8412         break;
8413     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
8414         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
8415         if (pnext) {
8416             pnext->sType = stype;
8417             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8418             vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
8419         }
8420         break;
8421     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
8422         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
8423         if (pnext) {
8424             pnext->sType = stype;
8425             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8426             vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
8427         }
8428         break;
8429     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
8430         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features));
8431         if (pnext) {
8432             pnext->sType = stype;
8433             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8434             vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext);
8435         }
8436         break;
8437     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
8438         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features));
8439         if (pnext) {
8440             pnext->sType = stype;
8441             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8442             vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext);
8443         }
8444         break;
8445     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
8446         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features));
8447         if (pnext) {
8448             pnext->sType = stype;
8449             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8450             vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext);
8451         }
8452         break;
8453     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
8454         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
8455         if (pnext) {
8456             pnext->sType = stype;
8457             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8458             vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
8459         }
8460         break;
8461     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
8462         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
8463         if (pnext) {
8464             pnext->sType = stype;
8465             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8466             vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
8467         }
8468         break;
8469     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
8470         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
8471         if (pnext) {
8472             pnext->sType = stype;
8473             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8474             vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
8475         }
8476         break;
8477     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
8478         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
8479         if (pnext) {
8480             pnext->sType = stype;
8481             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8482             vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
8483         }
8484         break;
8485     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
8486         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
8487         if (pnext) {
8488             pnext->sType = stype;
8489             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8490             vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
8491         }
8492         break;
8493     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
8494         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
8495         if (pnext) {
8496             pnext->sType = stype;
8497             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8498             vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext);
8499         }
8500         break;
8501     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
8502         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
8503         if (pnext) {
8504             pnext->sType = stype;
8505             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8506             vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
8507         }
8508         break;
8509     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
8510         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
8511         if (pnext) {
8512             pnext->sType = stype;
8513             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8514             vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
8515         }
8516         break;
8517     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
8518         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT));
8519         if (pnext) {
8520             pnext->sType = stype;
8521             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8522             vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
8523         }
8524         break;
8525     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
8526         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
8527         if (pnext) {
8528             pnext->sType = stype;
8529             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8530             vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
8531         }
8532         break;
8533     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
8534         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features));
8535         if (pnext) {
8536             pnext->sType = stype;
8537             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8538             vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext);
8539         }
8540         break;
8541     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
8542         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
8543         if (pnext) {
8544             pnext->sType = stype;
8545             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8546             vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial_temp(dec, (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
8547         }
8548         break;
8549     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
8550         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
8551         if (pnext) {
8552             pnext->sType = stype;
8553             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8554             vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
8555         }
8556         break;
8557     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
8558         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
8559         if (pnext) {
8560             pnext->sType = stype;
8561             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8562             vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
8563         }
8564         break;
8565     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
8566         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
8567         if (pnext) {
8568             pnext->sType = stype;
8569             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8570             vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
8571         }
8572         break;
8573     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
8574         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
8575         if (pnext) {
8576             pnext->sType = stype;
8577             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8578             vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
8579         }
8580         break;
8581     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
8582         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
8583         if (pnext) {
8584             pnext->sType = stype;
8585             pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8586             vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
8587         }
8588         break;
8589     default:
8590         /* unexpected struct */
8591         pnext = NULL;
8592         vn_cs_decoder_set_fatal(dec);
8593         break;
8594     }
8595 
8596     return pnext;
8597 }
8598 
8599 static inline void
vn_decode_VkPhysicalDeviceFeatures2_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures2 * val)8600 vn_decode_VkPhysicalDeviceFeatures2_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
8601 {
8602     /* skip val->{sType,pNext} */
8603     vn_decode_VkPhysicalDeviceFeatures_partial_temp(dec, &val->features);
8604 }
8605 
8606 static inline void
vn_decode_VkPhysicalDeviceFeatures2_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFeatures2 * val)8607 vn_decode_VkPhysicalDeviceFeatures2_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
8608 {
8609     VkStructureType stype;
8610     vn_decode_VkStructureType(dec, &stype);
8611     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2)
8612         vn_cs_decoder_set_fatal(dec);
8613 
8614     val->sType = stype;
8615     val->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
8616     vn_decode_VkPhysicalDeviceFeatures2_self_partial_temp(dec, val);
8617 }
8618 
8619 static inline void
vn_replace_VkPhysicalDeviceFeatures2_handle_self(VkPhysicalDeviceFeatures2 * val)8620 vn_replace_VkPhysicalDeviceFeatures2_handle_self(VkPhysicalDeviceFeatures2 *val)
8621 {
8622     /* skip val->sType */
8623     /* skip val->pNext */
8624     vn_replace_VkPhysicalDeviceFeatures_handle(&val->features);
8625 }
8626 
8627 static inline void
vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 * val)8628 vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val)
8629 {
8630     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
8631 
8632     do {
8633         switch ((int32_t)pnext->sType) {
8634         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
8635             vn_replace_VkPhysicalDeviceFeatures2_handle_self((VkPhysicalDeviceFeatures2 *)pnext);
8636             break;
8637         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
8638             vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext);
8639             break;
8640         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
8641             vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self((VkPhysicalDeviceVariablePointersFeatures *)pnext);
8642             break;
8643         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
8644             vn_replace_VkPhysicalDeviceMultiviewFeatures_handle_self((VkPhysicalDeviceMultiviewFeatures *)pnext);
8645             break;
8646         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
8647             vn_replace_VkPhysicalDevice16BitStorageFeatures_handle_self((VkPhysicalDevice16BitStorageFeatures *)pnext);
8648             break;
8649         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
8650             vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle_self((VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
8651             break;
8652         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
8653             vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle_self((VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
8654             break;
8655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
8656             vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self((VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
8657             break;
8658         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
8659             vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle_self((VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
8660             break;
8661         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
8662             vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
8663             break;
8664         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
8665             vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext);
8666             break;
8667         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
8668             vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
8669             break;
8670         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
8671             vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self((VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
8672             break;
8673         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
8674             vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self((VkPhysicalDeviceHostQueryResetFeatures *)pnext);
8675             break;
8676         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
8677             vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle_self((VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
8678             break;
8679         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
8680             vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle_self((VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
8681             break;
8682         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
8683             vn_replace_VkPhysicalDevice8BitStorageFeatures_handle_self((VkPhysicalDevice8BitStorageFeatures *)pnext);
8684             break;
8685         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
8686             vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle_self((VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
8687             break;
8688         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
8689             vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle_self((VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
8690             break;
8691         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
8692             vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle_self((VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
8693             break;
8694         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
8695             vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle_self((VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
8696             break;
8697         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
8698             vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle_self((VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
8699             break;
8700         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
8701             vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle_self((VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
8702             break;
8703         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
8704             vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle_self((VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
8705             break;
8706         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
8707             vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
8708             break;
8709         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
8710             vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle_self((VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
8711             break;
8712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
8713             vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self((VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
8714             break;
8715         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
8716             vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
8717             break;
8718         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
8719             vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle_self((VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
8720             break;
8721         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
8722             vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
8723             break;
8724         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
8725             vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle_self((VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
8726             break;
8727         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
8728             vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
8729             break;
8730         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
8731             vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
8732             break;
8733         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
8734             vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
8735             break;
8736         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
8737             vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
8738             break;
8739         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
8740             vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
8741             break;
8742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
8743             vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext);
8744             break;
8745         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
8746             vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext);
8747             break;
8748         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
8749             vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext);
8750             break;
8751         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
8752             vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle_self((VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
8753             break;
8754         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
8755             vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
8756             break;
8757         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
8758             vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
8759             break;
8760         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
8761             vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
8762             break;
8763         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
8764             vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle_self((VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
8765             break;
8766         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
8767             vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext);
8768             break;
8769         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
8770             vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
8771             break;
8772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
8773             vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
8774             break;
8775         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
8776             vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle_self((VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
8777             break;
8778         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
8779             vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
8780             break;
8781         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
8782             vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext);
8783             break;
8784         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
8785             vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle_self((VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
8786             break;
8787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
8788             vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
8789             break;
8790         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
8791             vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
8792             break;
8793         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
8794             vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
8795             break;
8796         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
8797             vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
8798             break;
8799         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
8800             vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle_self((VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
8801             break;
8802         default:
8803             /* ignore unknown/unsupported struct */
8804             break;
8805         }
8806         pnext = pnext->pNext;
8807     } while (pnext);
8808 }
8809 
8810 /* struct VkDeviceGroupDeviceCreateInfo chain */
8811 
8812 static inline void *
vn_decode_VkDeviceGroupDeviceCreateInfo_pnext_temp(struct vn_cs_decoder * dec)8813 vn_decode_VkDeviceGroupDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
8814 {
8815     /* no known/supported struct */
8816     if (vn_decode_simple_pointer(dec))
8817         vn_cs_decoder_set_fatal(dec);
8818     return NULL;
8819 }
8820 
8821 static inline void
vn_decode_VkDeviceGroupDeviceCreateInfo_self_temp(struct vn_cs_decoder * dec,VkDeviceGroupDeviceCreateInfo * val)8822 vn_decode_VkDeviceGroupDeviceCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDeviceGroupDeviceCreateInfo *val)
8823 {
8824     /* skip val->{sType,pNext} */
8825     vn_decode_uint32_t(dec, &val->physicalDeviceCount);
8826     if (vn_peek_array_size(dec)) {
8827         const uint32_t iter_count = vn_decode_array_size(dec, val->physicalDeviceCount);
8828         val->pPhysicalDevices = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pPhysicalDevices) * iter_count);
8829         if (!val->pPhysicalDevices) return;
8830         for (uint32_t i = 0; i < iter_count; i++)
8831             vn_decode_VkPhysicalDevice_lookup(dec, &((VkPhysicalDevice *)val->pPhysicalDevices)[i]);
8832     } else {
8833         vn_decode_array_size(dec, val->physicalDeviceCount);
8834         val->pPhysicalDevices = NULL;
8835     }
8836 }
8837 
8838 static inline void
vn_decode_VkDeviceGroupDeviceCreateInfo_temp(struct vn_cs_decoder * dec,VkDeviceGroupDeviceCreateInfo * val)8839 vn_decode_VkDeviceGroupDeviceCreateInfo_temp(struct vn_cs_decoder *dec, VkDeviceGroupDeviceCreateInfo *val)
8840 {
8841     VkStructureType stype;
8842     vn_decode_VkStructureType(dec, &stype);
8843     if (stype != VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO)
8844         vn_cs_decoder_set_fatal(dec);
8845 
8846     val->sType = stype;
8847     val->pNext = vn_decode_VkDeviceGroupDeviceCreateInfo_pnext_temp(dec);
8848     vn_decode_VkDeviceGroupDeviceCreateInfo_self_temp(dec, val);
8849 }
8850 
8851 static inline void
vn_replace_VkDeviceGroupDeviceCreateInfo_handle_self(VkDeviceGroupDeviceCreateInfo * val)8852 vn_replace_VkDeviceGroupDeviceCreateInfo_handle_self(VkDeviceGroupDeviceCreateInfo *val)
8853 {
8854     /* skip val->sType */
8855     /* skip val->pNext */
8856     /* skip val->physicalDeviceCount */
8857     if (val->pPhysicalDevices) {
8858        for (uint32_t i = 0; i < val->physicalDeviceCount; i++)
8859             vn_replace_VkPhysicalDevice_handle(&((VkPhysicalDevice *)val->pPhysicalDevices)[i]);
8860     }
8861 }
8862 
8863 static inline void
vn_replace_VkDeviceGroupDeviceCreateInfo_handle(VkDeviceGroupDeviceCreateInfo * val)8864 vn_replace_VkDeviceGroupDeviceCreateInfo_handle(VkDeviceGroupDeviceCreateInfo *val)
8865 {
8866     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
8867 
8868     do {
8869         switch ((int32_t)pnext->sType) {
8870         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
8871             vn_replace_VkDeviceGroupDeviceCreateInfo_handle_self((VkDeviceGroupDeviceCreateInfo *)pnext);
8872             break;
8873         default:
8874             /* ignore unknown/unsupported struct */
8875             break;
8876         }
8877         pnext = pnext->pNext;
8878     } while (pnext);
8879 }
8880 
8881 /* struct VkDeviceCreateInfo chain */
8882 
8883 static inline void *
vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder * dec)8884 vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
8885 {
8886     VkBaseOutStructure *pnext;
8887     VkStructureType stype;
8888 
8889     if (!vn_decode_simple_pointer(dec))
8890         return NULL;
8891 
8892     vn_decode_VkStructureType(dec, &stype);
8893     switch ((int32_t)stype) {
8894     case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
8895         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDevicePrivateDataCreateInfo));
8896         if (pnext) {
8897             pnext->sType = stype;
8898             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8899             vn_decode_VkDevicePrivateDataCreateInfo_self_temp(dec, (VkDevicePrivateDataCreateInfo *)pnext);
8900         }
8901         break;
8902     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
8903         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures));
8904         if (pnext) {
8905             pnext->sType = stype;
8906             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8907             vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext);
8908         }
8909         break;
8910     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
8911         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceFeatures2));
8912         if (pnext) {
8913             pnext->sType = stype;
8914             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8915             vn_decode_VkPhysicalDeviceFeatures2_self_temp(dec, (VkPhysicalDeviceFeatures2 *)pnext);
8916         }
8917         break;
8918     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
8919         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVariablePointersFeatures));
8920         if (pnext) {
8921             pnext->sType = stype;
8922             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8923             vn_decode_VkPhysicalDeviceVariablePointersFeatures_self_temp(dec, (VkPhysicalDeviceVariablePointersFeatures *)pnext);
8924         }
8925         break;
8926     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
8927         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiviewFeatures));
8928         if (pnext) {
8929             pnext->sType = stype;
8930             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8931             vn_decode_VkPhysicalDeviceMultiviewFeatures_self_temp(dec, (VkPhysicalDeviceMultiviewFeatures *)pnext);
8932         }
8933         break;
8934     case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
8935         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDeviceGroupDeviceCreateInfo));
8936         if (pnext) {
8937             pnext->sType = stype;
8938             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8939             vn_decode_VkDeviceGroupDeviceCreateInfo_self_temp(dec, (VkDeviceGroupDeviceCreateInfo *)pnext);
8940         }
8941         break;
8942     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
8943         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice16BitStorageFeatures));
8944         if (pnext) {
8945             pnext->sType = stype;
8946             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8947             vn_decode_VkPhysicalDevice16BitStorageFeatures_self_temp(dec, (VkPhysicalDevice16BitStorageFeatures *)pnext);
8948         }
8949         break;
8950     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
8951         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
8952         if (pnext) {
8953             pnext->sType = stype;
8954             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8955             vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_temp(dec, (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
8956         }
8957         break;
8958     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
8959         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
8960         if (pnext) {
8961             pnext->sType = stype;
8962             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8963             vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_temp(dec, (VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
8964         }
8965         break;
8966     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
8967         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
8968         if (pnext) {
8969             pnext->sType = stype;
8970             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8971             vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
8972         }
8973         break;
8974     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
8975         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
8976         if (pnext) {
8977             pnext->sType = stype;
8978             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8979             vn_decode_VkPhysicalDeviceMultiDrawFeaturesEXT_self_temp(dec, (VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
8980         }
8981         break;
8982     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
8983         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
8984         if (pnext) {
8985             pnext->sType = stype;
8986             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8987             vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
8988         }
8989         break;
8990     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
8991         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features));
8992         if (pnext) {
8993             pnext->sType = stype;
8994             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
8995             vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext);
8996         }
8997         break;
8998     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
8999         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
9000         if (pnext) {
9001             pnext->sType = stype;
9002             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9003             vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(dec, (VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
9004         }
9005         break;
9006     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
9007         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
9008         if (pnext) {
9009             pnext->sType = stype;
9010             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9011             vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(dec, (VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
9012         }
9013         break;
9014     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
9015         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
9016         if (pnext) {
9017             pnext->sType = stype;
9018             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9019             vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(dec, (VkPhysicalDeviceHostQueryResetFeatures *)pnext);
9020         }
9021         break;
9022     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
9023         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
9024         if (pnext) {
9025             pnext->sType = stype;
9026             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9027             vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self_temp(dec, (VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
9028         }
9029         break;
9030     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
9031         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
9032         if (pnext) {
9033             pnext->sType = stype;
9034             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9035             vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
9036         }
9037         break;
9038     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
9039         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice8BitStorageFeatures));
9040         if (pnext) {
9041             pnext->sType = stype;
9042             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9043             vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext);
9044         }
9045         break;
9046     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
9047         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
9048         if (pnext) {
9049             pnext->sType = stype;
9050             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9051             vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_temp(dec, (VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
9052         }
9053         break;
9054     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
9055         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
9056         if (pnext) {
9057             pnext->sType = stype;
9058             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9059             vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
9060         }
9061         break;
9062     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
9063         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
9064         if (pnext) {
9065             pnext->sType = stype;
9066             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9067             vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
9068         }
9069         break;
9070     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
9071         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
9072         if (pnext) {
9073             pnext->sType = stype;
9074             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9075             vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_temp(dec, (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
9076         }
9077         break;
9078     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
9079         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
9080         if (pnext) {
9081             pnext->sType = stype;
9082             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9083             vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
9084         }
9085         break;
9086     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
9087         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
9088         if (pnext) {
9089             pnext->sType = stype;
9090             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9091             vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
9092         }
9093         break;
9094     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
9095         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
9096         if (pnext) {
9097             pnext->sType = stype;
9098             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9099             vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
9100         }
9101         break;
9102     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
9103         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
9104         if (pnext) {
9105             pnext->sType = stype;
9106             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9107             vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_temp(dec, (VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
9108         }
9109         break;
9110     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
9111         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
9112         if (pnext) {
9113             pnext->sType = stype;
9114             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9115             vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
9116         }
9117         break;
9118     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
9119         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
9120         if (pnext) {
9121             pnext->sType = stype;
9122             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9123             vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
9124         }
9125         break;
9126     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
9127         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
9128         if (pnext) {
9129             pnext->sType = stype;
9130             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9131             vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
9132         }
9133         break;
9134     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
9135         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
9136         if (pnext) {
9137             pnext->sType = stype;
9138             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9139             vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_temp(dec, (VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
9140         }
9141         break;
9142     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
9143         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
9144         if (pnext) {
9145             pnext->sType = stype;
9146             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9147             vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
9148         }
9149         break;
9150     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
9151         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
9152         if (pnext) {
9153             pnext->sType = stype;
9154             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9155             vn_decode_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_self_temp(dec, (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
9156         }
9157         break;
9158     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
9159         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
9160         if (pnext) {
9161             pnext->sType = stype;
9162             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9163             vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
9164         }
9165         break;
9166     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
9167         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
9168         if (pnext) {
9169             pnext->sType = stype;
9170             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9171             vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
9172         }
9173         break;
9174     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
9175         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
9176         if (pnext) {
9177             pnext->sType = stype;
9178             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9179             vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
9180         }
9181         break;
9182     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
9183         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
9184         if (pnext) {
9185             pnext->sType = stype;
9186             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9187             vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
9188         }
9189         break;
9190     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
9191         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
9192         if (pnext) {
9193             pnext->sType = stype;
9194             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9195             vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
9196         }
9197         break;
9198     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
9199         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features));
9200         if (pnext) {
9201             pnext->sType = stype;
9202             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9203             vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext);
9204         }
9205         break;
9206     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
9207         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features));
9208         if (pnext) {
9209             pnext->sType = stype;
9210             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9211             vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext);
9212         }
9213         break;
9214     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
9215         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features));
9216         if (pnext) {
9217             pnext->sType = stype;
9218             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9219             vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext);
9220         }
9221         break;
9222     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
9223         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
9224         if (pnext) {
9225             pnext->sType = stype;
9226             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9227             vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_temp(dec, (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
9228         }
9229         break;
9230     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
9231         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
9232         if (pnext) {
9233             pnext->sType = stype;
9234             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9235             vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
9236         }
9237         break;
9238     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
9239         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
9240         if (pnext) {
9241             pnext->sType = stype;
9242             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9243             vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
9244         }
9245         break;
9246     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
9247         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
9248         if (pnext) {
9249             pnext->sType = stype;
9250             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9251             vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
9252         }
9253         break;
9254     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
9255         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
9256         if (pnext) {
9257             pnext->sType = stype;
9258             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9259             vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
9260         }
9261         break;
9262     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
9263         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
9264         if (pnext) {
9265             pnext->sType = stype;
9266             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9267             vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext);
9268         }
9269         break;
9270     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
9271         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
9272         if (pnext) {
9273             pnext->sType = stype;
9274             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9275             vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
9276         }
9277         break;
9278     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
9279         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
9280         if (pnext) {
9281             pnext->sType = stype;
9282             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9283             vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
9284         }
9285         break;
9286     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
9287         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT));
9288         if (pnext) {
9289             pnext->sType = stype;
9290             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9291             vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_temp(dec, (VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
9292         }
9293         break;
9294     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
9295         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
9296         if (pnext) {
9297             pnext->sType = stype;
9298             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9299             vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_temp(dec, (VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
9300         }
9301         break;
9302     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
9303         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features));
9304         if (pnext) {
9305             pnext->sType = stype;
9306             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9307             vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext);
9308         }
9309         break;
9310     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
9311         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
9312         if (pnext) {
9313             pnext->sType = stype;
9314             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9315             vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_temp(dec, (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
9316         }
9317         break;
9318     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
9319         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
9320         if (pnext) {
9321             pnext->sType = stype;
9322             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9323             vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
9324         }
9325         break;
9326     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
9327         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
9328         if (pnext) {
9329             pnext->sType = stype;
9330             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9331             vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
9332         }
9333         break;
9334     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
9335         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
9336         if (pnext) {
9337             pnext->sType = stype;
9338             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9339             vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
9340         }
9341         break;
9342     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
9343         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
9344         if (pnext) {
9345             pnext->sType = stype;
9346             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9347             vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
9348         }
9349         break;
9350     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
9351         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
9352         if (pnext) {
9353             pnext->sType = stype;
9354             pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9355             vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_temp(dec, (VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
9356         }
9357         break;
9358     default:
9359         /* unexpected struct */
9360         pnext = NULL;
9361         vn_cs_decoder_set_fatal(dec);
9362         break;
9363     }
9364 
9365     return pnext;
9366 }
9367 
9368 static inline void
vn_decode_VkDeviceCreateInfo_self_temp(struct vn_cs_decoder * dec,VkDeviceCreateInfo * val)9369 vn_decode_VkDeviceCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDeviceCreateInfo *val)
9370 {
9371     /* skip val->{sType,pNext} */
9372     vn_decode_VkFlags(dec, &val->flags);
9373     vn_decode_uint32_t(dec, &val->queueCreateInfoCount);
9374     if (vn_peek_array_size(dec)) {
9375         const uint32_t iter_count = vn_decode_array_size(dec, val->queueCreateInfoCount);
9376         val->pQueueCreateInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pQueueCreateInfos) * iter_count);
9377         if (!val->pQueueCreateInfos) return;
9378         for (uint32_t i = 0; i < iter_count; i++)
9379             vn_decode_VkDeviceQueueCreateInfo_temp(dec, &((VkDeviceQueueCreateInfo *)val->pQueueCreateInfos)[i]);
9380     } else {
9381         vn_decode_array_size(dec, val->queueCreateInfoCount);
9382         val->pQueueCreateInfos = NULL;
9383     }
9384     vn_decode_uint32_t(dec, &val->enabledLayerCount);
9385     if (vn_peek_array_size(dec)) {
9386         const uint32_t iter_count = vn_decode_array_size(dec, val->enabledLayerCount);
9387         val->ppEnabledLayerNames = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledLayerNames) * iter_count);
9388         if (!val->ppEnabledLayerNames) return;
9389         for (uint32_t i = 0; i < iter_count; i++) {
9390             const size_t string_size = vn_decode_array_size_unchecked(dec);
9391             ((char **)val->ppEnabledLayerNames)[i] = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledLayerNames[i]) * string_size);
9392             if (!val->ppEnabledLayerNames[i]) return;
9393             vn_decode_char_array(dec, ((char **)val->ppEnabledLayerNames)[i], string_size);
9394         }
9395     } else {
9396         vn_decode_array_size(dec, val->enabledLayerCount);
9397         val->ppEnabledLayerNames = NULL;
9398     }
9399     vn_decode_uint32_t(dec, &val->enabledExtensionCount);
9400     if (vn_peek_array_size(dec)) {
9401         const uint32_t iter_count = vn_decode_array_size(dec, val->enabledExtensionCount);
9402         val->ppEnabledExtensionNames = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledExtensionNames) * iter_count);
9403         if (!val->ppEnabledExtensionNames) return;
9404         for (uint32_t i = 0; i < iter_count; i++) {
9405             const size_t string_size = vn_decode_array_size_unchecked(dec);
9406             ((char **)val->ppEnabledExtensionNames)[i] = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledExtensionNames[i]) * string_size);
9407             if (!val->ppEnabledExtensionNames[i]) return;
9408             vn_decode_char_array(dec, ((char **)val->ppEnabledExtensionNames)[i], string_size);
9409         }
9410     } else {
9411         vn_decode_array_size(dec, val->enabledExtensionCount);
9412         val->ppEnabledExtensionNames = NULL;
9413     }
9414     if (vn_decode_simple_pointer(dec)) {
9415         val->pEnabledFeatures = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pEnabledFeatures));
9416         if (!val->pEnabledFeatures) return;
9417         vn_decode_VkPhysicalDeviceFeatures_temp(dec, (VkPhysicalDeviceFeatures *)val->pEnabledFeatures);
9418     } else {
9419         val->pEnabledFeatures = NULL;
9420     }
9421 }
9422 
9423 static inline void
vn_decode_VkDeviceCreateInfo_temp(struct vn_cs_decoder * dec,VkDeviceCreateInfo * val)9424 vn_decode_VkDeviceCreateInfo_temp(struct vn_cs_decoder *dec, VkDeviceCreateInfo *val)
9425 {
9426     VkStructureType stype;
9427     vn_decode_VkStructureType(dec, &stype);
9428     if (stype != VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
9429         vn_cs_decoder_set_fatal(dec);
9430 
9431     val->sType = stype;
9432     val->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
9433     vn_decode_VkDeviceCreateInfo_self_temp(dec, val);
9434 }
9435 
9436 static inline void
vn_replace_VkDeviceCreateInfo_handle_self(VkDeviceCreateInfo * val)9437 vn_replace_VkDeviceCreateInfo_handle_self(VkDeviceCreateInfo *val)
9438 {
9439     /* skip val->sType */
9440     /* skip val->pNext */
9441     /* skip val->flags */
9442     /* skip val->queueCreateInfoCount */
9443     if (val->pQueueCreateInfos) {
9444        for (uint32_t i = 0; i < val->queueCreateInfoCount; i++)
9445             vn_replace_VkDeviceQueueCreateInfo_handle(&((VkDeviceQueueCreateInfo *)val->pQueueCreateInfos)[i]);
9446     }
9447     /* skip val->enabledLayerCount */
9448     /* skip val->ppEnabledLayerNames */
9449     /* skip val->enabledExtensionCount */
9450     /* skip val->ppEnabledExtensionNames */
9451     if (val->pEnabledFeatures)
9452         vn_replace_VkPhysicalDeviceFeatures_handle((VkPhysicalDeviceFeatures *)val->pEnabledFeatures);
9453 }
9454 
9455 static inline void
vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo * val)9456 vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val)
9457 {
9458     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
9459 
9460     do {
9461         switch ((int32_t)pnext->sType) {
9462         case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:
9463             vn_replace_VkDeviceCreateInfo_handle_self((VkDeviceCreateInfo *)pnext);
9464             break;
9465         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
9466             vn_replace_VkDevicePrivateDataCreateInfo_handle_self((VkDevicePrivateDataCreateInfo *)pnext);
9467             break;
9468         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
9469             vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext);
9470             break;
9471         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
9472             vn_replace_VkPhysicalDeviceFeatures2_handle_self((VkPhysicalDeviceFeatures2 *)pnext);
9473             break;
9474         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
9475             vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self((VkPhysicalDeviceVariablePointersFeatures *)pnext);
9476             break;
9477         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
9478             vn_replace_VkPhysicalDeviceMultiviewFeatures_handle_self((VkPhysicalDeviceMultiviewFeatures *)pnext);
9479             break;
9480         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
9481             vn_replace_VkDeviceGroupDeviceCreateInfo_handle_self((VkDeviceGroupDeviceCreateInfo *)pnext);
9482             break;
9483         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
9484             vn_replace_VkPhysicalDevice16BitStorageFeatures_handle_self((VkPhysicalDevice16BitStorageFeatures *)pnext);
9485             break;
9486         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
9487             vn_replace_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_handle_self((VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
9488             break;
9489         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
9490             vn_replace_VkPhysicalDeviceSamplerYcbcrConversionFeatures_handle_self((VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
9491             break;
9492         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
9493             vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self((VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
9494             break;
9495         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
9496             vn_replace_VkPhysicalDeviceMultiDrawFeaturesEXT_handle_self((VkPhysicalDeviceMultiDrawFeaturesEXT *)pnext);
9497             break;
9498         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
9499             vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
9500             break;
9501         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
9502             vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext);
9503             break;
9504         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
9505             vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
9506             break;
9507         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
9508             vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self((VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
9509             break;
9510         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
9511             vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self((VkPhysicalDeviceHostQueryResetFeatures *)pnext);
9512             break;
9513         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
9514             vn_replace_VkPhysicalDeviceDescriptorIndexingFeatures_handle_self((VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
9515             break;
9516         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
9517             vn_replace_VkPhysicalDeviceTimelineSemaphoreFeatures_handle_self((VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
9518             break;
9519         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
9520             vn_replace_VkPhysicalDevice8BitStorageFeatures_handle_self((VkPhysicalDevice8BitStorageFeatures *)pnext);
9521             break;
9522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
9523             vn_replace_VkPhysicalDeviceConditionalRenderingFeaturesEXT_handle_self((VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
9524             break;
9525         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
9526             vn_replace_VkPhysicalDeviceVulkanMemoryModelFeatures_handle_self((VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
9527             break;
9528         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
9529             vn_replace_VkPhysicalDeviceShaderAtomicInt64Features_handle_self((VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
9530             break;
9531         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
9532             vn_replace_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_handle_self((VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
9533             break;
9534         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
9535             vn_replace_VkPhysicalDeviceTransformFeedbackFeaturesEXT_handle_self((VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
9536             break;
9537         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
9538             vn_replace_VkPhysicalDeviceScalarBlockLayoutFeatures_handle_self((VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
9539             break;
9540         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
9541             vn_replace_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_handle_self((VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
9542             break;
9543         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
9544             vn_replace_VkPhysicalDeviceDepthClipEnableFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
9545             break;
9546         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
9547             vn_replace_VkPhysicalDeviceBufferDeviceAddressFeatures_handle_self((VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
9548             break;
9549         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
9550             vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self((VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
9551             break;
9552         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
9553             vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
9554             break;
9555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
9556             vn_replace_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_handle_self((VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
9557             break;
9558         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
9559             vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
9560             break;
9561         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
9562             vn_replace_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT_handle_self((VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)pnext);
9563             break;
9564         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
9565             vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
9566             break;
9567         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
9568             vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
9569             break;
9570         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
9571             vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
9572             break;
9573         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
9574             vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
9575             break;
9576         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
9577             vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
9578             break;
9579         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
9580             vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext);
9581             break;
9582         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
9583             vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext);
9584             break;
9585         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
9586             vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext);
9587             break;
9588         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
9589             vn_replace_VkPhysicalDeviceCustomBorderColorFeaturesEXT_handle_self((VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
9590             break;
9591         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
9592             vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
9593             break;
9594         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
9595             vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
9596             break;
9597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
9598             vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
9599             break;
9600         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
9601             vn_replace_VkPhysicalDeviceRobustness2FeaturesEXT_handle_self((VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
9602             break;
9603         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
9604             vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext);
9605             break;
9606         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
9607             vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
9608             break;
9609         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
9610             vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
9611             break;
9612         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
9613             vn_replace_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_handle_self((VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
9614             break;
9615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
9616             vn_replace_VkPhysicalDeviceDepthClipControlFeaturesEXT_handle_self((VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
9617             break;
9618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
9619             vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext);
9620             break;
9621         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
9622             vn_replace_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_handle_self((VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
9623             break;
9624         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
9625             vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
9626             break;
9627         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
9628             vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
9629             break;
9630         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
9631             vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
9632             break;
9633         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
9634             vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
9635             break;
9636         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
9637             vn_replace_VkPhysicalDeviceImageViewMinLodFeaturesEXT_handle_self((VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
9638             break;
9639         default:
9640             /* ignore unknown/unsupported struct */
9641             break;
9642         }
9643         pnext = pnext->pNext;
9644     } while (pnext);
9645 }
9646 
9647 /* struct VkPhysicalDeviceMultiDrawPropertiesEXT chain */
9648 
9649 static inline void
vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)9650 vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
9651 {
9652     /* no known/supported struct */
9653     vn_encode_simple_pointer(enc, NULL);
9654 }
9655 
9656 static inline void
vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiDrawPropertiesEXT * val)9657 vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiDrawPropertiesEXT *val)
9658 {
9659     /* skip val->{sType,pNext} */
9660     vn_encode_uint32_t(enc, &val->maxMultiDrawCount);
9661 }
9662 
9663 static inline void
vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiDrawPropertiesEXT * val)9664 vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiDrawPropertiesEXT *val)
9665 {
9666     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT);
9667     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT });
9668     vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext(enc, val->pNext);
9669     vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self(enc, val);
9670 }
9671 
9672 static inline void *
vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)9673 vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
9674 {
9675     /* no known/supported struct */
9676     if (vn_decode_simple_pointer(dec))
9677         vn_cs_decoder_set_fatal(dec);
9678     return NULL;
9679 }
9680 
9681 static inline void
vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawPropertiesEXT * val)9682 vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawPropertiesEXT *val)
9683 {
9684     /* skip val->{sType,pNext} */
9685     /* skip val->maxMultiDrawCount */
9686 }
9687 
9688 static inline void
vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiDrawPropertiesEXT * val)9689 vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiDrawPropertiesEXT *val)
9690 {
9691     VkStructureType stype;
9692     vn_decode_VkStructureType(dec, &stype);
9693     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT)
9694         vn_cs_decoder_set_fatal(dec);
9695 
9696     val->sType = stype;
9697     val->pNext = vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_pnext_partial_temp(dec);
9698     vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial_temp(dec, val);
9699 }
9700 
9701 /* struct VkPhysicalDevicePushDescriptorPropertiesKHR chain */
9702 
9703 static inline void
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(struct vn_cs_encoder * enc,const void * val)9704 vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(struct vn_cs_encoder *enc, const void *val)
9705 {
9706     /* no known/supported struct */
9707     vn_encode_simple_pointer(enc, NULL);
9708 }
9709 
9710 static inline void
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePushDescriptorPropertiesKHR * val)9711 vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
9712 {
9713     /* skip val->{sType,pNext} */
9714     vn_encode_uint32_t(enc, &val->maxPushDescriptors);
9715 }
9716 
9717 static inline void
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR(struct vn_cs_encoder * enc,const VkPhysicalDevicePushDescriptorPropertiesKHR * val)9718 vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR(struct vn_cs_encoder *enc, const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
9719 {
9720     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR);
9721     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR });
9722     vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(enc, val->pNext);
9723     vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(enc, val);
9724 }
9725 
9726 static inline void *
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial_temp(struct vn_cs_decoder * dec)9727 vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial_temp(struct vn_cs_decoder *dec)
9728 {
9729     /* no known/supported struct */
9730     if (vn_decode_simple_pointer(dec))
9731         vn_cs_decoder_set_fatal(dec);
9732     return NULL;
9733 }
9734 
9735 static inline void
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePushDescriptorPropertiesKHR * val)9736 vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePushDescriptorPropertiesKHR *val)
9737 {
9738     /* skip val->{sType,pNext} */
9739     /* skip val->maxPushDescriptors */
9740 }
9741 
9742 static inline void
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePushDescriptorPropertiesKHR * val)9743 vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePushDescriptorPropertiesKHR *val)
9744 {
9745     VkStructureType stype;
9746     vn_decode_VkStructureType(dec, &stype);
9747     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR)
9748         vn_cs_decoder_set_fatal(dec);
9749 
9750     val->sType = stype;
9751     val->pNext = vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial_temp(dec);
9752     vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial_temp(dec, val);
9753 }
9754 
9755 /* struct VkConformanceVersion */
9756 
9757 static inline void
vn_encode_VkConformanceVersion(struct vn_cs_encoder * enc,const VkConformanceVersion * val)9758 vn_encode_VkConformanceVersion(struct vn_cs_encoder *enc, const VkConformanceVersion *val)
9759 {
9760     vn_encode_uint8_t(enc, &val->major);
9761     vn_encode_uint8_t(enc, &val->minor);
9762     vn_encode_uint8_t(enc, &val->subminor);
9763     vn_encode_uint8_t(enc, &val->patch);
9764 }
9765 
9766 static inline void
vn_decode_VkConformanceVersion_partial_temp(struct vn_cs_decoder * dec,VkConformanceVersion * val)9767 vn_decode_VkConformanceVersion_partial_temp(struct vn_cs_decoder *dec, VkConformanceVersion *val)
9768 {
9769     /* skip val->major */
9770     /* skip val->minor */
9771     /* skip val->subminor */
9772     /* skip val->patch */
9773 }
9774 
9775 /* struct VkPhysicalDeviceDriverProperties chain */
9776 
9777 static inline void
vn_encode_VkPhysicalDeviceDriverProperties_pnext(struct vn_cs_encoder * enc,const void * val)9778 vn_encode_VkPhysicalDeviceDriverProperties_pnext(struct vn_cs_encoder *enc, const void *val)
9779 {
9780     /* no known/supported struct */
9781     vn_encode_simple_pointer(enc, NULL);
9782 }
9783 
9784 static inline void
vn_encode_VkPhysicalDeviceDriverProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDriverProperties * val)9785 vn_encode_VkPhysicalDeviceDriverProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDriverProperties *val)
9786 {
9787     /* skip val->{sType,pNext} */
9788     vn_encode_VkDriverId(enc, &val->driverID);
9789     vn_encode_array_size(enc, VK_MAX_DRIVER_NAME_SIZE);
9790     vn_encode_char_array(enc, val->driverName, VK_MAX_DRIVER_NAME_SIZE);
9791     vn_encode_array_size(enc, VK_MAX_DRIVER_INFO_SIZE);
9792     vn_encode_char_array(enc, val->driverInfo, VK_MAX_DRIVER_INFO_SIZE);
9793     vn_encode_VkConformanceVersion(enc, &val->conformanceVersion);
9794 }
9795 
9796 static inline void
vn_encode_VkPhysicalDeviceDriverProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceDriverProperties * val)9797 vn_encode_VkPhysicalDeviceDriverProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceDriverProperties *val)
9798 {
9799     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES);
9800     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES });
9801     vn_encode_VkPhysicalDeviceDriverProperties_pnext(enc, val->pNext);
9802     vn_encode_VkPhysicalDeviceDriverProperties_self(enc, val);
9803 }
9804 
9805 static inline void *
vn_decode_VkPhysicalDeviceDriverProperties_pnext_partial_temp(struct vn_cs_decoder * dec)9806 vn_decode_VkPhysicalDeviceDriverProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
9807 {
9808     /* no known/supported struct */
9809     if (vn_decode_simple_pointer(dec))
9810         vn_cs_decoder_set_fatal(dec);
9811     return NULL;
9812 }
9813 
9814 static inline void
vn_decode_VkPhysicalDeviceDriverProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDriverProperties * val)9815 vn_decode_VkPhysicalDeviceDriverProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDriverProperties *val)
9816 {
9817     /* skip val->{sType,pNext} */
9818     /* skip val->driverID */
9819     /* skip val->driverName */
9820     /* skip val->driverInfo */
9821     vn_decode_VkConformanceVersion_partial_temp(dec, &val->conformanceVersion);
9822 }
9823 
9824 static inline void
vn_decode_VkPhysicalDeviceDriverProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDriverProperties * val)9825 vn_decode_VkPhysicalDeviceDriverProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDriverProperties *val)
9826 {
9827     VkStructureType stype;
9828     vn_decode_VkStructureType(dec, &stype);
9829     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES)
9830         vn_cs_decoder_set_fatal(dec);
9831 
9832     val->sType = stype;
9833     val->pNext = vn_decode_VkPhysicalDeviceDriverProperties_pnext_partial_temp(dec);
9834     vn_decode_VkPhysicalDeviceDriverProperties_self_partial_temp(dec, val);
9835 }
9836 
9837 /* struct VkPhysicalDeviceIDProperties chain */
9838 
9839 static inline void
vn_encode_VkPhysicalDeviceIDProperties_pnext(struct vn_cs_encoder * enc,const void * val)9840 vn_encode_VkPhysicalDeviceIDProperties_pnext(struct vn_cs_encoder *enc, const void *val)
9841 {
9842     /* no known/supported struct */
9843     vn_encode_simple_pointer(enc, NULL);
9844 }
9845 
9846 static inline void
vn_encode_VkPhysicalDeviceIDProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceIDProperties * val)9847 vn_encode_VkPhysicalDeviceIDProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceIDProperties *val)
9848 {
9849     /* skip val->{sType,pNext} */
9850     vn_encode_array_size(enc, VK_UUID_SIZE);
9851     vn_encode_uint8_t_array(enc, val->deviceUUID, VK_UUID_SIZE);
9852     vn_encode_array_size(enc, VK_UUID_SIZE);
9853     vn_encode_uint8_t_array(enc, val->driverUUID, VK_UUID_SIZE);
9854     vn_encode_array_size(enc, VK_LUID_SIZE);
9855     vn_encode_uint8_t_array(enc, val->deviceLUID, VK_LUID_SIZE);
9856     vn_encode_uint32_t(enc, &val->deviceNodeMask);
9857     vn_encode_VkBool32(enc, &val->deviceLUIDValid);
9858 }
9859 
9860 static inline void
vn_encode_VkPhysicalDeviceIDProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceIDProperties * val)9861 vn_encode_VkPhysicalDeviceIDProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceIDProperties *val)
9862 {
9863     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES);
9864     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES });
9865     vn_encode_VkPhysicalDeviceIDProperties_pnext(enc, val->pNext);
9866     vn_encode_VkPhysicalDeviceIDProperties_self(enc, val);
9867 }
9868 
9869 static inline void *
vn_decode_VkPhysicalDeviceIDProperties_pnext_partial_temp(struct vn_cs_decoder * dec)9870 vn_decode_VkPhysicalDeviceIDProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
9871 {
9872     /* no known/supported struct */
9873     if (vn_decode_simple_pointer(dec))
9874         vn_cs_decoder_set_fatal(dec);
9875     return NULL;
9876 }
9877 
9878 static inline void
vn_decode_VkPhysicalDeviceIDProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIDProperties * val)9879 vn_decode_VkPhysicalDeviceIDProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIDProperties *val)
9880 {
9881     /* skip val->{sType,pNext} */
9882     /* skip val->deviceUUID */
9883     /* skip val->driverUUID */
9884     /* skip val->deviceLUID */
9885     /* skip val->deviceNodeMask */
9886     /* skip val->deviceLUIDValid */
9887 }
9888 
9889 static inline void
vn_decode_VkPhysicalDeviceIDProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceIDProperties * val)9890 vn_decode_VkPhysicalDeviceIDProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceIDProperties *val)
9891 {
9892     VkStructureType stype;
9893     vn_decode_VkStructureType(dec, &stype);
9894     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES)
9895         vn_cs_decoder_set_fatal(dec);
9896 
9897     val->sType = stype;
9898     val->pNext = vn_decode_VkPhysicalDeviceIDProperties_pnext_partial_temp(dec);
9899     vn_decode_VkPhysicalDeviceIDProperties_self_partial_temp(dec, val);
9900 }
9901 
9902 /* struct VkPhysicalDeviceMultiviewProperties chain */
9903 
9904 static inline void
vn_encode_VkPhysicalDeviceMultiviewProperties_pnext(struct vn_cs_encoder * enc,const void * val)9905 vn_encode_VkPhysicalDeviceMultiviewProperties_pnext(struct vn_cs_encoder *enc, const void *val)
9906 {
9907     /* no known/supported struct */
9908     vn_encode_simple_pointer(enc, NULL);
9909 }
9910 
9911 static inline void
vn_encode_VkPhysicalDeviceMultiviewProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiviewProperties * val)9912 vn_encode_VkPhysicalDeviceMultiviewProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewProperties *val)
9913 {
9914     /* skip val->{sType,pNext} */
9915     vn_encode_uint32_t(enc, &val->maxMultiviewViewCount);
9916     vn_encode_uint32_t(enc, &val->maxMultiviewInstanceIndex);
9917 }
9918 
9919 static inline void
vn_encode_VkPhysicalDeviceMultiviewProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceMultiviewProperties * val)9920 vn_encode_VkPhysicalDeviceMultiviewProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewProperties *val)
9921 {
9922     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES);
9923     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES });
9924     vn_encode_VkPhysicalDeviceMultiviewProperties_pnext(enc, val->pNext);
9925     vn_encode_VkPhysicalDeviceMultiviewProperties_self(enc, val);
9926 }
9927 
9928 static inline void *
vn_decode_VkPhysicalDeviceMultiviewProperties_pnext_partial_temp(struct vn_cs_decoder * dec)9929 vn_decode_VkPhysicalDeviceMultiviewProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
9930 {
9931     /* no known/supported struct */
9932     if (vn_decode_simple_pointer(dec))
9933         vn_cs_decoder_set_fatal(dec);
9934     return NULL;
9935 }
9936 
9937 static inline void
vn_decode_VkPhysicalDeviceMultiviewProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewProperties * val)9938 vn_decode_VkPhysicalDeviceMultiviewProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewProperties *val)
9939 {
9940     /* skip val->{sType,pNext} */
9941     /* skip val->maxMultiviewViewCount */
9942     /* skip val->maxMultiviewInstanceIndex */
9943 }
9944 
9945 static inline void
vn_decode_VkPhysicalDeviceMultiviewProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMultiviewProperties * val)9946 vn_decode_VkPhysicalDeviceMultiviewProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewProperties *val)
9947 {
9948     VkStructureType stype;
9949     vn_decode_VkStructureType(dec, &stype);
9950     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES)
9951         vn_cs_decoder_set_fatal(dec);
9952 
9953     val->sType = stype;
9954     val->pNext = vn_decode_VkPhysicalDeviceMultiviewProperties_pnext_partial_temp(dec);
9955     vn_decode_VkPhysicalDeviceMultiviewProperties_self_partial_temp(dec, val);
9956 }
9957 
9958 /* struct VkPhysicalDeviceSubgroupProperties chain */
9959 
9960 static inline void
vn_encode_VkPhysicalDeviceSubgroupProperties_pnext(struct vn_cs_encoder * enc,const void * val)9961 vn_encode_VkPhysicalDeviceSubgroupProperties_pnext(struct vn_cs_encoder *enc, const void *val)
9962 {
9963     /* no known/supported struct */
9964     vn_encode_simple_pointer(enc, NULL);
9965 }
9966 
9967 static inline void
vn_encode_VkPhysicalDeviceSubgroupProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupProperties * val)9968 vn_encode_VkPhysicalDeviceSubgroupProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupProperties *val)
9969 {
9970     /* skip val->{sType,pNext} */
9971     vn_encode_uint32_t(enc, &val->subgroupSize);
9972     vn_encode_VkFlags(enc, &val->supportedStages);
9973     vn_encode_VkFlags(enc, &val->supportedOperations);
9974     vn_encode_VkBool32(enc, &val->quadOperationsInAllStages);
9975 }
9976 
9977 static inline void
vn_encode_VkPhysicalDeviceSubgroupProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupProperties * val)9978 vn_encode_VkPhysicalDeviceSubgroupProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupProperties *val)
9979 {
9980     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES);
9981     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES });
9982     vn_encode_VkPhysicalDeviceSubgroupProperties_pnext(enc, val->pNext);
9983     vn_encode_VkPhysicalDeviceSubgroupProperties_self(enc, val);
9984 }
9985 
9986 static inline void *
vn_decode_VkPhysicalDeviceSubgroupProperties_pnext_partial_temp(struct vn_cs_decoder * dec)9987 vn_decode_VkPhysicalDeviceSubgroupProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
9988 {
9989     /* no known/supported struct */
9990     if (vn_decode_simple_pointer(dec))
9991         vn_cs_decoder_set_fatal(dec);
9992     return NULL;
9993 }
9994 
9995 static inline void
vn_decode_VkPhysicalDeviceSubgroupProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupProperties * val)9996 vn_decode_VkPhysicalDeviceSubgroupProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupProperties *val)
9997 {
9998     /* skip val->{sType,pNext} */
9999     /* skip val->subgroupSize */
10000     /* skip val->supportedStages */
10001     /* skip val->supportedOperations */
10002     /* skip val->quadOperationsInAllStages */
10003 }
10004 
10005 static inline void
vn_decode_VkPhysicalDeviceSubgroupProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupProperties * val)10006 vn_decode_VkPhysicalDeviceSubgroupProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupProperties *val)
10007 {
10008     VkStructureType stype;
10009     vn_decode_VkStructureType(dec, &stype);
10010     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES)
10011         vn_cs_decoder_set_fatal(dec);
10012 
10013     val->sType = stype;
10014     val->pNext = vn_decode_VkPhysicalDeviceSubgroupProperties_pnext_partial_temp(dec);
10015     vn_decode_VkPhysicalDeviceSubgroupProperties_self_partial_temp(dec, val);
10016 }
10017 
10018 /* struct VkPhysicalDevicePointClippingProperties chain */
10019 
10020 static inline void
vn_encode_VkPhysicalDevicePointClippingProperties_pnext(struct vn_cs_encoder * enc,const void * val)10021 vn_encode_VkPhysicalDevicePointClippingProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10022 {
10023     /* no known/supported struct */
10024     vn_encode_simple_pointer(enc, NULL);
10025 }
10026 
10027 static inline void
vn_encode_VkPhysicalDevicePointClippingProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePointClippingProperties * val)10028 vn_encode_VkPhysicalDevicePointClippingProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePointClippingProperties *val)
10029 {
10030     /* skip val->{sType,pNext} */
10031     vn_encode_VkPointClippingBehavior(enc, &val->pointClippingBehavior);
10032 }
10033 
10034 static inline void
vn_encode_VkPhysicalDevicePointClippingProperties(struct vn_cs_encoder * enc,const VkPhysicalDevicePointClippingProperties * val)10035 vn_encode_VkPhysicalDevicePointClippingProperties(struct vn_cs_encoder *enc, const VkPhysicalDevicePointClippingProperties *val)
10036 {
10037     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES);
10038     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES });
10039     vn_encode_VkPhysicalDevicePointClippingProperties_pnext(enc, val->pNext);
10040     vn_encode_VkPhysicalDevicePointClippingProperties_self(enc, val);
10041 }
10042 
10043 static inline void *
vn_decode_VkPhysicalDevicePointClippingProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10044 vn_decode_VkPhysicalDevicePointClippingProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10045 {
10046     /* no known/supported struct */
10047     if (vn_decode_simple_pointer(dec))
10048         vn_cs_decoder_set_fatal(dec);
10049     return NULL;
10050 }
10051 
10052 static inline void
vn_decode_VkPhysicalDevicePointClippingProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePointClippingProperties * val)10053 vn_decode_VkPhysicalDevicePointClippingProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePointClippingProperties *val)
10054 {
10055     /* skip val->{sType,pNext} */
10056     /* skip val->pointClippingBehavior */
10057 }
10058 
10059 static inline void
vn_decode_VkPhysicalDevicePointClippingProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePointClippingProperties * val)10060 vn_decode_VkPhysicalDevicePointClippingProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePointClippingProperties *val)
10061 {
10062     VkStructureType stype;
10063     vn_decode_VkStructureType(dec, &stype);
10064     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES)
10065         vn_cs_decoder_set_fatal(dec);
10066 
10067     val->sType = stype;
10068     val->pNext = vn_decode_VkPhysicalDevicePointClippingProperties_pnext_partial_temp(dec);
10069     vn_decode_VkPhysicalDevicePointClippingProperties_self_partial_temp(dec, val);
10070 }
10071 
10072 /* struct VkPhysicalDeviceProtectedMemoryProperties chain */
10073 
10074 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryProperties_pnext(struct vn_cs_encoder * enc,const void * val)10075 vn_encode_VkPhysicalDeviceProtectedMemoryProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10076 {
10077     /* no known/supported struct */
10078     vn_encode_simple_pointer(enc, NULL);
10079 }
10080 
10081 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceProtectedMemoryProperties * val)10082 vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryProperties *val)
10083 {
10084     /* skip val->{sType,pNext} */
10085     vn_encode_VkBool32(enc, &val->protectedNoFault);
10086 }
10087 
10088 static inline void
vn_encode_VkPhysicalDeviceProtectedMemoryProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceProtectedMemoryProperties * val)10089 vn_encode_VkPhysicalDeviceProtectedMemoryProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryProperties *val)
10090 {
10091     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES);
10092     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES });
10093     vn_encode_VkPhysicalDeviceProtectedMemoryProperties_pnext(enc, val->pNext);
10094     vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self(enc, val);
10095 }
10096 
10097 static inline void *
vn_decode_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10098 vn_decode_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10099 {
10100     /* no known/supported struct */
10101     if (vn_decode_simple_pointer(dec))
10102         vn_cs_decoder_set_fatal(dec);
10103     return NULL;
10104 }
10105 
10106 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryProperties * val)10107 vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryProperties *val)
10108 {
10109     /* skip val->{sType,pNext} */
10110     /* skip val->protectedNoFault */
10111 }
10112 
10113 static inline void
vn_decode_VkPhysicalDeviceProtectedMemoryProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProtectedMemoryProperties * val)10114 vn_decode_VkPhysicalDeviceProtectedMemoryProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryProperties *val)
10115 {
10116     VkStructureType stype;
10117     vn_decode_VkStructureType(dec, &stype);
10118     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES)
10119         vn_cs_decoder_set_fatal(dec);
10120 
10121     val->sType = stype;
10122     val->pNext = vn_decode_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial_temp(dec);
10123     vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self_partial_temp(dec, val);
10124 }
10125 
10126 /* struct VkPhysicalDeviceSamplerFilterMinmaxProperties chain */
10127 
10128 static inline void
vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(struct vn_cs_encoder * enc,const void * val)10129 vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10130 {
10131     /* no known/supported struct */
10132     vn_encode_simple_pointer(enc, NULL);
10133 }
10134 
10135 static inline void
vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSamplerFilterMinmaxProperties * val)10136 vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
10137 {
10138     /* skip val->{sType,pNext} */
10139     vn_encode_VkBool32(enc, &val->filterMinmaxSingleComponentFormats);
10140     vn_encode_VkBool32(enc, &val->filterMinmaxImageComponentMapping);
10141 }
10142 
10143 static inline void
vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceSamplerFilterMinmaxProperties * val)10144 vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
10145 {
10146     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES);
10147     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES });
10148     vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(enc, val->pNext);
10149     vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(enc, val);
10150 }
10151 
10152 static inline void *
vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10153 vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10154 {
10155     /* no known/supported struct */
10156     if (vn_decode_simple_pointer(dec))
10157         vn_cs_decoder_set_fatal(dec);
10158     return NULL;
10159 }
10160 
10161 static inline void
vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerFilterMinmaxProperties * val)10162 vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
10163 {
10164     /* skip val->{sType,pNext} */
10165     /* skip val->filterMinmaxSingleComponentFormats */
10166     /* skip val->filterMinmaxImageComponentMapping */
10167 }
10168 
10169 static inline void
vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSamplerFilterMinmaxProperties * val)10170 vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
10171 {
10172     VkStructureType stype;
10173     vn_decode_VkStructureType(dec, &stype);
10174     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES)
10175         vn_cs_decoder_set_fatal(dec);
10176 
10177     val->sType = stype;
10178     val->pNext = vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial_temp(dec);
10179     vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(dec, val);
10180 }
10181 
10182 /* struct VkPhysicalDeviceInlineUniformBlockProperties chain */
10183 
10184 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(struct vn_cs_encoder * enc,const void * val)10185 vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10186 {
10187     /* no known/supported struct */
10188     vn_encode_simple_pointer(enc, NULL);
10189 }
10190 
10191 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceInlineUniformBlockProperties * val)10192 vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val)
10193 {
10194     /* skip val->{sType,pNext} */
10195     vn_encode_uint32_t(enc, &val->maxInlineUniformBlockSize);
10196     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorInlineUniformBlocks);
10197     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
10198     vn_encode_uint32_t(enc, &val->maxDescriptorSetInlineUniformBlocks);
10199     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
10200 }
10201 
10202 static inline void
vn_encode_VkPhysicalDeviceInlineUniformBlockProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceInlineUniformBlockProperties * val)10203 vn_encode_VkPhysicalDeviceInlineUniformBlockProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val)
10204 {
10205     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES);
10206     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES });
10207     vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(enc, val->pNext);
10208     vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(enc, val);
10209 }
10210 
10211 static inline void *
vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10212 vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10213 {
10214     /* no known/supported struct */
10215     if (vn_decode_simple_pointer(dec))
10216         vn_cs_decoder_set_fatal(dec);
10217     return NULL;
10218 }
10219 
10220 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockProperties * val)10221 vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val)
10222 {
10223     /* skip val->{sType,pNext} */
10224     /* skip val->maxInlineUniformBlockSize */
10225     /* skip val->maxPerStageDescriptorInlineUniformBlocks */
10226     /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
10227     /* skip val->maxDescriptorSetInlineUniformBlocks */
10228     /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
10229 }
10230 
10231 static inline void
vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceInlineUniformBlockProperties * val)10232 vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val)
10233 {
10234     VkStructureType stype;
10235     vn_decode_VkStructureType(dec, &stype);
10236     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)
10237         vn_cs_decoder_set_fatal(dec);
10238 
10239     val->sType = stype;
10240     val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial_temp(dec);
10241     vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(dec, val);
10242 }
10243 
10244 /* struct VkPhysicalDeviceMaintenance3Properties chain */
10245 
10246 static inline void
vn_encode_VkPhysicalDeviceMaintenance3Properties_pnext(struct vn_cs_encoder * enc,const void * val)10247 vn_encode_VkPhysicalDeviceMaintenance3Properties_pnext(struct vn_cs_encoder *enc, const void *val)
10248 {
10249     /* no known/supported struct */
10250     vn_encode_simple_pointer(enc, NULL);
10251 }
10252 
10253 static inline void
vn_encode_VkPhysicalDeviceMaintenance3Properties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance3Properties * val)10254 vn_encode_VkPhysicalDeviceMaintenance3Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance3Properties *val)
10255 {
10256     /* skip val->{sType,pNext} */
10257     vn_encode_uint32_t(enc, &val->maxPerSetDescriptors);
10258     vn_encode_VkDeviceSize(enc, &val->maxMemoryAllocationSize);
10259 }
10260 
10261 static inline void
vn_encode_VkPhysicalDeviceMaintenance3Properties(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance3Properties * val)10262 vn_encode_VkPhysicalDeviceMaintenance3Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance3Properties *val)
10263 {
10264     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES);
10265     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES });
10266     vn_encode_VkPhysicalDeviceMaintenance3Properties_pnext(enc, val->pNext);
10267     vn_encode_VkPhysicalDeviceMaintenance3Properties_self(enc, val);
10268 }
10269 
10270 static inline void *
vn_decode_VkPhysicalDeviceMaintenance3Properties_pnext_partial_temp(struct vn_cs_decoder * dec)10271 vn_decode_VkPhysicalDeviceMaintenance3Properties_pnext_partial_temp(struct vn_cs_decoder *dec)
10272 {
10273     /* no known/supported struct */
10274     if (vn_decode_simple_pointer(dec))
10275         vn_cs_decoder_set_fatal(dec);
10276     return NULL;
10277 }
10278 
10279 static inline void
vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance3Properties * val)10280 vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance3Properties *val)
10281 {
10282     /* skip val->{sType,pNext} */
10283     /* skip val->maxPerSetDescriptors */
10284     /* skip val->maxMemoryAllocationSize */
10285 }
10286 
10287 static inline void
vn_decode_VkPhysicalDeviceMaintenance3Properties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance3Properties * val)10288 vn_decode_VkPhysicalDeviceMaintenance3Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance3Properties *val)
10289 {
10290     VkStructureType stype;
10291     vn_decode_VkStructureType(dec, &stype);
10292     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES)
10293         vn_cs_decoder_set_fatal(dec);
10294 
10295     val->sType = stype;
10296     val->pNext = vn_decode_VkPhysicalDeviceMaintenance3Properties_pnext_partial_temp(dec);
10297     vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(dec, val);
10298 }
10299 
10300 /* struct VkPhysicalDeviceMaintenance4Properties chain */
10301 
10302 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext(struct vn_cs_encoder * enc,const void * val)10303 vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext(struct vn_cs_encoder *enc, const void *val)
10304 {
10305     /* no known/supported struct */
10306     vn_encode_simple_pointer(enc, NULL);
10307 }
10308 
10309 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Properties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance4Properties * val)10310 vn_encode_VkPhysicalDeviceMaintenance4Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val)
10311 {
10312     /* skip val->{sType,pNext} */
10313     vn_encode_VkDeviceSize(enc, &val->maxBufferSize);
10314 }
10315 
10316 static inline void
vn_encode_VkPhysicalDeviceMaintenance4Properties(struct vn_cs_encoder * enc,const VkPhysicalDeviceMaintenance4Properties * val)10317 vn_encode_VkPhysicalDeviceMaintenance4Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val)
10318 {
10319     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES);
10320     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES });
10321     vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext(enc, val->pNext);
10322     vn_encode_VkPhysicalDeviceMaintenance4Properties_self(enc, val);
10323 }
10324 
10325 static inline void *
vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext_partial_temp(struct vn_cs_decoder * dec)10326 vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext_partial_temp(struct vn_cs_decoder *dec)
10327 {
10328     /* no known/supported struct */
10329     if (vn_decode_simple_pointer(dec))
10330         vn_cs_decoder_set_fatal(dec);
10331     return NULL;
10332 }
10333 
10334 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Properties * val)10335 vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val)
10336 {
10337     /* skip val->{sType,pNext} */
10338     /* skip val->maxBufferSize */
10339 }
10340 
10341 static inline void
vn_decode_VkPhysicalDeviceMaintenance4Properties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMaintenance4Properties * val)10342 vn_decode_VkPhysicalDeviceMaintenance4Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val)
10343 {
10344     VkStructureType stype;
10345     vn_decode_VkStructureType(dec, &stype);
10346     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)
10347         vn_cs_decoder_set_fatal(dec);
10348 
10349     val->sType = stype;
10350     val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext_partial_temp(dec);
10351     vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(dec, val);
10352 }
10353 
10354 /* struct VkPhysicalDeviceFloatControlsProperties chain */
10355 
10356 static inline void
vn_encode_VkPhysicalDeviceFloatControlsProperties_pnext(struct vn_cs_encoder * enc,const void * val)10357 vn_encode_VkPhysicalDeviceFloatControlsProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10358 {
10359     /* no known/supported struct */
10360     vn_encode_simple_pointer(enc, NULL);
10361 }
10362 
10363 static inline void
vn_encode_VkPhysicalDeviceFloatControlsProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceFloatControlsProperties * val)10364 vn_encode_VkPhysicalDeviceFloatControlsProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceFloatControlsProperties *val)
10365 {
10366     /* skip val->{sType,pNext} */
10367     vn_encode_VkShaderFloatControlsIndependence(enc, &val->denormBehaviorIndependence);
10368     vn_encode_VkShaderFloatControlsIndependence(enc, &val->roundingModeIndependence);
10369     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat16);
10370     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat32);
10371     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat64);
10372     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat16);
10373     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat32);
10374     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat64);
10375     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat16);
10376     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat32);
10377     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat64);
10378     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat16);
10379     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat32);
10380     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat64);
10381     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat16);
10382     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat32);
10383     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat64);
10384 }
10385 
10386 static inline void
vn_encode_VkPhysicalDeviceFloatControlsProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceFloatControlsProperties * val)10387 vn_encode_VkPhysicalDeviceFloatControlsProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceFloatControlsProperties *val)
10388 {
10389     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES);
10390     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES });
10391     vn_encode_VkPhysicalDeviceFloatControlsProperties_pnext(enc, val->pNext);
10392     vn_encode_VkPhysicalDeviceFloatControlsProperties_self(enc, val);
10393 }
10394 
10395 static inline void *
vn_decode_VkPhysicalDeviceFloatControlsProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10396 vn_decode_VkPhysicalDeviceFloatControlsProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10397 {
10398     /* no known/supported struct */
10399     if (vn_decode_simple_pointer(dec))
10400         vn_cs_decoder_set_fatal(dec);
10401     return NULL;
10402 }
10403 
10404 static inline void
vn_decode_VkPhysicalDeviceFloatControlsProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFloatControlsProperties * val)10405 vn_decode_VkPhysicalDeviceFloatControlsProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFloatControlsProperties *val)
10406 {
10407     /* skip val->{sType,pNext} */
10408     /* skip val->denormBehaviorIndependence */
10409     /* skip val->roundingModeIndependence */
10410     /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
10411     /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
10412     /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
10413     /* skip val->shaderDenormPreserveFloat16 */
10414     /* skip val->shaderDenormPreserveFloat32 */
10415     /* skip val->shaderDenormPreserveFloat64 */
10416     /* skip val->shaderDenormFlushToZeroFloat16 */
10417     /* skip val->shaderDenormFlushToZeroFloat32 */
10418     /* skip val->shaderDenormFlushToZeroFloat64 */
10419     /* skip val->shaderRoundingModeRTEFloat16 */
10420     /* skip val->shaderRoundingModeRTEFloat32 */
10421     /* skip val->shaderRoundingModeRTEFloat64 */
10422     /* skip val->shaderRoundingModeRTZFloat16 */
10423     /* skip val->shaderRoundingModeRTZFloat32 */
10424     /* skip val->shaderRoundingModeRTZFloat64 */
10425 }
10426 
10427 static inline void
vn_decode_VkPhysicalDeviceFloatControlsProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceFloatControlsProperties * val)10428 vn_decode_VkPhysicalDeviceFloatControlsProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceFloatControlsProperties *val)
10429 {
10430     VkStructureType stype;
10431     vn_decode_VkStructureType(dec, &stype);
10432     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES)
10433         vn_cs_decoder_set_fatal(dec);
10434 
10435     val->sType = stype;
10436     val->pNext = vn_decode_VkPhysicalDeviceFloatControlsProperties_pnext_partial_temp(dec);
10437     vn_decode_VkPhysicalDeviceFloatControlsProperties_self_partial_temp(dec, val);
10438 }
10439 
10440 /* struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT chain */
10441 
10442 static inline void
vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)10443 vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
10444 {
10445     /* no known/supported struct */
10446     vn_encode_simple_pointer(enc, NULL);
10447 }
10448 
10449 static inline void
vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * val)10450 vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
10451 {
10452     /* skip val->{sType,pNext} */
10453     vn_encode_float(enc, &val->primitiveOverestimationSize);
10454     vn_encode_float(enc, &val->maxExtraPrimitiveOverestimationSize);
10455     vn_encode_float(enc, &val->extraPrimitiveOverestimationSizeGranularity);
10456     vn_encode_VkBool32(enc, &val->primitiveUnderestimation);
10457     vn_encode_VkBool32(enc, &val->conservativePointAndLineRasterization);
10458     vn_encode_VkBool32(enc, &val->degenerateTrianglesRasterized);
10459     vn_encode_VkBool32(enc, &val->degenerateLinesRasterized);
10460     vn_encode_VkBool32(enc, &val->fullyCoveredFragmentShaderInputVariable);
10461     vn_encode_VkBool32(enc, &val->conservativeRasterizationPostDepthCoverage);
10462 }
10463 
10464 static inline void
vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * val)10465 vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
10466 {
10467     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT);
10468     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT });
10469     vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(enc, val->pNext);
10470     vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(enc, val);
10471 }
10472 
10473 static inline void *
vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)10474 vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
10475 {
10476     /* no known/supported struct */
10477     if (vn_decode_simple_pointer(dec))
10478         vn_cs_decoder_set_fatal(dec);
10479     return NULL;
10480 }
10481 
10482 static inline void
vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConservativeRasterizationPropertiesEXT * val)10483 vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
10484 {
10485     /* skip val->{sType,pNext} */
10486     /* skip val->primitiveOverestimationSize */
10487     /* skip val->maxExtraPrimitiveOverestimationSize */
10488     /* skip val->extraPrimitiveOverestimationSizeGranularity */
10489     /* skip val->primitiveUnderestimation */
10490     /* skip val->conservativePointAndLineRasterization */
10491     /* skip val->degenerateTrianglesRasterized */
10492     /* skip val->degenerateLinesRasterized */
10493     /* skip val->fullyCoveredFragmentShaderInputVariable */
10494     /* skip val->conservativeRasterizationPostDepthCoverage */
10495 }
10496 
10497 static inline void
vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceConservativeRasterizationPropertiesEXT * val)10498 vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
10499 {
10500     VkStructureType stype;
10501     vn_decode_VkStructureType(dec, &stype);
10502     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT)
10503         vn_cs_decoder_set_fatal(dec);
10504 
10505     val->sType = stype;
10506     val->pNext = vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial_temp(dec);
10507     vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial_temp(dec, val);
10508 }
10509 
10510 /* struct VkPhysicalDeviceDescriptorIndexingProperties chain */
10511 
10512 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_pnext(struct vn_cs_encoder * enc,const void * val)10513 vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10514 {
10515     /* no known/supported struct */
10516     vn_encode_simple_pointer(enc, NULL);
10517 }
10518 
10519 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDescriptorIndexingProperties * val)10520 vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingProperties *val)
10521 {
10522     /* skip val->{sType,pNext} */
10523     vn_encode_uint32_t(enc, &val->maxUpdateAfterBindDescriptorsInAllPools);
10524     vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexingNative);
10525     vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexingNative);
10526     vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexingNative);
10527     vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexingNative);
10528     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexingNative);
10529     vn_encode_VkBool32(enc, &val->robustBufferAccessUpdateAfterBind);
10530     vn_encode_VkBool32(enc, &val->quadDivergentImplicitLod);
10531     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindSamplers);
10532     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
10533     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
10534     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindSampledImages);
10535     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindStorageImages);
10536     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
10537     vn_encode_uint32_t(enc, &val->maxPerStageUpdateAfterBindResources);
10538     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindSamplers);
10539     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindUniformBuffers);
10540     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
10541     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageBuffers);
10542     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
10543     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindSampledImages);
10544     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageImages);
10545     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInputAttachments);
10546 }
10547 
10548 static inline void
vn_encode_VkPhysicalDeviceDescriptorIndexingProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceDescriptorIndexingProperties * val)10549 vn_encode_VkPhysicalDeviceDescriptorIndexingProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingProperties *val)
10550 {
10551     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES);
10552     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES });
10553     vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_pnext(enc, val->pNext);
10554     vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self(enc, val);
10555 }
10556 
10557 static inline void *
vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10558 vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10559 {
10560     /* no known/supported struct */
10561     if (vn_decode_simple_pointer(dec))
10562         vn_cs_decoder_set_fatal(dec);
10563     return NULL;
10564 }
10565 
10566 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingProperties * val)10567 vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingProperties *val)
10568 {
10569     /* skip val->{sType,pNext} */
10570     /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
10571     /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
10572     /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
10573     /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
10574     /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
10575     /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
10576     /* skip val->robustBufferAccessUpdateAfterBind */
10577     /* skip val->quadDivergentImplicitLod */
10578     /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
10579     /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
10580     /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
10581     /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
10582     /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
10583     /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
10584     /* skip val->maxPerStageUpdateAfterBindResources */
10585     /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
10586     /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
10587     /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
10588     /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
10589     /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
10590     /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
10591     /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
10592     /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
10593 }
10594 
10595 static inline void
vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDescriptorIndexingProperties * val)10596 vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingProperties *val)
10597 {
10598     VkStructureType stype;
10599     vn_decode_VkStructureType(dec, &stype);
10600     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES)
10601         vn_cs_decoder_set_fatal(dec);
10602 
10603     val->sType = stype;
10604     val->pNext = vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial_temp(dec);
10605     vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial_temp(dec, val);
10606 }
10607 
10608 /* struct VkPhysicalDeviceTimelineSemaphoreProperties chain */
10609 
10610 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(struct vn_cs_encoder * enc,const void * val)10611 vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10612 {
10613     /* no known/supported struct */
10614     vn_encode_simple_pointer(enc, NULL);
10615 }
10616 
10617 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTimelineSemaphoreProperties * val)10618 vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreProperties *val)
10619 {
10620     /* skip val->{sType,pNext} */
10621     vn_encode_uint64_t(enc, &val->maxTimelineSemaphoreValueDifference);
10622 }
10623 
10624 static inline void
vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceTimelineSemaphoreProperties * val)10625 vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreProperties *val)
10626 {
10627     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES);
10628     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES });
10629     vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(enc, val->pNext);
10630     vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self(enc, val);
10631 }
10632 
10633 static inline void *
vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10634 vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10635 {
10636     /* no known/supported struct */
10637     if (vn_decode_simple_pointer(dec))
10638         vn_cs_decoder_set_fatal(dec);
10639     return NULL;
10640 }
10641 
10642 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreProperties * val)10643 vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreProperties *val)
10644 {
10645     /* skip val->{sType,pNext} */
10646     /* skip val->maxTimelineSemaphoreValueDifference */
10647 }
10648 
10649 static inline void
vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTimelineSemaphoreProperties * val)10650 vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreProperties *val)
10651 {
10652     VkStructureType stype;
10653     vn_decode_VkStructureType(dec, &stype);
10654     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES)
10655         vn_cs_decoder_set_fatal(dec);
10656 
10657     val->sType = stype;
10658     val->pNext = vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial_temp(dec);
10659     vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial_temp(dec, val);
10660 }
10661 
10662 /* struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT chain */
10663 
10664 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)10665 vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
10666 {
10667     /* no known/supported struct */
10668     vn_encode_simple_pointer(enc, NULL);
10669 }
10670 
10671 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * val)10672 vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
10673 {
10674     /* skip val->{sType,pNext} */
10675     vn_encode_uint32_t(enc, &val->maxVertexAttribDivisor);
10676 }
10677 
10678 static inline void
vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * val)10679 vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
10680 {
10681     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT);
10682     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT });
10683     vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(enc, val->pNext);
10684     vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(enc, val);
10685 }
10686 
10687 static inline void *
vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)10688 vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
10689 {
10690     /* no known/supported struct */
10691     if (vn_decode_simple_pointer(dec))
10692         vn_cs_decoder_set_fatal(dec);
10693     return NULL;
10694 }
10695 
10696 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * val)10697 vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
10698 {
10699     /* skip val->{sType,pNext} */
10700     /* skip val->maxVertexAttribDivisor */
10701 }
10702 
10703 static inline void
vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * val)10704 vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
10705 {
10706     VkStructureType stype;
10707     vn_decode_VkStructureType(dec, &stype);
10708     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT)
10709         vn_cs_decoder_set_fatal(dec);
10710 
10711     val->sType = stype;
10712     val->pNext = vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial_temp(dec);
10713     vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial_temp(dec, val);
10714 }
10715 
10716 /* struct VkPhysicalDevicePCIBusInfoPropertiesEXT chain */
10717 
10718 static inline void
vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)10719 vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
10720 {
10721     /* no known/supported struct */
10722     vn_encode_simple_pointer(enc, NULL);
10723 }
10724 
10725 static inline void
vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDevicePCIBusInfoPropertiesEXT * val)10726 vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePCIBusInfoPropertiesEXT *val)
10727 {
10728     /* skip val->{sType,pNext} */
10729     vn_encode_uint32_t(enc, &val->pciDomain);
10730     vn_encode_uint32_t(enc, &val->pciBus);
10731     vn_encode_uint32_t(enc, &val->pciDevice);
10732     vn_encode_uint32_t(enc, &val->pciFunction);
10733 }
10734 
10735 static inline void
vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDevicePCIBusInfoPropertiesEXT * val)10736 vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevicePCIBusInfoPropertiesEXT *val)
10737 {
10738     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT);
10739     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT });
10740     vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext(enc, val->pNext);
10741     vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self(enc, val);
10742 }
10743 
10744 static inline void *
vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)10745 vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
10746 {
10747     /* no known/supported struct */
10748     if (vn_decode_simple_pointer(dec))
10749         vn_cs_decoder_set_fatal(dec);
10750     return NULL;
10751 }
10752 
10753 static inline void
vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePCIBusInfoPropertiesEXT * val)10754 vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePCIBusInfoPropertiesEXT *val)
10755 {
10756     /* skip val->{sType,pNext} */
10757     /* skip val->pciDomain */
10758     /* skip val->pciBus */
10759     /* skip val->pciDevice */
10760     /* skip val->pciFunction */
10761 }
10762 
10763 static inline void
vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDevicePCIBusInfoPropertiesEXT * val)10764 vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePCIBusInfoPropertiesEXT *val)
10765 {
10766     VkStructureType stype;
10767     vn_decode_VkStructureType(dec, &stype);
10768     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT)
10769         vn_cs_decoder_set_fatal(dec);
10770 
10771     val->sType = stype;
10772     val->pNext = vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_pnext_partial_temp(dec);
10773     vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self_partial_temp(dec, val);
10774 }
10775 
10776 /* struct VkPhysicalDeviceDepthStencilResolveProperties chain */
10777 
10778 static inline void
vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_pnext(struct vn_cs_encoder * enc,const void * val)10779 vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10780 {
10781     /* no known/supported struct */
10782     vn_encode_simple_pointer(enc, NULL);
10783 }
10784 
10785 static inline void
vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthStencilResolveProperties * val)10786 vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthStencilResolveProperties *val)
10787 {
10788     /* skip val->{sType,pNext} */
10789     vn_encode_VkFlags(enc, &val->supportedDepthResolveModes);
10790     vn_encode_VkFlags(enc, &val->supportedStencilResolveModes);
10791     vn_encode_VkBool32(enc, &val->independentResolveNone);
10792     vn_encode_VkBool32(enc, &val->independentResolve);
10793 }
10794 
10795 static inline void
vn_encode_VkPhysicalDeviceDepthStencilResolveProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceDepthStencilResolveProperties * val)10796 vn_encode_VkPhysicalDeviceDepthStencilResolveProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthStencilResolveProperties *val)
10797 {
10798     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES);
10799     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES });
10800     vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_pnext(enc, val->pNext);
10801     vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(enc, val);
10802 }
10803 
10804 static inline void *
vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10805 vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10806 {
10807     /* no known/supported struct */
10808     if (vn_decode_simple_pointer(dec))
10809         vn_cs_decoder_set_fatal(dec);
10810     return NULL;
10811 }
10812 
10813 static inline void
vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthStencilResolveProperties * val)10814 vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthStencilResolveProperties *val)
10815 {
10816     /* skip val->{sType,pNext} */
10817     /* skip val->supportedDepthResolveModes */
10818     /* skip val->supportedStencilResolveModes */
10819     /* skip val->independentResolveNone */
10820     /* skip val->independentResolve */
10821 }
10822 
10823 static inline void
vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceDepthStencilResolveProperties * val)10824 vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthStencilResolveProperties *val)
10825 {
10826     VkStructureType stype;
10827     vn_decode_VkStructureType(dec, &stype);
10828     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES)
10829         vn_cs_decoder_set_fatal(dec);
10830 
10831     val->sType = stype;
10832     val->pNext = vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial_temp(dec);
10833     vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial_temp(dec, val);
10834 }
10835 
10836 /* struct VkPhysicalDeviceTransformFeedbackPropertiesEXT chain */
10837 
10838 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)10839 vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
10840 {
10841     /* no known/supported struct */
10842     vn_encode_simple_pointer(enc, NULL);
10843 }
10844 
10845 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * val)10846 vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
10847 {
10848     /* skip val->{sType,pNext} */
10849     vn_encode_uint32_t(enc, &val->maxTransformFeedbackStreams);
10850     vn_encode_uint32_t(enc, &val->maxTransformFeedbackBuffers);
10851     vn_encode_VkDeviceSize(enc, &val->maxTransformFeedbackBufferSize);
10852     vn_encode_uint32_t(enc, &val->maxTransformFeedbackStreamDataSize);
10853     vn_encode_uint32_t(enc, &val->maxTransformFeedbackBufferDataSize);
10854     vn_encode_uint32_t(enc, &val->maxTransformFeedbackBufferDataStride);
10855     vn_encode_VkBool32(enc, &val->transformFeedbackQueries);
10856     vn_encode_VkBool32(enc, &val->transformFeedbackStreamsLinesTriangles);
10857     vn_encode_VkBool32(enc, &val->transformFeedbackRasterizationStreamSelect);
10858     vn_encode_VkBool32(enc, &val->transformFeedbackDraw);
10859 }
10860 
10861 static inline void
vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * val)10862 vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
10863 {
10864     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT);
10865     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT });
10866     vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(enc, val->pNext);
10867     vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(enc, val);
10868 }
10869 
10870 static inline void *
vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)10871 vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
10872 {
10873     /* no known/supported struct */
10874     if (vn_decode_simple_pointer(dec))
10875         vn_cs_decoder_set_fatal(dec);
10876     return NULL;
10877 }
10878 
10879 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackPropertiesEXT * val)10880 vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
10881 {
10882     /* skip val->{sType,pNext} */
10883     /* skip val->maxTransformFeedbackStreams */
10884     /* skip val->maxTransformFeedbackBuffers */
10885     /* skip val->maxTransformFeedbackBufferSize */
10886     /* skip val->maxTransformFeedbackStreamDataSize */
10887     /* skip val->maxTransformFeedbackBufferDataSize */
10888     /* skip val->maxTransformFeedbackBufferDataStride */
10889     /* skip val->transformFeedbackQueries */
10890     /* skip val->transformFeedbackStreamsLinesTriangles */
10891     /* skip val->transformFeedbackRasterizationStreamSelect */
10892     /* skip val->transformFeedbackDraw */
10893 }
10894 
10895 static inline void
vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTransformFeedbackPropertiesEXT * val)10896 vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
10897 {
10898     VkStructureType stype;
10899     vn_decode_VkStructureType(dec, &stype);
10900     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT)
10901         vn_cs_decoder_set_fatal(dec);
10902 
10903     val->sType = stype;
10904     val->pNext = vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial_temp(dec);
10905     vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(dec, val);
10906 }
10907 
10908 /* struct VkPhysicalDeviceTexelBufferAlignmentProperties chain */
10909 
10910 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(struct vn_cs_encoder * enc,const void * val)10911 vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10912 {
10913     /* no known/supported struct */
10914     vn_encode_simple_pointer(enc, NULL);
10915 }
10916 
10917 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceTexelBufferAlignmentProperties * val)10918 vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
10919 {
10920     /* skip val->{sType,pNext} */
10921     vn_encode_VkDeviceSize(enc, &val->storageTexelBufferOffsetAlignmentBytes);
10922     vn_encode_VkBool32(enc, &val->storageTexelBufferOffsetSingleTexelAlignment);
10923     vn_encode_VkDeviceSize(enc, &val->uniformTexelBufferOffsetAlignmentBytes);
10924     vn_encode_VkBool32(enc, &val->uniformTexelBufferOffsetSingleTexelAlignment);
10925 }
10926 
10927 static inline void
vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceTexelBufferAlignmentProperties * val)10928 vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
10929 {
10930     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES);
10931     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES });
10932     vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(enc, val->pNext);
10933     vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(enc, val);
10934 }
10935 
10936 static inline void *
vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10937 vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10938 {
10939     /* no known/supported struct */
10940     if (vn_decode_simple_pointer(dec))
10941         vn_cs_decoder_set_fatal(dec);
10942     return NULL;
10943 }
10944 
10945 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentProperties * val)10946 vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val)
10947 {
10948     /* skip val->{sType,pNext} */
10949     /* skip val->storageTexelBufferOffsetAlignmentBytes */
10950     /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
10951     /* skip val->uniformTexelBufferOffsetAlignmentBytes */
10952     /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
10953 }
10954 
10955 static inline void
vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceTexelBufferAlignmentProperties * val)10956 vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val)
10957 {
10958     VkStructureType stype;
10959     vn_decode_VkStructureType(dec, &stype);
10960     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES)
10961         vn_cs_decoder_set_fatal(dec);
10962 
10963     val->sType = stype;
10964     val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial_temp(dec);
10965     vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(dec, val);
10966 }
10967 
10968 /* struct VkPhysicalDeviceSubgroupSizeControlProperties chain */
10969 
10970 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(struct vn_cs_encoder * enc,const void * val)10971 vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(struct vn_cs_encoder *enc, const void *val)
10972 {
10973     /* no known/supported struct */
10974     vn_encode_simple_pointer(enc, NULL);
10975 }
10976 
10977 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupSizeControlProperties * val)10978 vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val)
10979 {
10980     /* skip val->{sType,pNext} */
10981     vn_encode_uint32_t(enc, &val->minSubgroupSize);
10982     vn_encode_uint32_t(enc, &val->maxSubgroupSize);
10983     vn_encode_uint32_t(enc, &val->maxComputeWorkgroupSubgroups);
10984     vn_encode_VkFlags(enc, &val->requiredSubgroupSizeStages);
10985 }
10986 
10987 static inline void
vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceSubgroupSizeControlProperties * val)10988 vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val)
10989 {
10990     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES);
10991     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES });
10992     vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(enc, val->pNext);
10993     vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(enc, val);
10994 }
10995 
10996 static inline void *
vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial_temp(struct vn_cs_decoder * dec)10997 vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
10998 {
10999     /* no known/supported struct */
11000     if (vn_decode_simple_pointer(dec))
11001         vn_cs_decoder_set_fatal(dec);
11002     return NULL;
11003 }
11004 
11005 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlProperties * val)11006 vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val)
11007 {
11008     /* skip val->{sType,pNext} */
11009     /* skip val->minSubgroupSize */
11010     /* skip val->maxSubgroupSize */
11011     /* skip val->maxComputeWorkgroupSubgroups */
11012     /* skip val->requiredSubgroupSizeStages */
11013 }
11014 
11015 static inline void
vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSubgroupSizeControlProperties * val)11016 vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val)
11017 {
11018     VkStructureType stype;
11019     vn_decode_VkStructureType(dec, &stype);
11020     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES)
11021         vn_cs_decoder_set_fatal(dec);
11022 
11023     val->sType = stype;
11024     val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial_temp(dec);
11025     vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, val);
11026 }
11027 
11028 /* struct VkPhysicalDeviceLineRasterizationPropertiesEXT chain */
11029 
11030 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)11031 vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
11032 {
11033     /* no known/supported struct */
11034     vn_encode_simple_pointer(enc, NULL);
11035 }
11036 
11037 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceLineRasterizationPropertiesEXT * val)11038 vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
11039 {
11040     /* skip val->{sType,pNext} */
11041     vn_encode_uint32_t(enc, &val->lineSubPixelPrecisionBits);
11042 }
11043 
11044 static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceLineRasterizationPropertiesEXT * val)11045 vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
11046 {
11047     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT);
11048     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT });
11049     vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(enc, val->pNext);
11050     vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(enc, val);
11051 }
11052 
11053 static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)11054 vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
11055 {
11056     /* no known/supported struct */
11057     if (vn_decode_simple_pointer(dec))
11058         vn_cs_decoder_set_fatal(dec);
11059     return NULL;
11060 }
11061 
11062 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationPropertiesEXT * val)11063 vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
11064 {
11065     /* skip val->{sType,pNext} */
11066     /* skip val->lineSubPixelPrecisionBits */
11067 }
11068 
11069 static inline void
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceLineRasterizationPropertiesEXT * val)11070 vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
11071 {
11072     VkStructureType stype;
11073     vn_decode_VkStructureType(dec, &stype);
11074     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT)
11075         vn_cs_decoder_set_fatal(dec);
11076 
11077     val->sType = stype;
11078     val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial_temp(dec);
11079     vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(dec, val);
11080 }
11081 
11082 /* struct VkPhysicalDeviceVulkan11Properties chain */
11083 
11084 static inline void
vn_encode_VkPhysicalDeviceVulkan11Properties_pnext(struct vn_cs_encoder * enc,const void * val)11085 vn_encode_VkPhysicalDeviceVulkan11Properties_pnext(struct vn_cs_encoder *enc, const void *val)
11086 {
11087     /* no known/supported struct */
11088     vn_encode_simple_pointer(enc, NULL);
11089 }
11090 
11091 static inline void
vn_encode_VkPhysicalDeviceVulkan11Properties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan11Properties * val)11092 vn_encode_VkPhysicalDeviceVulkan11Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Properties *val)
11093 {
11094     /* skip val->{sType,pNext} */
11095     vn_encode_array_size(enc, VK_UUID_SIZE);
11096     vn_encode_uint8_t_array(enc, val->deviceUUID, VK_UUID_SIZE);
11097     vn_encode_array_size(enc, VK_UUID_SIZE);
11098     vn_encode_uint8_t_array(enc, val->driverUUID, VK_UUID_SIZE);
11099     vn_encode_array_size(enc, VK_LUID_SIZE);
11100     vn_encode_uint8_t_array(enc, val->deviceLUID, VK_LUID_SIZE);
11101     vn_encode_uint32_t(enc, &val->deviceNodeMask);
11102     vn_encode_VkBool32(enc, &val->deviceLUIDValid);
11103     vn_encode_uint32_t(enc, &val->subgroupSize);
11104     vn_encode_VkFlags(enc, &val->subgroupSupportedStages);
11105     vn_encode_VkFlags(enc, &val->subgroupSupportedOperations);
11106     vn_encode_VkBool32(enc, &val->subgroupQuadOperationsInAllStages);
11107     vn_encode_VkPointClippingBehavior(enc, &val->pointClippingBehavior);
11108     vn_encode_uint32_t(enc, &val->maxMultiviewViewCount);
11109     vn_encode_uint32_t(enc, &val->maxMultiviewInstanceIndex);
11110     vn_encode_VkBool32(enc, &val->protectedNoFault);
11111     vn_encode_uint32_t(enc, &val->maxPerSetDescriptors);
11112     vn_encode_VkDeviceSize(enc, &val->maxMemoryAllocationSize);
11113 }
11114 
11115 static inline void
vn_encode_VkPhysicalDeviceVulkan11Properties(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan11Properties * val)11116 vn_encode_VkPhysicalDeviceVulkan11Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Properties *val)
11117 {
11118     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES);
11119     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES });
11120     vn_encode_VkPhysicalDeviceVulkan11Properties_pnext(enc, val->pNext);
11121     vn_encode_VkPhysicalDeviceVulkan11Properties_self(enc, val);
11122 }
11123 
11124 static inline void *
vn_decode_VkPhysicalDeviceVulkan11Properties_pnext_partial_temp(struct vn_cs_decoder * dec)11125 vn_decode_VkPhysicalDeviceVulkan11Properties_pnext_partial_temp(struct vn_cs_decoder *dec)
11126 {
11127     /* no known/supported struct */
11128     if (vn_decode_simple_pointer(dec))
11129         vn_cs_decoder_set_fatal(dec);
11130     return NULL;
11131 }
11132 
11133 static inline void
vn_decode_VkPhysicalDeviceVulkan11Properties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Properties * val)11134 vn_decode_VkPhysicalDeviceVulkan11Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Properties *val)
11135 {
11136     /* skip val->{sType,pNext} */
11137     /* skip val->deviceUUID */
11138     /* skip val->driverUUID */
11139     /* skip val->deviceLUID */
11140     /* skip val->deviceNodeMask */
11141     /* skip val->deviceLUIDValid */
11142     /* skip val->subgroupSize */
11143     /* skip val->subgroupSupportedStages */
11144     /* skip val->subgroupSupportedOperations */
11145     /* skip val->subgroupQuadOperationsInAllStages */
11146     /* skip val->pointClippingBehavior */
11147     /* skip val->maxMultiviewViewCount */
11148     /* skip val->maxMultiviewInstanceIndex */
11149     /* skip val->protectedNoFault */
11150     /* skip val->maxPerSetDescriptors */
11151     /* skip val->maxMemoryAllocationSize */
11152 }
11153 
11154 static inline void
vn_decode_VkPhysicalDeviceVulkan11Properties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan11Properties * val)11155 vn_decode_VkPhysicalDeviceVulkan11Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Properties *val)
11156 {
11157     VkStructureType stype;
11158     vn_decode_VkStructureType(dec, &stype);
11159     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES)
11160         vn_cs_decoder_set_fatal(dec);
11161 
11162     val->sType = stype;
11163     val->pNext = vn_decode_VkPhysicalDeviceVulkan11Properties_pnext_partial_temp(dec);
11164     vn_decode_VkPhysicalDeviceVulkan11Properties_self_partial_temp(dec, val);
11165 }
11166 
11167 /* struct VkPhysicalDeviceVulkan12Properties chain */
11168 
11169 static inline void
vn_encode_VkPhysicalDeviceVulkan12Properties_pnext(struct vn_cs_encoder * enc,const void * val)11170 vn_encode_VkPhysicalDeviceVulkan12Properties_pnext(struct vn_cs_encoder *enc, const void *val)
11171 {
11172     /* no known/supported struct */
11173     vn_encode_simple_pointer(enc, NULL);
11174 }
11175 
11176 static inline void
vn_encode_VkPhysicalDeviceVulkan12Properties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan12Properties * val)11177 vn_encode_VkPhysicalDeviceVulkan12Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Properties *val)
11178 {
11179     /* skip val->{sType,pNext} */
11180     vn_encode_VkDriverId(enc, &val->driverID);
11181     vn_encode_array_size(enc, VK_MAX_DRIVER_NAME_SIZE);
11182     vn_encode_char_array(enc, val->driverName, VK_MAX_DRIVER_NAME_SIZE);
11183     vn_encode_array_size(enc, VK_MAX_DRIVER_INFO_SIZE);
11184     vn_encode_char_array(enc, val->driverInfo, VK_MAX_DRIVER_INFO_SIZE);
11185     vn_encode_VkConformanceVersion(enc, &val->conformanceVersion);
11186     vn_encode_VkShaderFloatControlsIndependence(enc, &val->denormBehaviorIndependence);
11187     vn_encode_VkShaderFloatControlsIndependence(enc, &val->roundingModeIndependence);
11188     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat16);
11189     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat32);
11190     vn_encode_VkBool32(enc, &val->shaderSignedZeroInfNanPreserveFloat64);
11191     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat16);
11192     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat32);
11193     vn_encode_VkBool32(enc, &val->shaderDenormPreserveFloat64);
11194     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat16);
11195     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat32);
11196     vn_encode_VkBool32(enc, &val->shaderDenormFlushToZeroFloat64);
11197     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat16);
11198     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat32);
11199     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTEFloat64);
11200     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat16);
11201     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat32);
11202     vn_encode_VkBool32(enc, &val->shaderRoundingModeRTZFloat64);
11203     vn_encode_uint32_t(enc, &val->maxUpdateAfterBindDescriptorsInAllPools);
11204     vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexingNative);
11205     vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexingNative);
11206     vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexingNative);
11207     vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexingNative);
11208     vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexingNative);
11209     vn_encode_VkBool32(enc, &val->robustBufferAccessUpdateAfterBind);
11210     vn_encode_VkBool32(enc, &val->quadDivergentImplicitLod);
11211     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindSamplers);
11212     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
11213     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
11214     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindSampledImages);
11215     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindStorageImages);
11216     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
11217     vn_encode_uint32_t(enc, &val->maxPerStageUpdateAfterBindResources);
11218     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindSamplers);
11219     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindUniformBuffers);
11220     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
11221     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageBuffers);
11222     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
11223     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindSampledImages);
11224     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindStorageImages);
11225     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInputAttachments);
11226     vn_encode_VkFlags(enc, &val->supportedDepthResolveModes);
11227     vn_encode_VkFlags(enc, &val->supportedStencilResolveModes);
11228     vn_encode_VkBool32(enc, &val->independentResolveNone);
11229     vn_encode_VkBool32(enc, &val->independentResolve);
11230     vn_encode_VkBool32(enc, &val->filterMinmaxSingleComponentFormats);
11231     vn_encode_VkBool32(enc, &val->filterMinmaxImageComponentMapping);
11232     vn_encode_uint64_t(enc, &val->maxTimelineSemaphoreValueDifference);
11233     vn_encode_VkFlags(enc, &val->framebufferIntegerColorSampleCounts);
11234 }
11235 
11236 static inline void
vn_encode_VkPhysicalDeviceVulkan12Properties(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan12Properties * val)11237 vn_encode_VkPhysicalDeviceVulkan12Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Properties *val)
11238 {
11239     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES);
11240     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES });
11241     vn_encode_VkPhysicalDeviceVulkan12Properties_pnext(enc, val->pNext);
11242     vn_encode_VkPhysicalDeviceVulkan12Properties_self(enc, val);
11243 }
11244 
11245 static inline void *
vn_decode_VkPhysicalDeviceVulkan12Properties_pnext_partial_temp(struct vn_cs_decoder * dec)11246 vn_decode_VkPhysicalDeviceVulkan12Properties_pnext_partial_temp(struct vn_cs_decoder *dec)
11247 {
11248     /* no known/supported struct */
11249     if (vn_decode_simple_pointer(dec))
11250         vn_cs_decoder_set_fatal(dec);
11251     return NULL;
11252 }
11253 
11254 static inline void
vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Properties * val)11255 vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Properties *val)
11256 {
11257     /* skip val->{sType,pNext} */
11258     /* skip val->driverID */
11259     /* skip val->driverName */
11260     /* skip val->driverInfo */
11261     vn_decode_VkConformanceVersion_partial_temp(dec, &val->conformanceVersion);
11262     /* skip val->denormBehaviorIndependence */
11263     /* skip val->roundingModeIndependence */
11264     /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
11265     /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
11266     /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
11267     /* skip val->shaderDenormPreserveFloat16 */
11268     /* skip val->shaderDenormPreserveFloat32 */
11269     /* skip val->shaderDenormPreserveFloat64 */
11270     /* skip val->shaderDenormFlushToZeroFloat16 */
11271     /* skip val->shaderDenormFlushToZeroFloat32 */
11272     /* skip val->shaderDenormFlushToZeroFloat64 */
11273     /* skip val->shaderRoundingModeRTEFloat16 */
11274     /* skip val->shaderRoundingModeRTEFloat32 */
11275     /* skip val->shaderRoundingModeRTEFloat64 */
11276     /* skip val->shaderRoundingModeRTZFloat16 */
11277     /* skip val->shaderRoundingModeRTZFloat32 */
11278     /* skip val->shaderRoundingModeRTZFloat64 */
11279     /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
11280     /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
11281     /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
11282     /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
11283     /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
11284     /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
11285     /* skip val->robustBufferAccessUpdateAfterBind */
11286     /* skip val->quadDivergentImplicitLod */
11287     /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
11288     /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
11289     /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
11290     /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
11291     /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
11292     /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
11293     /* skip val->maxPerStageUpdateAfterBindResources */
11294     /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
11295     /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
11296     /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
11297     /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
11298     /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
11299     /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
11300     /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
11301     /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
11302     /* skip val->supportedDepthResolveModes */
11303     /* skip val->supportedStencilResolveModes */
11304     /* skip val->independentResolveNone */
11305     /* skip val->independentResolve */
11306     /* skip val->filterMinmaxSingleComponentFormats */
11307     /* skip val->filterMinmaxImageComponentMapping */
11308     /* skip val->maxTimelineSemaphoreValueDifference */
11309     /* skip val->framebufferIntegerColorSampleCounts */
11310 }
11311 
11312 static inline void
vn_decode_VkPhysicalDeviceVulkan12Properties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan12Properties * val)11313 vn_decode_VkPhysicalDeviceVulkan12Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Properties *val)
11314 {
11315     VkStructureType stype;
11316     vn_decode_VkStructureType(dec, &stype);
11317     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES)
11318         vn_cs_decoder_set_fatal(dec);
11319 
11320     val->sType = stype;
11321     val->pNext = vn_decode_VkPhysicalDeviceVulkan12Properties_pnext_partial_temp(dec);
11322     vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(dec, val);
11323 }
11324 
11325 /* struct VkPhysicalDeviceVulkan13Properties chain */
11326 
11327 static inline void
vn_encode_VkPhysicalDeviceVulkan13Properties_pnext(struct vn_cs_encoder * enc,const void * val)11328 vn_encode_VkPhysicalDeviceVulkan13Properties_pnext(struct vn_cs_encoder *enc, const void *val)
11329 {
11330     /* no known/supported struct */
11331     vn_encode_simple_pointer(enc, NULL);
11332 }
11333 
11334 static inline void
vn_encode_VkPhysicalDeviceVulkan13Properties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan13Properties * val)11335 vn_encode_VkPhysicalDeviceVulkan13Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val)
11336 {
11337     /* skip val->{sType,pNext} */
11338     vn_encode_uint32_t(enc, &val->minSubgroupSize);
11339     vn_encode_uint32_t(enc, &val->maxSubgroupSize);
11340     vn_encode_uint32_t(enc, &val->maxComputeWorkgroupSubgroups);
11341     vn_encode_VkFlags(enc, &val->requiredSubgroupSizeStages);
11342     vn_encode_uint32_t(enc, &val->maxInlineUniformBlockSize);
11343     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorInlineUniformBlocks);
11344     vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
11345     vn_encode_uint32_t(enc, &val->maxDescriptorSetInlineUniformBlocks);
11346     vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
11347     vn_encode_uint32_t(enc, &val->maxInlineUniformTotalSize);
11348     vn_encode_VkBool32(enc, &val->integerDotProduct8BitUnsignedAccelerated);
11349     vn_encode_VkBool32(enc, &val->integerDotProduct8BitSignedAccelerated);
11350     vn_encode_VkBool32(enc, &val->integerDotProduct8BitMixedSignednessAccelerated);
11351     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedUnsignedAccelerated);
11352     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedSignedAccelerated);
11353     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
11354     vn_encode_VkBool32(enc, &val->integerDotProduct16BitUnsignedAccelerated);
11355     vn_encode_VkBool32(enc, &val->integerDotProduct16BitSignedAccelerated);
11356     vn_encode_VkBool32(enc, &val->integerDotProduct16BitMixedSignednessAccelerated);
11357     vn_encode_VkBool32(enc, &val->integerDotProduct32BitUnsignedAccelerated);
11358     vn_encode_VkBool32(enc, &val->integerDotProduct32BitSignedAccelerated);
11359     vn_encode_VkBool32(enc, &val->integerDotProduct32BitMixedSignednessAccelerated);
11360     vn_encode_VkBool32(enc, &val->integerDotProduct64BitUnsignedAccelerated);
11361     vn_encode_VkBool32(enc, &val->integerDotProduct64BitSignedAccelerated);
11362     vn_encode_VkBool32(enc, &val->integerDotProduct64BitMixedSignednessAccelerated);
11363     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
11364     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
11365     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
11366     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
11367     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
11368     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
11369     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
11370     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
11371     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
11372     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
11373     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
11374     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
11375     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
11376     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
11377     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
11378     vn_encode_VkDeviceSize(enc, &val->storageTexelBufferOffsetAlignmentBytes);
11379     vn_encode_VkBool32(enc, &val->storageTexelBufferOffsetSingleTexelAlignment);
11380     vn_encode_VkDeviceSize(enc, &val->uniformTexelBufferOffsetAlignmentBytes);
11381     vn_encode_VkBool32(enc, &val->uniformTexelBufferOffsetSingleTexelAlignment);
11382     vn_encode_VkDeviceSize(enc, &val->maxBufferSize);
11383 }
11384 
11385 static inline void
vn_encode_VkPhysicalDeviceVulkan13Properties(struct vn_cs_encoder * enc,const VkPhysicalDeviceVulkan13Properties * val)11386 vn_encode_VkPhysicalDeviceVulkan13Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val)
11387 {
11388     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES);
11389     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES });
11390     vn_encode_VkPhysicalDeviceVulkan13Properties_pnext(enc, val->pNext);
11391     vn_encode_VkPhysicalDeviceVulkan13Properties_self(enc, val);
11392 }
11393 
11394 static inline void *
vn_decode_VkPhysicalDeviceVulkan13Properties_pnext_partial_temp(struct vn_cs_decoder * dec)11395 vn_decode_VkPhysicalDeviceVulkan13Properties_pnext_partial_temp(struct vn_cs_decoder *dec)
11396 {
11397     /* no known/supported struct */
11398     if (vn_decode_simple_pointer(dec))
11399         vn_cs_decoder_set_fatal(dec);
11400     return NULL;
11401 }
11402 
11403 static inline void
vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Properties * val)11404 vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val)
11405 {
11406     /* skip val->{sType,pNext} */
11407     /* skip val->minSubgroupSize */
11408     /* skip val->maxSubgroupSize */
11409     /* skip val->maxComputeWorkgroupSubgroups */
11410     /* skip val->requiredSubgroupSizeStages */
11411     /* skip val->maxInlineUniformBlockSize */
11412     /* skip val->maxPerStageDescriptorInlineUniformBlocks */
11413     /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
11414     /* skip val->maxDescriptorSetInlineUniformBlocks */
11415     /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
11416     /* skip val->maxInlineUniformTotalSize */
11417     /* skip val->integerDotProduct8BitUnsignedAccelerated */
11418     /* skip val->integerDotProduct8BitSignedAccelerated */
11419     /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
11420     /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
11421     /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
11422     /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
11423     /* skip val->integerDotProduct16BitUnsignedAccelerated */
11424     /* skip val->integerDotProduct16BitSignedAccelerated */
11425     /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
11426     /* skip val->integerDotProduct32BitUnsignedAccelerated */
11427     /* skip val->integerDotProduct32BitSignedAccelerated */
11428     /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
11429     /* skip val->integerDotProduct64BitUnsignedAccelerated */
11430     /* skip val->integerDotProduct64BitSignedAccelerated */
11431     /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
11432     /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
11433     /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
11434     /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
11435     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
11436     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
11437     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
11438     /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
11439     /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
11440     /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
11441     /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
11442     /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
11443     /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
11444     /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
11445     /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
11446     /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
11447     /* skip val->storageTexelBufferOffsetAlignmentBytes */
11448     /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
11449     /* skip val->uniformTexelBufferOffsetAlignmentBytes */
11450     /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
11451     /* skip val->maxBufferSize */
11452 }
11453 
11454 static inline void
vn_decode_VkPhysicalDeviceVulkan13Properties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceVulkan13Properties * val)11455 vn_decode_VkPhysicalDeviceVulkan13Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val)
11456 {
11457     VkStructureType stype;
11458     vn_decode_VkStructureType(dec, &stype);
11459     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES)
11460         vn_cs_decoder_set_fatal(dec);
11461 
11462     val->sType = stype;
11463     val->pNext = vn_decode_VkPhysicalDeviceVulkan13Properties_pnext_partial_temp(dec);
11464     vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(dec, val);
11465 }
11466 
11467 /* struct VkPhysicalDeviceCustomBorderColorPropertiesEXT chain */
11468 
11469 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)11470 vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
11471 {
11472     /* no known/supported struct */
11473     vn_encode_simple_pointer(enc, NULL);
11474 }
11475 
11476 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * val)11477 vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
11478 {
11479     /* skip val->{sType,pNext} */
11480     vn_encode_uint32_t(enc, &val->maxCustomBorderColorSamplers);
11481 }
11482 
11483 static inline void
vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * val)11484 vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
11485 {
11486     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT);
11487     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT });
11488     vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(enc, val->pNext);
11489     vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(enc, val);
11490 }
11491 
11492 static inline void *
vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)11493 vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
11494 {
11495     /* no known/supported struct */
11496     if (vn_decode_simple_pointer(dec))
11497         vn_cs_decoder_set_fatal(dec);
11498     return NULL;
11499 }
11500 
11501 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorPropertiesEXT * val)11502 vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
11503 {
11504     /* skip val->{sType,pNext} */
11505     /* skip val->maxCustomBorderColorSamplers */
11506 }
11507 
11508 static inline void
vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceCustomBorderColorPropertiesEXT * val)11509 vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
11510 {
11511     VkStructureType stype;
11512     vn_decode_VkStructureType(dec, &stype);
11513     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT)
11514         vn_cs_decoder_set_fatal(dec);
11515 
11516     val->sType = stype;
11517     val->pNext = vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial_temp(dec);
11518     vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(dec, val);
11519 }
11520 
11521 /* struct VkPhysicalDeviceRobustness2PropertiesEXT chain */
11522 
11523 static inline void
vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)11524 vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
11525 {
11526     /* no known/supported struct */
11527     vn_encode_simple_pointer(enc, NULL);
11528 }
11529 
11530 static inline void
vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceRobustness2PropertiesEXT * val)11531 vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2PropertiesEXT *val)
11532 {
11533     /* skip val->{sType,pNext} */
11534     vn_encode_VkDeviceSize(enc, &val->robustStorageBufferAccessSizeAlignment);
11535     vn_encode_VkDeviceSize(enc, &val->robustUniformBufferAccessSizeAlignment);
11536 }
11537 
11538 static inline void
vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceRobustness2PropertiesEXT * val)11539 vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2PropertiesEXT *val)
11540 {
11541     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT);
11542     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT });
11543     vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(enc, val->pNext);
11544     vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self(enc, val);
11545 }
11546 
11547 static inline void *
vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)11548 vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
11549 {
11550     /* no known/supported struct */
11551     if (vn_decode_simple_pointer(dec))
11552         vn_cs_decoder_set_fatal(dec);
11553     return NULL;
11554 }
11555 
11556 static inline void
vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2PropertiesEXT * val)11557 vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2PropertiesEXT *val)
11558 {
11559     /* skip val->{sType,pNext} */
11560     /* skip val->robustStorageBufferAccessSizeAlignment */
11561     /* skip val->robustUniformBufferAccessSizeAlignment */
11562 }
11563 
11564 static inline void
vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceRobustness2PropertiesEXT * val)11565 vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2PropertiesEXT *val)
11566 {
11567     VkStructureType stype;
11568     vn_decode_VkStructureType(dec, &stype);
11569     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT)
11570         vn_cs_decoder_set_fatal(dec);
11571 
11572     val->sType = stype;
11573     val->pNext = vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial_temp(dec);
11574     vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial_temp(dec, val);
11575 }
11576 
11577 /* struct VkPhysicalDeviceProvokingVertexPropertiesEXT chain */
11578 
11579 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(struct vn_cs_encoder * enc,const void * val)11580 vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
11581 {
11582     /* no known/supported struct */
11583     vn_encode_simple_pointer(enc, NULL);
11584 }
11585 
11586 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceProvokingVertexPropertiesEXT * val)11587 vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
11588 {
11589     /* skip val->{sType,pNext} */
11590     vn_encode_VkBool32(enc, &val->provokingVertexModePerPipeline);
11591     vn_encode_VkBool32(enc, &val->transformFeedbackPreservesTriangleFanProvokingVertex);
11592 }
11593 
11594 static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT(struct vn_cs_encoder * enc,const VkPhysicalDeviceProvokingVertexPropertiesEXT * val)11595 vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
11596 {
11597     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT);
11598     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT });
11599     vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(enc, val->pNext);
11600     vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(enc, val);
11601 }
11602 
11603 static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder * dec)11604 vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
11605 {
11606     /* no known/supported struct */
11607     if (vn_decode_simple_pointer(dec))
11608         vn_cs_decoder_set_fatal(dec);
11609     return NULL;
11610 }
11611 
11612 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexPropertiesEXT * val)11613 vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
11614 {
11615     /* skip val->{sType,pNext} */
11616     /* skip val->provokingVertexModePerPipeline */
11617     /* skip val->transformFeedbackPreservesTriangleFanProvokingVertex */
11618 }
11619 
11620 static inline void
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProvokingVertexPropertiesEXT * val)11621 vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
11622 {
11623     VkStructureType stype;
11624     vn_decode_VkStructureType(dec, &stype);
11625     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)
11626         vn_cs_decoder_set_fatal(dec);
11627 
11628     val->sType = stype;
11629     val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial_temp(dec);
11630     vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(dec, val);
11631 }
11632 
11633 /* struct VkPhysicalDeviceShaderIntegerDotProductProperties chain */
11634 
11635 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(struct vn_cs_encoder * enc,const void * val)11636 vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(struct vn_cs_encoder *enc, const void *val)
11637 {
11638     /* no known/supported struct */
11639     vn_encode_simple_pointer(enc, NULL);
11640 }
11641 
11642 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderIntegerDotProductProperties * val)11643 vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
11644 {
11645     /* skip val->{sType,pNext} */
11646     vn_encode_VkBool32(enc, &val->integerDotProduct8BitUnsignedAccelerated);
11647     vn_encode_VkBool32(enc, &val->integerDotProduct8BitSignedAccelerated);
11648     vn_encode_VkBool32(enc, &val->integerDotProduct8BitMixedSignednessAccelerated);
11649     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedUnsignedAccelerated);
11650     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedSignedAccelerated);
11651     vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
11652     vn_encode_VkBool32(enc, &val->integerDotProduct16BitUnsignedAccelerated);
11653     vn_encode_VkBool32(enc, &val->integerDotProduct16BitSignedAccelerated);
11654     vn_encode_VkBool32(enc, &val->integerDotProduct16BitMixedSignednessAccelerated);
11655     vn_encode_VkBool32(enc, &val->integerDotProduct32BitUnsignedAccelerated);
11656     vn_encode_VkBool32(enc, &val->integerDotProduct32BitSignedAccelerated);
11657     vn_encode_VkBool32(enc, &val->integerDotProduct32BitMixedSignednessAccelerated);
11658     vn_encode_VkBool32(enc, &val->integerDotProduct64BitUnsignedAccelerated);
11659     vn_encode_VkBool32(enc, &val->integerDotProduct64BitSignedAccelerated);
11660     vn_encode_VkBool32(enc, &val->integerDotProduct64BitMixedSignednessAccelerated);
11661     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
11662     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
11663     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
11664     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
11665     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
11666     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
11667     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
11668     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
11669     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
11670     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
11671     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
11672     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
11673     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
11674     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
11675     vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
11676 }
11677 
11678 static inline void
vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceShaderIntegerDotProductProperties * val)11679 vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
11680 {
11681     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES);
11682     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES });
11683     vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(enc, val->pNext);
11684     vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(enc, val);
11685 }
11686 
11687 static inline void *
vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial_temp(struct vn_cs_decoder * dec)11688 vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
11689 {
11690     /* no known/supported struct */
11691     if (vn_decode_simple_pointer(dec))
11692         vn_cs_decoder_set_fatal(dec);
11693     return NULL;
11694 }
11695 
11696 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductProperties * val)11697 vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val)
11698 {
11699     /* skip val->{sType,pNext} */
11700     /* skip val->integerDotProduct8BitUnsignedAccelerated */
11701     /* skip val->integerDotProduct8BitSignedAccelerated */
11702     /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
11703     /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
11704     /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
11705     /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
11706     /* skip val->integerDotProduct16BitUnsignedAccelerated */
11707     /* skip val->integerDotProduct16BitSignedAccelerated */
11708     /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
11709     /* skip val->integerDotProduct32BitUnsignedAccelerated */
11710     /* skip val->integerDotProduct32BitSignedAccelerated */
11711     /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
11712     /* skip val->integerDotProduct64BitUnsignedAccelerated */
11713     /* skip val->integerDotProduct64BitSignedAccelerated */
11714     /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
11715     /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
11716     /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
11717     /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
11718     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
11719     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
11720     /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
11721     /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
11722     /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
11723     /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
11724     /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
11725     /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
11726     /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
11727     /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
11728     /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
11729     /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
11730 }
11731 
11732 static inline void
vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceShaderIntegerDotProductProperties * val)11733 vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val)
11734 {
11735     VkStructureType stype;
11736     vn_decode_VkStructureType(dec, &stype);
11737     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES)
11738         vn_cs_decoder_set_fatal(dec);
11739 
11740     val->sType = stype;
11741     val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial_temp(dec);
11742     vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(dec, val);
11743 }
11744 
11745 /* struct VkPhysicalDeviceProperties2 chain */
11746 
11747 static inline void
vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder * enc,const void * val)11748 vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
11749 {
11750     const VkBaseInStructure *pnext = val;
11751 
11752     while (pnext) {
11753         switch ((int32_t)pnext->sType) {
11754         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
11755             vn_encode_simple_pointer(enc, pnext);
11756             vn_encode_VkStructureType(enc, &pnext->sType);
11757             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11758             vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self(enc, (const VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
11759             return;
11760         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
11761             vn_encode_simple_pointer(enc, pnext);
11762             vn_encode_VkStructureType(enc, &pnext->sType);
11763             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11764             vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(enc, (const VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
11765             return;
11766         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
11767             vn_encode_simple_pointer(enc, pnext);
11768             vn_encode_VkStructureType(enc, &pnext->sType);
11769             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11770             vn_encode_VkPhysicalDeviceDriverProperties_self(enc, (const VkPhysicalDeviceDriverProperties *)pnext);
11771             return;
11772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
11773             vn_encode_simple_pointer(enc, pnext);
11774             vn_encode_VkStructureType(enc, &pnext->sType);
11775             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11776             vn_encode_VkPhysicalDeviceIDProperties_self(enc, (const VkPhysicalDeviceIDProperties *)pnext);
11777             return;
11778         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
11779             vn_encode_simple_pointer(enc, pnext);
11780             vn_encode_VkStructureType(enc, &pnext->sType);
11781             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11782             vn_encode_VkPhysicalDeviceMultiviewProperties_self(enc, (const VkPhysicalDeviceMultiviewProperties *)pnext);
11783             return;
11784         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
11785             vn_encode_simple_pointer(enc, pnext);
11786             vn_encode_VkStructureType(enc, &pnext->sType);
11787             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11788             vn_encode_VkPhysicalDeviceSubgroupProperties_self(enc, (const VkPhysicalDeviceSubgroupProperties *)pnext);
11789             return;
11790         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
11791             vn_encode_simple_pointer(enc, pnext);
11792             vn_encode_VkStructureType(enc, &pnext->sType);
11793             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11794             vn_encode_VkPhysicalDevicePointClippingProperties_self(enc, (const VkPhysicalDevicePointClippingProperties *)pnext);
11795             return;
11796         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
11797             vn_encode_simple_pointer(enc, pnext);
11798             vn_encode_VkStructureType(enc, &pnext->sType);
11799             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11800             vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self(enc, (const VkPhysicalDeviceProtectedMemoryProperties *)pnext);
11801             return;
11802         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
11803             vn_encode_simple_pointer(enc, pnext);
11804             vn_encode_VkStructureType(enc, &pnext->sType);
11805             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11806             vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(enc, (const VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
11807             return;
11808         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
11809             vn_encode_simple_pointer(enc, pnext);
11810             vn_encode_VkStructureType(enc, &pnext->sType);
11811             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11812             vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(enc, (const VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
11813             return;
11814         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
11815             vn_encode_simple_pointer(enc, pnext);
11816             vn_encode_VkStructureType(enc, &pnext->sType);
11817             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11818             vn_encode_VkPhysicalDeviceMaintenance3Properties_self(enc, (const VkPhysicalDeviceMaintenance3Properties *)pnext);
11819             return;
11820         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
11821             vn_encode_simple_pointer(enc, pnext);
11822             vn_encode_VkStructureType(enc, &pnext->sType);
11823             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11824             vn_encode_VkPhysicalDeviceMaintenance4Properties_self(enc, (const VkPhysicalDeviceMaintenance4Properties *)pnext);
11825             return;
11826         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
11827             vn_encode_simple_pointer(enc, pnext);
11828             vn_encode_VkStructureType(enc, &pnext->sType);
11829             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11830             vn_encode_VkPhysicalDeviceFloatControlsProperties_self(enc, (const VkPhysicalDeviceFloatControlsProperties *)pnext);
11831             return;
11832         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
11833             vn_encode_simple_pointer(enc, pnext);
11834             vn_encode_VkStructureType(enc, &pnext->sType);
11835             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11836             vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(enc, (const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
11837             return;
11838         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
11839             vn_encode_simple_pointer(enc, pnext);
11840             vn_encode_VkStructureType(enc, &pnext->sType);
11841             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11842             vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self(enc, (const VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
11843             return;
11844         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
11845             vn_encode_simple_pointer(enc, pnext);
11846             vn_encode_VkStructureType(enc, &pnext->sType);
11847             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11848             vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self(enc, (const VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
11849             return;
11850         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
11851             vn_encode_simple_pointer(enc, pnext);
11852             vn_encode_VkStructureType(enc, &pnext->sType);
11853             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11854             vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(enc, (const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
11855             return;
11856         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
11857             vn_encode_simple_pointer(enc, pnext);
11858             vn_encode_VkStructureType(enc, &pnext->sType);
11859             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11860             vn_encode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self(enc, (const VkPhysicalDevicePCIBusInfoPropertiesEXT *)pnext);
11861             return;
11862         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
11863             vn_encode_simple_pointer(enc, pnext);
11864             vn_encode_VkStructureType(enc, &pnext->sType);
11865             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11866             vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(enc, (const VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
11867             return;
11868         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
11869             vn_encode_simple_pointer(enc, pnext);
11870             vn_encode_VkStructureType(enc, &pnext->sType);
11871             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11872             vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
11873             return;
11874         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
11875             vn_encode_simple_pointer(enc, pnext);
11876             vn_encode_VkStructureType(enc, &pnext->sType);
11877             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11878             vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
11879             return;
11880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
11881             vn_encode_simple_pointer(enc, pnext);
11882             vn_encode_VkStructureType(enc, &pnext->sType);
11883             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11884             vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(enc, (const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
11885             return;
11886         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
11887             vn_encode_simple_pointer(enc, pnext);
11888             vn_encode_VkStructureType(enc, &pnext->sType);
11889             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11890             vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
11891             return;
11892         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
11893             vn_encode_simple_pointer(enc, pnext);
11894             vn_encode_VkStructureType(enc, &pnext->sType);
11895             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11896             vn_encode_VkPhysicalDeviceVulkan11Properties_self(enc, (const VkPhysicalDeviceVulkan11Properties *)pnext);
11897             return;
11898         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
11899             vn_encode_simple_pointer(enc, pnext);
11900             vn_encode_VkStructureType(enc, &pnext->sType);
11901             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11902             vn_encode_VkPhysicalDeviceVulkan12Properties_self(enc, (const VkPhysicalDeviceVulkan12Properties *)pnext);
11903             return;
11904         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
11905             vn_encode_simple_pointer(enc, pnext);
11906             vn_encode_VkStructureType(enc, &pnext->sType);
11907             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11908             vn_encode_VkPhysicalDeviceVulkan13Properties_self(enc, (const VkPhysicalDeviceVulkan13Properties *)pnext);
11909             return;
11910         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
11911             vn_encode_simple_pointer(enc, pnext);
11912             vn_encode_VkStructureType(enc, &pnext->sType);
11913             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11914             vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
11915             return;
11916         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
11917             vn_encode_simple_pointer(enc, pnext);
11918             vn_encode_VkStructureType(enc, &pnext->sType);
11919             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11920             vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self(enc, (const VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
11921             return;
11922         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
11923             vn_encode_simple_pointer(enc, pnext);
11924             vn_encode_VkStructureType(enc, &pnext->sType);
11925             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11926             vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
11927             return;
11928         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
11929             vn_encode_simple_pointer(enc, pnext);
11930             vn_encode_VkStructureType(enc, &pnext->sType);
11931             vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
11932             vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
11933             return;
11934         default:
11935             /* ignore unknown/unsupported struct */
11936             break;
11937         }
11938         pnext = pnext->pNext;
11939     }
11940 
11941     vn_encode_simple_pointer(enc, NULL);
11942 }
11943 
11944 static inline void
vn_encode_VkPhysicalDeviceProperties2_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceProperties2 * val)11945 vn_encode_VkPhysicalDeviceProperties2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties2 *val)
11946 {
11947     /* skip val->{sType,pNext} */
11948     vn_encode_VkPhysicalDeviceProperties(enc, &val->properties);
11949 }
11950 
11951 static inline void
vn_encode_VkPhysicalDeviceProperties2(struct vn_cs_encoder * enc,const VkPhysicalDeviceProperties2 * val)11952 vn_encode_VkPhysicalDeviceProperties2(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties2 *val)
11953 {
11954     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2);
11955     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 });
11956     vn_encode_VkPhysicalDeviceProperties2_pnext(enc, val->pNext);
11957     vn_encode_VkPhysicalDeviceProperties2_self(enc, val);
11958 }
11959 
11960 static inline void *
vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)11961 vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
11962 {
11963     VkBaseOutStructure *pnext;
11964     VkStructureType stype;
11965 
11966     if (!vn_decode_simple_pointer(dec))
11967         return NULL;
11968 
11969     vn_decode_VkStructureType(dec, &stype);
11970     switch ((int32_t)stype) {
11971     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
11972         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT));
11973         if (pnext) {
11974             pnext->sType = stype;
11975             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
11976             vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
11977         }
11978         break;
11979     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
11980         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR));
11981         if (pnext) {
11982             pnext->sType = stype;
11983             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
11984             vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial_temp(dec, (VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
11985         }
11986         break;
11987     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
11988         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDriverProperties));
11989         if (pnext) {
11990             pnext->sType = stype;
11991             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
11992             vn_decode_VkPhysicalDeviceDriverProperties_self_partial_temp(dec, (VkPhysicalDeviceDriverProperties *)pnext);
11993         }
11994         break;
11995     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
11996         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceIDProperties));
11997         if (pnext) {
11998             pnext->sType = stype;
11999             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12000             vn_decode_VkPhysicalDeviceIDProperties_self_partial_temp(dec, (VkPhysicalDeviceIDProperties *)pnext);
12001         }
12002         break;
12003     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
12004         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMultiviewProperties));
12005         if (pnext) {
12006             pnext->sType = stype;
12007             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12008             vn_decode_VkPhysicalDeviceMultiviewProperties_self_partial_temp(dec, (VkPhysicalDeviceMultiviewProperties *)pnext);
12009         }
12010         break;
12011     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
12012         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupProperties));
12013         if (pnext) {
12014             pnext->sType = stype;
12015             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12016             vn_decode_VkPhysicalDeviceSubgroupProperties_self_partial_temp(dec, (VkPhysicalDeviceSubgroupProperties *)pnext);
12017         }
12018         break;
12019     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
12020         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePointClippingProperties));
12021         if (pnext) {
12022             pnext->sType = stype;
12023             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12024             vn_decode_VkPhysicalDevicePointClippingProperties_self_partial_temp(dec, (VkPhysicalDevicePointClippingProperties *)pnext);
12025         }
12026         break;
12027     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
12028         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProtectedMemoryProperties));
12029         if (pnext) {
12030             pnext->sType = stype;
12031             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12032             vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self_partial_temp(dec, (VkPhysicalDeviceProtectedMemoryProperties *)pnext);
12033         }
12034         break;
12035     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
12036         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties));
12037         if (pnext) {
12038             pnext->sType = stype;
12039             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12040             vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(dec, (VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
12041         }
12042         break;
12043     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
12044         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockProperties));
12045         if (pnext) {
12046             pnext->sType = stype;
12047             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12048             vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(dec, (VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
12049         }
12050         break;
12051     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
12052         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance3Properties));
12053         if (pnext) {
12054             pnext->sType = stype;
12055             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12056             vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(dec, (VkPhysicalDeviceMaintenance3Properties *)pnext);
12057         }
12058         break;
12059     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
12060         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Properties));
12061         if (pnext) {
12062             pnext->sType = stype;
12063             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12064             vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(dec, (VkPhysicalDeviceMaintenance4Properties *)pnext);
12065         }
12066         break;
12067     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
12068         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceFloatControlsProperties));
12069         if (pnext) {
12070             pnext->sType = stype;
12071             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12072             vn_decode_VkPhysicalDeviceFloatControlsProperties_self_partial_temp(dec, (VkPhysicalDeviceFloatControlsProperties *)pnext);
12073         }
12074         break;
12075     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
12076         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT));
12077         if (pnext) {
12078             pnext->sType = stype;
12079             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12080             vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
12081         }
12082         break;
12083     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
12084         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDescriptorIndexingProperties));
12085         if (pnext) {
12086             pnext->sType = stype;
12087             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12088             vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial_temp(dec, (VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
12089         }
12090         break;
12091     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
12092         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTimelineSemaphoreProperties));
12093         if (pnext) {
12094             pnext->sType = stype;
12095             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12096             vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial_temp(dec, (VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
12097         }
12098         break;
12099     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
12100         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT));
12101         if (pnext) {
12102             pnext->sType = stype;
12103             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12104             vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
12105         }
12106         break;
12107     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
12108         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT));
12109         if (pnext) {
12110             pnext->sType = stype;
12111             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12112             vn_decode_VkPhysicalDevicePCIBusInfoPropertiesEXT_self_partial_temp(dec, (VkPhysicalDevicePCIBusInfoPropertiesEXT *)pnext);
12113         }
12114         break;
12115     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
12116         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDepthStencilResolveProperties));
12117         if (pnext) {
12118             pnext->sType = stype;
12119             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12120             vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial_temp(dec, (VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
12121         }
12122         break;
12123     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
12124         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT));
12125         if (pnext) {
12126             pnext->sType = stype;
12127             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12128             vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
12129         }
12130         break;
12131     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
12132         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties));
12133         if (pnext) {
12134             pnext->sType = stype;
12135             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12136             vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
12137         }
12138         break;
12139     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
12140         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlProperties));
12141         if (pnext) {
12142             pnext->sType = stype;
12143             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12144             vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
12145         }
12146         break;
12147     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
12148         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT));
12149         if (pnext) {
12150             pnext->sType = stype;
12151             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12152             vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
12153         }
12154         break;
12155     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
12156         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Properties));
12157         if (pnext) {
12158             pnext->sType = stype;
12159             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12160             vn_decode_VkPhysicalDeviceVulkan11Properties_self_partial_temp(dec, (VkPhysicalDeviceVulkan11Properties *)pnext);
12161         }
12162         break;
12163     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
12164         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Properties));
12165         if (pnext) {
12166             pnext->sType = stype;
12167             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12168             vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(dec, (VkPhysicalDeviceVulkan12Properties *)pnext);
12169         }
12170         break;
12171     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
12172         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Properties));
12173         if (pnext) {
12174             pnext->sType = stype;
12175             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12176             vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(dec, (VkPhysicalDeviceVulkan13Properties *)pnext);
12177         }
12178         break;
12179     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
12180         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT));
12181         if (pnext) {
12182             pnext->sType = stype;
12183             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12184             vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
12185         }
12186         break;
12187     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
12188         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceRobustness2PropertiesEXT));
12189         if (pnext) {
12190             pnext->sType = stype;
12191             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12192             vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
12193         }
12194         break;
12195     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
12196         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT));
12197         if (pnext) {
12198             pnext->sType = stype;
12199             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12200             vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
12201         }
12202         break;
12203     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
12204         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties));
12205         if (pnext) {
12206             pnext->sType = stype;
12207             pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12208             vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
12209         }
12210         break;
12211     default:
12212         /* unexpected struct */
12213         pnext = NULL;
12214         vn_cs_decoder_set_fatal(dec);
12215         break;
12216     }
12217 
12218     return pnext;
12219 }
12220 
12221 static inline void
vn_decode_VkPhysicalDeviceProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProperties2 * val)12222 vn_decode_VkPhysicalDeviceProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties2 *val)
12223 {
12224     /* skip val->{sType,pNext} */
12225     vn_decode_VkPhysicalDeviceProperties_partial_temp(dec, &val->properties);
12226 }
12227 
12228 static inline void
vn_decode_VkPhysicalDeviceProperties2_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceProperties2 * val)12229 vn_decode_VkPhysicalDeviceProperties2_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties2 *val)
12230 {
12231     VkStructureType stype;
12232     vn_decode_VkStructureType(dec, &stype);
12233     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2)
12234         vn_cs_decoder_set_fatal(dec);
12235 
12236     val->sType = stype;
12237     val->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
12238     vn_decode_VkPhysicalDeviceProperties2_self_partial_temp(dec, val);
12239 }
12240 
12241 /* struct VkDrmFormatModifierPropertiesEXT */
12242 
12243 static inline void
vn_encode_VkDrmFormatModifierPropertiesEXT(struct vn_cs_encoder * enc,const VkDrmFormatModifierPropertiesEXT * val)12244 vn_encode_VkDrmFormatModifierPropertiesEXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesEXT *val)
12245 {
12246     vn_encode_uint64_t(enc, &val->drmFormatModifier);
12247     vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount);
12248     vn_encode_VkFlags(enc, &val->drmFormatModifierTilingFeatures);
12249 }
12250 
12251 static inline void
vn_decode_VkDrmFormatModifierPropertiesEXT_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierPropertiesEXT * val)12252 vn_decode_VkDrmFormatModifierPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesEXT *val)
12253 {
12254     /* skip val->drmFormatModifier */
12255     /* skip val->drmFormatModifierPlaneCount */
12256     /* skip val->drmFormatModifierTilingFeatures */
12257 }
12258 
12259 /* struct VkDrmFormatModifierPropertiesListEXT chain */
12260 
12261 static inline void
vn_encode_VkDrmFormatModifierPropertiesListEXT_pnext(struct vn_cs_encoder * enc,const void * val)12262 vn_encode_VkDrmFormatModifierPropertiesListEXT_pnext(struct vn_cs_encoder *enc, const void *val)
12263 {
12264     /* no known/supported struct */
12265     vn_encode_simple_pointer(enc, NULL);
12266 }
12267 
12268 static inline void
vn_encode_VkDrmFormatModifierPropertiesListEXT_self(struct vn_cs_encoder * enc,const VkDrmFormatModifierPropertiesListEXT * val)12269 vn_encode_VkDrmFormatModifierPropertiesListEXT_self(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesListEXT *val)
12270 {
12271     /* skip val->{sType,pNext} */
12272     vn_encode_uint32_t(enc, &val->drmFormatModifierCount);
12273     if (val->pDrmFormatModifierProperties) {
12274         vn_encode_array_size(enc, val->drmFormatModifierCount);
12275         for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
12276             vn_encode_VkDrmFormatModifierPropertiesEXT(enc, &val->pDrmFormatModifierProperties[i]);
12277     } else {
12278         vn_encode_array_size(enc, 0);
12279     }
12280 }
12281 
12282 static inline void
vn_encode_VkDrmFormatModifierPropertiesListEXT(struct vn_cs_encoder * enc,const VkDrmFormatModifierPropertiesListEXT * val)12283 vn_encode_VkDrmFormatModifierPropertiesListEXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesListEXT *val)
12284 {
12285     assert(val->sType == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT);
12286     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT });
12287     vn_encode_VkDrmFormatModifierPropertiesListEXT_pnext(enc, val->pNext);
12288     vn_encode_VkDrmFormatModifierPropertiesListEXT_self(enc, val);
12289 }
12290 
12291 static inline void *
vn_decode_VkDrmFormatModifierPropertiesListEXT_pnext_partial_temp(struct vn_cs_decoder * dec)12292 vn_decode_VkDrmFormatModifierPropertiesListEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
12293 {
12294     /* no known/supported struct */
12295     if (vn_decode_simple_pointer(dec))
12296         vn_cs_decoder_set_fatal(dec);
12297     return NULL;
12298 }
12299 
12300 static inline void
vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierPropertiesListEXT * val)12301 vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesListEXT *val)
12302 {
12303     /* skip val->{sType,pNext} */
12304     /* WA1 */ val->drmFormatModifierCount = vn_peek_array_size(dec);
12305     if (vn_peek_array_size(dec)) {
12306         const uint32_t iter_count = vn_decode_array_size(dec, val->drmFormatModifierCount);
12307         val->pDrmFormatModifierProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDrmFormatModifierProperties) * iter_count);
12308         if (!val->pDrmFormatModifierProperties) return;
12309         for (uint32_t i = 0; i < iter_count; i++)
12310             vn_decode_VkDrmFormatModifierPropertiesEXT_partial_temp(dec, &val->pDrmFormatModifierProperties[i]);
12311     } else {
12312         vn_decode_array_size_unchecked(dec);
12313         val->pDrmFormatModifierProperties = NULL;
12314     }
12315 }
12316 
12317 static inline void
vn_decode_VkDrmFormatModifierPropertiesListEXT_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierPropertiesListEXT * val)12318 vn_decode_VkDrmFormatModifierPropertiesListEXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesListEXT *val)
12319 {
12320     VkStructureType stype;
12321     vn_decode_VkStructureType(dec, &stype);
12322     if (stype != VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT)
12323         vn_cs_decoder_set_fatal(dec);
12324 
12325     val->sType = stype;
12326     val->pNext = vn_decode_VkDrmFormatModifierPropertiesListEXT_pnext_partial_temp(dec);
12327     vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(dec, val);
12328 }
12329 
12330 /* struct VkFormatProperties3 chain */
12331 
12332 static inline void
vn_encode_VkFormatProperties3_pnext(struct vn_cs_encoder * enc,const void * val)12333 vn_encode_VkFormatProperties3_pnext(struct vn_cs_encoder *enc, const void *val)
12334 {
12335     /* no known/supported struct */
12336     vn_encode_simple_pointer(enc, NULL);
12337 }
12338 
12339 static inline void
vn_encode_VkFormatProperties3_self(struct vn_cs_encoder * enc,const VkFormatProperties3 * val)12340 vn_encode_VkFormatProperties3_self(struct vn_cs_encoder *enc, const VkFormatProperties3 *val)
12341 {
12342     /* skip val->{sType,pNext} */
12343     vn_encode_VkFlags64(enc, &val->linearTilingFeatures);
12344     vn_encode_VkFlags64(enc, &val->optimalTilingFeatures);
12345     vn_encode_VkFlags64(enc, &val->bufferFeatures);
12346 }
12347 
12348 static inline void
vn_encode_VkFormatProperties3(struct vn_cs_encoder * enc,const VkFormatProperties3 * val)12349 vn_encode_VkFormatProperties3(struct vn_cs_encoder *enc, const VkFormatProperties3 *val)
12350 {
12351     assert(val->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3);
12352     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 });
12353     vn_encode_VkFormatProperties3_pnext(enc, val->pNext);
12354     vn_encode_VkFormatProperties3_self(enc, val);
12355 }
12356 
12357 static inline void *
vn_decode_VkFormatProperties3_pnext_partial_temp(struct vn_cs_decoder * dec)12358 vn_decode_VkFormatProperties3_pnext_partial_temp(struct vn_cs_decoder *dec)
12359 {
12360     /* no known/supported struct */
12361     if (vn_decode_simple_pointer(dec))
12362         vn_cs_decoder_set_fatal(dec);
12363     return NULL;
12364 }
12365 
12366 static inline void
vn_decode_VkFormatProperties3_self_partial_temp(struct vn_cs_decoder * dec,VkFormatProperties3 * val)12367 vn_decode_VkFormatProperties3_self_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties3 *val)
12368 {
12369     /* skip val->{sType,pNext} */
12370     /* skip val->linearTilingFeatures */
12371     /* skip val->optimalTilingFeatures */
12372     /* skip val->bufferFeatures */
12373 }
12374 
12375 static inline void
vn_decode_VkFormatProperties3_partial_temp(struct vn_cs_decoder * dec,VkFormatProperties3 * val)12376 vn_decode_VkFormatProperties3_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties3 *val)
12377 {
12378     VkStructureType stype;
12379     vn_decode_VkStructureType(dec, &stype);
12380     if (stype != VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3)
12381         vn_cs_decoder_set_fatal(dec);
12382 
12383     val->sType = stype;
12384     val->pNext = vn_decode_VkFormatProperties3_pnext_partial_temp(dec);
12385     vn_decode_VkFormatProperties3_self_partial_temp(dec, val);
12386 }
12387 
12388 /* struct VkDrmFormatModifierProperties2EXT */
12389 
12390 static inline void
vn_encode_VkDrmFormatModifierProperties2EXT(struct vn_cs_encoder * enc,const VkDrmFormatModifierProperties2EXT * val)12391 vn_encode_VkDrmFormatModifierProperties2EXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierProperties2EXT *val)
12392 {
12393     vn_encode_uint64_t(enc, &val->drmFormatModifier);
12394     vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount);
12395     vn_encode_VkFlags64(enc, &val->drmFormatModifierTilingFeatures);
12396 }
12397 
12398 static inline void
vn_decode_VkDrmFormatModifierProperties2EXT_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierProperties2EXT * val)12399 vn_decode_VkDrmFormatModifierProperties2EXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierProperties2EXT *val)
12400 {
12401     /* skip val->drmFormatModifier */
12402     /* skip val->drmFormatModifierPlaneCount */
12403     /* skip val->drmFormatModifierTilingFeatures */
12404 }
12405 
12406 /* struct VkDrmFormatModifierPropertiesList2EXT chain */
12407 
12408 static inline void
vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext(struct vn_cs_encoder * enc,const void * val)12409 vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext(struct vn_cs_encoder *enc, const void *val)
12410 {
12411     /* no known/supported struct */
12412     vn_encode_simple_pointer(enc, NULL);
12413 }
12414 
12415 static inline void
vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(struct vn_cs_encoder * enc,const VkDrmFormatModifierPropertiesList2EXT * val)12416 vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val)
12417 {
12418     /* skip val->{sType,pNext} */
12419     vn_encode_uint32_t(enc, &val->drmFormatModifierCount);
12420     if (val->pDrmFormatModifierProperties) {
12421         vn_encode_array_size(enc, val->drmFormatModifierCount);
12422         for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
12423             vn_encode_VkDrmFormatModifierProperties2EXT(enc, &val->pDrmFormatModifierProperties[i]);
12424     } else {
12425         vn_encode_array_size(enc, 0);
12426     }
12427 }
12428 
12429 static inline void
vn_encode_VkDrmFormatModifierPropertiesList2EXT(struct vn_cs_encoder * enc,const VkDrmFormatModifierPropertiesList2EXT * val)12430 vn_encode_VkDrmFormatModifierPropertiesList2EXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val)
12431 {
12432     assert(val->sType == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT);
12433     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT });
12434     vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext(enc, val->pNext);
12435     vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(enc, val);
12436 }
12437 
12438 static inline void *
vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial_temp(struct vn_cs_decoder * dec)12439 vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial_temp(struct vn_cs_decoder *dec)
12440 {
12441     /* no known/supported struct */
12442     if (vn_decode_simple_pointer(dec))
12443         vn_cs_decoder_set_fatal(dec);
12444     return NULL;
12445 }
12446 
12447 static inline void
vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierPropertiesList2EXT * val)12448 vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val)
12449 {
12450     /* skip val->{sType,pNext} */
12451     /* WA1 */ val->drmFormatModifierCount = vn_peek_array_size(dec);
12452     if (vn_peek_array_size(dec)) {
12453         const uint32_t iter_count = vn_decode_array_size(dec, val->drmFormatModifierCount);
12454         val->pDrmFormatModifierProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDrmFormatModifierProperties) * iter_count);
12455         if (!val->pDrmFormatModifierProperties) return;
12456         for (uint32_t i = 0; i < iter_count; i++)
12457             vn_decode_VkDrmFormatModifierProperties2EXT_partial_temp(dec, &val->pDrmFormatModifierProperties[i]);
12458     } else {
12459         vn_decode_array_size_unchecked(dec);
12460         val->pDrmFormatModifierProperties = NULL;
12461     }
12462 }
12463 
12464 static inline void
vn_decode_VkDrmFormatModifierPropertiesList2EXT_partial_temp(struct vn_cs_decoder * dec,VkDrmFormatModifierPropertiesList2EXT * val)12465 vn_decode_VkDrmFormatModifierPropertiesList2EXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val)
12466 {
12467     VkStructureType stype;
12468     vn_decode_VkStructureType(dec, &stype);
12469     if (stype != VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT)
12470         vn_cs_decoder_set_fatal(dec);
12471 
12472     val->sType = stype;
12473     val->pNext = vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial_temp(dec);
12474     vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(dec, val);
12475 }
12476 
12477 /* struct VkFormatProperties2 chain */
12478 
12479 static inline void
vn_encode_VkFormatProperties2_pnext(struct vn_cs_encoder * enc,const void * val)12480 vn_encode_VkFormatProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
12481 {
12482     const VkBaseInStructure *pnext = val;
12483 
12484     while (pnext) {
12485         switch ((int32_t)pnext->sType) {
12486         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
12487             vn_encode_simple_pointer(enc, pnext);
12488             vn_encode_VkStructureType(enc, &pnext->sType);
12489             vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext);
12490             vn_encode_VkDrmFormatModifierPropertiesListEXT_self(enc, (const VkDrmFormatModifierPropertiesListEXT *)pnext);
12491             return;
12492         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
12493             vn_encode_simple_pointer(enc, pnext);
12494             vn_encode_VkStructureType(enc, &pnext->sType);
12495             vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext);
12496             vn_encode_VkFormatProperties3_self(enc, (const VkFormatProperties3 *)pnext);
12497             return;
12498         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
12499             vn_encode_simple_pointer(enc, pnext);
12500             vn_encode_VkStructureType(enc, &pnext->sType);
12501             vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext);
12502             vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(enc, (const VkDrmFormatModifierPropertiesList2EXT *)pnext);
12503             return;
12504         default:
12505             /* ignore unknown/unsupported struct */
12506             break;
12507         }
12508         pnext = pnext->pNext;
12509     }
12510 
12511     vn_encode_simple_pointer(enc, NULL);
12512 }
12513 
12514 static inline void
vn_encode_VkFormatProperties2_self(struct vn_cs_encoder * enc,const VkFormatProperties2 * val)12515 vn_encode_VkFormatProperties2_self(struct vn_cs_encoder *enc, const VkFormatProperties2 *val)
12516 {
12517     /* skip val->{sType,pNext} */
12518     vn_encode_VkFormatProperties(enc, &val->formatProperties);
12519 }
12520 
12521 static inline void
vn_encode_VkFormatProperties2(struct vn_cs_encoder * enc,const VkFormatProperties2 * val)12522 vn_encode_VkFormatProperties2(struct vn_cs_encoder *enc, const VkFormatProperties2 *val)
12523 {
12524     assert(val->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2);
12525     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 });
12526     vn_encode_VkFormatProperties2_pnext(enc, val->pNext);
12527     vn_encode_VkFormatProperties2_self(enc, val);
12528 }
12529 
12530 static inline void *
vn_decode_VkFormatProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)12531 vn_decode_VkFormatProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
12532 {
12533     VkBaseOutStructure *pnext;
12534     VkStructureType stype;
12535 
12536     if (!vn_decode_simple_pointer(dec))
12537         return NULL;
12538 
12539     vn_decode_VkStructureType(dec, &stype);
12540     switch ((int32_t)stype) {
12541     case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
12542         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDrmFormatModifierPropertiesListEXT));
12543         if (pnext) {
12544             pnext->sType = stype;
12545             pnext->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec);
12546             vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(dec, (VkDrmFormatModifierPropertiesListEXT *)pnext);
12547         }
12548         break;
12549     case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
12550         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkFormatProperties3));
12551         if (pnext) {
12552             pnext->sType = stype;
12553             pnext->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec);
12554             vn_decode_VkFormatProperties3_self_partial_temp(dec, (VkFormatProperties3 *)pnext);
12555         }
12556         break;
12557     case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
12558         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDrmFormatModifierPropertiesList2EXT));
12559         if (pnext) {
12560             pnext->sType = stype;
12561             pnext->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec);
12562             vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(dec, (VkDrmFormatModifierPropertiesList2EXT *)pnext);
12563         }
12564         break;
12565     default:
12566         /* unexpected struct */
12567         pnext = NULL;
12568         vn_cs_decoder_set_fatal(dec);
12569         break;
12570     }
12571 
12572     return pnext;
12573 }
12574 
12575 static inline void
vn_decode_VkFormatProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkFormatProperties2 * val)12576 vn_decode_VkFormatProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties2 *val)
12577 {
12578     /* skip val->{sType,pNext} */
12579     vn_decode_VkFormatProperties_partial_temp(dec, &val->formatProperties);
12580 }
12581 
12582 static inline void
vn_decode_VkFormatProperties2_partial_temp(struct vn_cs_decoder * dec,VkFormatProperties2 * val)12583 vn_decode_VkFormatProperties2_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties2 *val)
12584 {
12585     VkStructureType stype;
12586     vn_decode_VkStructureType(dec, &stype);
12587     if (stype != VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2)
12588         vn_cs_decoder_set_fatal(dec);
12589 
12590     val->sType = stype;
12591     val->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec);
12592     vn_decode_VkFormatProperties2_self_partial_temp(dec, val);
12593 }
12594 
12595 /* struct VkPhysicalDeviceExternalImageFormatInfo chain */
12596 
12597 static inline void *
vn_decode_VkPhysicalDeviceExternalImageFormatInfo_pnext_temp(struct vn_cs_decoder * dec)12598 vn_decode_VkPhysicalDeviceExternalImageFormatInfo_pnext_temp(struct vn_cs_decoder *dec)
12599 {
12600     /* no known/supported struct */
12601     if (vn_decode_simple_pointer(dec))
12602         vn_cs_decoder_set_fatal(dec);
12603     return NULL;
12604 }
12605 
12606 static inline void
vn_decode_VkPhysicalDeviceExternalImageFormatInfo_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalImageFormatInfo * val)12607 vn_decode_VkPhysicalDeviceExternalImageFormatInfo_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalImageFormatInfo *val)
12608 {
12609     /* skip val->{sType,pNext} */
12610     vn_decode_VkExternalMemoryHandleTypeFlagBits(dec, &val->handleType);
12611 }
12612 
12613 static inline void
vn_decode_VkPhysicalDeviceExternalImageFormatInfo_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalImageFormatInfo * val)12614 vn_decode_VkPhysicalDeviceExternalImageFormatInfo_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalImageFormatInfo *val)
12615 {
12616     VkStructureType stype;
12617     vn_decode_VkStructureType(dec, &stype);
12618     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO)
12619         vn_cs_decoder_set_fatal(dec);
12620 
12621     val->sType = stype;
12622     val->pNext = vn_decode_VkPhysicalDeviceExternalImageFormatInfo_pnext_temp(dec);
12623     vn_decode_VkPhysicalDeviceExternalImageFormatInfo_self_temp(dec, val);
12624 }
12625 
12626 static inline void
vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle_self(VkPhysicalDeviceExternalImageFormatInfo * val)12627 vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle_self(VkPhysicalDeviceExternalImageFormatInfo *val)
12628 {
12629     /* skip val->sType */
12630     /* skip val->pNext */
12631     /* skip val->handleType */
12632 }
12633 
12634 static inline void
vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle(VkPhysicalDeviceExternalImageFormatInfo * val)12635 vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle(VkPhysicalDeviceExternalImageFormatInfo *val)
12636 {
12637     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
12638 
12639     do {
12640         switch ((int32_t)pnext->sType) {
12641         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
12642             vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle_self((VkPhysicalDeviceExternalImageFormatInfo *)pnext);
12643             break;
12644         default:
12645             /* ignore unknown/unsupported struct */
12646             break;
12647         }
12648         pnext = pnext->pNext;
12649     } while (pnext);
12650 }
12651 
12652 /* struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT chain */
12653 
12654 static inline void *
vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext_temp(struct vn_cs_decoder * dec)12655 vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext_temp(struct vn_cs_decoder *dec)
12656 {
12657     /* no known/supported struct */
12658     if (vn_decode_simple_pointer(dec))
12659         vn_cs_decoder_set_fatal(dec);
12660     return NULL;
12661 }
12662 
12663 static inline void
vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * val)12664 vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
12665 {
12666     /* skip val->{sType,pNext} */
12667     vn_decode_uint64_t(dec, &val->drmFormatModifier);
12668     vn_decode_VkSharingMode(dec, &val->sharingMode);
12669     vn_decode_uint32_t(dec, &val->queueFamilyIndexCount);
12670     if (vn_peek_array_size(dec)) {
12671         const size_t array_size = vn_decode_array_size(dec, val->queueFamilyIndexCount);
12672         val->pQueueFamilyIndices = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pQueueFamilyIndices) * array_size);
12673         if (!val->pQueueFamilyIndices) return;
12674         vn_decode_uint32_t_array(dec, (uint32_t *)val->pQueueFamilyIndices, array_size);
12675     } else {
12676         vn_decode_array_size_unchecked(dec);
12677         val->pQueueFamilyIndices = NULL;
12678     }
12679 }
12680 
12681 static inline void
vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * val)12682 vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
12683 {
12684     VkStructureType stype;
12685     vn_decode_VkStructureType(dec, &stype);
12686     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT)
12687         vn_cs_decoder_set_fatal(dec);
12688 
12689     val->sType = stype;
12690     val->pNext = vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext_temp(dec);
12691     vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self_temp(dec, val);
12692 }
12693 
12694 static inline void
vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle_self(VkPhysicalDeviceImageDrmFormatModifierInfoEXT * val)12695 vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle_self(VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
12696 {
12697     /* skip val->sType */
12698     /* skip val->pNext */
12699     /* skip val->drmFormatModifier */
12700     /* skip val->sharingMode */
12701     /* skip val->queueFamilyIndexCount */
12702     /* skip val->pQueueFamilyIndices */
12703 }
12704 
12705 static inline void
vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle(VkPhysicalDeviceImageDrmFormatModifierInfoEXT * val)12706 vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle(VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
12707 {
12708     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
12709 
12710     do {
12711         switch ((int32_t)pnext->sType) {
12712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
12713             vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle_self((VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)pnext);
12714             break;
12715         default:
12716             /* ignore unknown/unsupported struct */
12717             break;
12718         }
12719         pnext = pnext->pNext;
12720     } while (pnext);
12721 }
12722 
12723 /* struct VkPhysicalDeviceImageFormatInfo2 chain */
12724 
12725 static inline void *
vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(struct vn_cs_decoder * dec)12726 vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(struct vn_cs_decoder *dec)
12727 {
12728     VkBaseOutStructure *pnext;
12729     VkStructureType stype;
12730 
12731     if (!vn_decode_simple_pointer(dec))
12732         return NULL;
12733 
12734     vn_decode_VkStructureType(dec, &stype);
12735     switch ((int32_t)stype) {
12736     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
12737         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExternalImageFormatInfo));
12738         if (pnext) {
12739             pnext->sType = stype;
12740             pnext->pNext = vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(dec);
12741             vn_decode_VkPhysicalDeviceExternalImageFormatInfo_self_temp(dec, (VkPhysicalDeviceExternalImageFormatInfo *)pnext);
12742         }
12743         break;
12744     case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
12745         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkImageFormatListCreateInfo));
12746         if (pnext) {
12747             pnext->sType = stype;
12748             pnext->pNext = vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(dec);
12749             vn_decode_VkImageFormatListCreateInfo_self_temp(dec, (VkImageFormatListCreateInfo *)pnext);
12750         }
12751         break;
12752     case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
12753         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT));
12754         if (pnext) {
12755             pnext->sType = stype;
12756             pnext->pNext = vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(dec);
12757             vn_decode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self_temp(dec, (VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)pnext);
12758         }
12759         break;
12760     case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
12761         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkImageStencilUsageCreateInfo));
12762         if (pnext) {
12763             pnext->sType = stype;
12764             pnext->pNext = vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(dec);
12765             vn_decode_VkImageStencilUsageCreateInfo_self_temp(dec, (VkImageStencilUsageCreateInfo *)pnext);
12766         }
12767         break;
12768     default:
12769         /* unexpected struct */
12770         pnext = NULL;
12771         vn_cs_decoder_set_fatal(dec);
12772         break;
12773     }
12774 
12775     return pnext;
12776 }
12777 
12778 static inline void
vn_decode_VkPhysicalDeviceImageFormatInfo2_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageFormatInfo2 * val)12779 vn_decode_VkPhysicalDeviceImageFormatInfo2_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageFormatInfo2 *val)
12780 {
12781     /* skip val->{sType,pNext} */
12782     vn_decode_VkFormat(dec, &val->format);
12783     vn_decode_VkImageType(dec, &val->type);
12784     vn_decode_VkImageTiling(dec, &val->tiling);
12785     vn_decode_VkFlags(dec, &val->usage);
12786     vn_decode_VkFlags(dec, &val->flags);
12787 }
12788 
12789 static inline void
vn_decode_VkPhysicalDeviceImageFormatInfo2_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceImageFormatInfo2 * val)12790 vn_decode_VkPhysicalDeviceImageFormatInfo2_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageFormatInfo2 *val)
12791 {
12792     VkStructureType stype;
12793     vn_decode_VkStructureType(dec, &stype);
12794     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2)
12795         vn_cs_decoder_set_fatal(dec);
12796 
12797     val->sType = stype;
12798     val->pNext = vn_decode_VkPhysicalDeviceImageFormatInfo2_pnext_temp(dec);
12799     vn_decode_VkPhysicalDeviceImageFormatInfo2_self_temp(dec, val);
12800 }
12801 
12802 static inline void
vn_replace_VkPhysicalDeviceImageFormatInfo2_handle_self(VkPhysicalDeviceImageFormatInfo2 * val)12803 vn_replace_VkPhysicalDeviceImageFormatInfo2_handle_self(VkPhysicalDeviceImageFormatInfo2 *val)
12804 {
12805     /* skip val->sType */
12806     /* skip val->pNext */
12807     /* skip val->format */
12808     /* skip val->type */
12809     /* skip val->tiling */
12810     /* skip val->usage */
12811     /* skip val->flags */
12812 }
12813 
12814 static inline void
vn_replace_VkPhysicalDeviceImageFormatInfo2_handle(VkPhysicalDeviceImageFormatInfo2 * val)12815 vn_replace_VkPhysicalDeviceImageFormatInfo2_handle(VkPhysicalDeviceImageFormatInfo2 *val)
12816 {
12817     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
12818 
12819     do {
12820         switch ((int32_t)pnext->sType) {
12821         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:
12822             vn_replace_VkPhysicalDeviceImageFormatInfo2_handle_self((VkPhysicalDeviceImageFormatInfo2 *)pnext);
12823             break;
12824         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
12825             vn_replace_VkPhysicalDeviceExternalImageFormatInfo_handle_self((VkPhysicalDeviceExternalImageFormatInfo *)pnext);
12826             break;
12827         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
12828             vn_replace_VkImageFormatListCreateInfo_handle_self((VkImageFormatListCreateInfo *)pnext);
12829             break;
12830         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
12831             vn_replace_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_handle_self((VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)pnext);
12832             break;
12833         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
12834             vn_replace_VkImageStencilUsageCreateInfo_handle_self((VkImageStencilUsageCreateInfo *)pnext);
12835             break;
12836         default:
12837             /* ignore unknown/unsupported struct */
12838             break;
12839         }
12840         pnext = pnext->pNext;
12841     } while (pnext);
12842 }
12843 
12844 /* struct VkExternalMemoryProperties */
12845 
12846 static inline void
vn_encode_VkExternalMemoryProperties(struct vn_cs_encoder * enc,const VkExternalMemoryProperties * val)12847 vn_encode_VkExternalMemoryProperties(struct vn_cs_encoder *enc, const VkExternalMemoryProperties *val)
12848 {
12849     vn_encode_VkFlags(enc, &val->externalMemoryFeatures);
12850     vn_encode_VkFlags(enc, &val->exportFromImportedHandleTypes);
12851     vn_encode_VkFlags(enc, &val->compatibleHandleTypes);
12852 }
12853 
12854 static inline void
vn_decode_VkExternalMemoryProperties_partial_temp(struct vn_cs_decoder * dec,VkExternalMemoryProperties * val)12855 vn_decode_VkExternalMemoryProperties_partial_temp(struct vn_cs_decoder *dec, VkExternalMemoryProperties *val)
12856 {
12857     /* skip val->externalMemoryFeatures */
12858     /* skip val->exportFromImportedHandleTypes */
12859     /* skip val->compatibleHandleTypes */
12860 }
12861 
12862 /* struct VkExternalImageFormatProperties chain */
12863 
12864 static inline void
vn_encode_VkExternalImageFormatProperties_pnext(struct vn_cs_encoder * enc,const void * val)12865 vn_encode_VkExternalImageFormatProperties_pnext(struct vn_cs_encoder *enc, const void *val)
12866 {
12867     /* no known/supported struct */
12868     vn_encode_simple_pointer(enc, NULL);
12869 }
12870 
12871 static inline void
vn_encode_VkExternalImageFormatProperties_self(struct vn_cs_encoder * enc,const VkExternalImageFormatProperties * val)12872 vn_encode_VkExternalImageFormatProperties_self(struct vn_cs_encoder *enc, const VkExternalImageFormatProperties *val)
12873 {
12874     /* skip val->{sType,pNext} */
12875     vn_encode_VkExternalMemoryProperties(enc, &val->externalMemoryProperties);
12876 }
12877 
12878 static inline void
vn_encode_VkExternalImageFormatProperties(struct vn_cs_encoder * enc,const VkExternalImageFormatProperties * val)12879 vn_encode_VkExternalImageFormatProperties(struct vn_cs_encoder *enc, const VkExternalImageFormatProperties *val)
12880 {
12881     assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES);
12882     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES });
12883     vn_encode_VkExternalImageFormatProperties_pnext(enc, val->pNext);
12884     vn_encode_VkExternalImageFormatProperties_self(enc, val);
12885 }
12886 
12887 static inline void *
vn_decode_VkExternalImageFormatProperties_pnext_partial_temp(struct vn_cs_decoder * dec)12888 vn_decode_VkExternalImageFormatProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
12889 {
12890     /* no known/supported struct */
12891     if (vn_decode_simple_pointer(dec))
12892         vn_cs_decoder_set_fatal(dec);
12893     return NULL;
12894 }
12895 
12896 static inline void
vn_decode_VkExternalImageFormatProperties_self_partial_temp(struct vn_cs_decoder * dec,VkExternalImageFormatProperties * val)12897 vn_decode_VkExternalImageFormatProperties_self_partial_temp(struct vn_cs_decoder *dec, VkExternalImageFormatProperties *val)
12898 {
12899     /* skip val->{sType,pNext} */
12900     vn_decode_VkExternalMemoryProperties_partial_temp(dec, &val->externalMemoryProperties);
12901 }
12902 
12903 static inline void
vn_decode_VkExternalImageFormatProperties_partial_temp(struct vn_cs_decoder * dec,VkExternalImageFormatProperties * val)12904 vn_decode_VkExternalImageFormatProperties_partial_temp(struct vn_cs_decoder *dec, VkExternalImageFormatProperties *val)
12905 {
12906     VkStructureType stype;
12907     vn_decode_VkStructureType(dec, &stype);
12908     if (stype != VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES)
12909         vn_cs_decoder_set_fatal(dec);
12910 
12911     val->sType = stype;
12912     val->pNext = vn_decode_VkExternalImageFormatProperties_pnext_partial_temp(dec);
12913     vn_decode_VkExternalImageFormatProperties_self_partial_temp(dec, val);
12914 }
12915 
12916 /* struct VkSamplerYcbcrConversionImageFormatProperties chain */
12917 
12918 static inline void
vn_encode_VkSamplerYcbcrConversionImageFormatProperties_pnext(struct vn_cs_encoder * enc,const void * val)12919 vn_encode_VkSamplerYcbcrConversionImageFormatProperties_pnext(struct vn_cs_encoder *enc, const void *val)
12920 {
12921     /* no known/supported struct */
12922     vn_encode_simple_pointer(enc, NULL);
12923 }
12924 
12925 static inline void
vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self(struct vn_cs_encoder * enc,const VkSamplerYcbcrConversionImageFormatProperties * val)12926 vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionImageFormatProperties *val)
12927 {
12928     /* skip val->{sType,pNext} */
12929     vn_encode_uint32_t(enc, &val->combinedImageSamplerDescriptorCount);
12930 }
12931 
12932 static inline void
vn_encode_VkSamplerYcbcrConversionImageFormatProperties(struct vn_cs_encoder * enc,const VkSamplerYcbcrConversionImageFormatProperties * val)12933 vn_encode_VkSamplerYcbcrConversionImageFormatProperties(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionImageFormatProperties *val)
12934 {
12935     assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES);
12936     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES });
12937     vn_encode_VkSamplerYcbcrConversionImageFormatProperties_pnext(enc, val->pNext);
12938     vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self(enc, val);
12939 }
12940 
12941 static inline void *
vn_decode_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial_temp(struct vn_cs_decoder * dec)12942 vn_decode_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
12943 {
12944     /* no known/supported struct */
12945     if (vn_decode_simple_pointer(dec))
12946         vn_cs_decoder_set_fatal(dec);
12947     return NULL;
12948 }
12949 
12950 static inline void
vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self_partial_temp(struct vn_cs_decoder * dec,VkSamplerYcbcrConversionImageFormatProperties * val)12951 vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self_partial_temp(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionImageFormatProperties *val)
12952 {
12953     /* skip val->{sType,pNext} */
12954     /* skip val->combinedImageSamplerDescriptorCount */
12955 }
12956 
12957 static inline void
vn_decode_VkSamplerYcbcrConversionImageFormatProperties_partial_temp(struct vn_cs_decoder * dec,VkSamplerYcbcrConversionImageFormatProperties * val)12958 vn_decode_VkSamplerYcbcrConversionImageFormatProperties_partial_temp(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionImageFormatProperties *val)
12959 {
12960     VkStructureType stype;
12961     vn_decode_VkStructureType(dec, &stype);
12962     if (stype != VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES)
12963         vn_cs_decoder_set_fatal(dec);
12964 
12965     val->sType = stype;
12966     val->pNext = vn_decode_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial_temp(dec);
12967     vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self_partial_temp(dec, val);
12968 }
12969 
12970 /* struct VkImageFormatProperties2 chain */
12971 
12972 static inline void
vn_encode_VkImageFormatProperties2_pnext(struct vn_cs_encoder * enc,const void * val)12973 vn_encode_VkImageFormatProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
12974 {
12975     const VkBaseInStructure *pnext = val;
12976 
12977     while (pnext) {
12978         switch ((int32_t)pnext->sType) {
12979         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
12980             vn_encode_simple_pointer(enc, pnext);
12981             vn_encode_VkStructureType(enc, &pnext->sType);
12982             vn_encode_VkImageFormatProperties2_pnext(enc, pnext->pNext);
12983             vn_encode_VkExternalImageFormatProperties_self(enc, (const VkExternalImageFormatProperties *)pnext);
12984             return;
12985         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
12986             vn_encode_simple_pointer(enc, pnext);
12987             vn_encode_VkStructureType(enc, &pnext->sType);
12988             vn_encode_VkImageFormatProperties2_pnext(enc, pnext->pNext);
12989             vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self(enc, (const VkSamplerYcbcrConversionImageFormatProperties *)pnext);
12990             return;
12991         default:
12992             /* ignore unknown/unsupported struct */
12993             break;
12994         }
12995         pnext = pnext->pNext;
12996     }
12997 
12998     vn_encode_simple_pointer(enc, NULL);
12999 }
13000 
13001 static inline void
vn_encode_VkImageFormatProperties2_self(struct vn_cs_encoder * enc,const VkImageFormatProperties2 * val)13002 vn_encode_VkImageFormatProperties2_self(struct vn_cs_encoder *enc, const VkImageFormatProperties2 *val)
13003 {
13004     /* skip val->{sType,pNext} */
13005     vn_encode_VkImageFormatProperties(enc, &val->imageFormatProperties);
13006 }
13007 
13008 static inline void
vn_encode_VkImageFormatProperties2(struct vn_cs_encoder * enc,const VkImageFormatProperties2 * val)13009 vn_encode_VkImageFormatProperties2(struct vn_cs_encoder *enc, const VkImageFormatProperties2 *val)
13010 {
13011     assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2);
13012     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 });
13013     vn_encode_VkImageFormatProperties2_pnext(enc, val->pNext);
13014     vn_encode_VkImageFormatProperties2_self(enc, val);
13015 }
13016 
13017 static inline void *
vn_decode_VkImageFormatProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)13018 vn_decode_VkImageFormatProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
13019 {
13020     VkBaseOutStructure *pnext;
13021     VkStructureType stype;
13022 
13023     if (!vn_decode_simple_pointer(dec))
13024         return NULL;
13025 
13026     vn_decode_VkStructureType(dec, &stype);
13027     switch ((int32_t)stype) {
13028     case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
13029         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkExternalImageFormatProperties));
13030         if (pnext) {
13031             pnext->sType = stype;
13032             pnext->pNext = vn_decode_VkImageFormatProperties2_pnext_partial_temp(dec);
13033             vn_decode_VkExternalImageFormatProperties_self_partial_temp(dec, (VkExternalImageFormatProperties *)pnext);
13034         }
13035         break;
13036     case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
13037         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkSamplerYcbcrConversionImageFormatProperties));
13038         if (pnext) {
13039             pnext->sType = stype;
13040             pnext->pNext = vn_decode_VkImageFormatProperties2_pnext_partial_temp(dec);
13041             vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self_partial_temp(dec, (VkSamplerYcbcrConversionImageFormatProperties *)pnext);
13042         }
13043         break;
13044     default:
13045         /* unexpected struct */
13046         pnext = NULL;
13047         vn_cs_decoder_set_fatal(dec);
13048         break;
13049     }
13050 
13051     return pnext;
13052 }
13053 
13054 static inline void
vn_decode_VkImageFormatProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkImageFormatProperties2 * val)13055 vn_decode_VkImageFormatProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkImageFormatProperties2 *val)
13056 {
13057     /* skip val->{sType,pNext} */
13058     vn_decode_VkImageFormatProperties_partial_temp(dec, &val->imageFormatProperties);
13059 }
13060 
13061 static inline void
vn_decode_VkImageFormatProperties2_partial_temp(struct vn_cs_decoder * dec,VkImageFormatProperties2 * val)13062 vn_decode_VkImageFormatProperties2_partial_temp(struct vn_cs_decoder *dec, VkImageFormatProperties2 *val)
13063 {
13064     VkStructureType stype;
13065     vn_decode_VkStructureType(dec, &stype);
13066     if (stype != VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2)
13067         vn_cs_decoder_set_fatal(dec);
13068 
13069     val->sType = stype;
13070     val->pNext = vn_decode_VkImageFormatProperties2_pnext_partial_temp(dec);
13071     vn_decode_VkImageFormatProperties2_self_partial_temp(dec, val);
13072 }
13073 
13074 /* struct VkQueueFamilyProperties2 chain */
13075 
13076 static inline void
vn_encode_VkQueueFamilyProperties2_pnext(struct vn_cs_encoder * enc,const void * val)13077 vn_encode_VkQueueFamilyProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
13078 {
13079     /* no known/supported struct */
13080     vn_encode_simple_pointer(enc, NULL);
13081 }
13082 
13083 static inline void
vn_encode_VkQueueFamilyProperties2_self(struct vn_cs_encoder * enc,const VkQueueFamilyProperties2 * val)13084 vn_encode_VkQueueFamilyProperties2_self(struct vn_cs_encoder *enc, const VkQueueFamilyProperties2 *val)
13085 {
13086     /* skip val->{sType,pNext} */
13087     vn_encode_VkQueueFamilyProperties(enc, &val->queueFamilyProperties);
13088 }
13089 
13090 static inline void
vn_encode_VkQueueFamilyProperties2(struct vn_cs_encoder * enc,const VkQueueFamilyProperties2 * val)13091 vn_encode_VkQueueFamilyProperties2(struct vn_cs_encoder *enc, const VkQueueFamilyProperties2 *val)
13092 {
13093     assert(val->sType == VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2);
13094     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 });
13095     vn_encode_VkQueueFamilyProperties2_pnext(enc, val->pNext);
13096     vn_encode_VkQueueFamilyProperties2_self(enc, val);
13097 }
13098 
13099 static inline void *
vn_decode_VkQueueFamilyProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)13100 vn_decode_VkQueueFamilyProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
13101 {
13102     /* no known/supported struct */
13103     if (vn_decode_simple_pointer(dec))
13104         vn_cs_decoder_set_fatal(dec);
13105     return NULL;
13106 }
13107 
13108 static inline void
vn_decode_VkQueueFamilyProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkQueueFamilyProperties2 * val)13109 vn_decode_VkQueueFamilyProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkQueueFamilyProperties2 *val)
13110 {
13111     /* skip val->{sType,pNext} */
13112     vn_decode_VkQueueFamilyProperties_partial_temp(dec, &val->queueFamilyProperties);
13113 }
13114 
13115 static inline void
vn_decode_VkQueueFamilyProperties2_partial_temp(struct vn_cs_decoder * dec,VkQueueFamilyProperties2 * val)13116 vn_decode_VkQueueFamilyProperties2_partial_temp(struct vn_cs_decoder *dec, VkQueueFamilyProperties2 *val)
13117 {
13118     VkStructureType stype;
13119     vn_decode_VkStructureType(dec, &stype);
13120     if (stype != VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2)
13121         vn_cs_decoder_set_fatal(dec);
13122 
13123     val->sType = stype;
13124     val->pNext = vn_decode_VkQueueFamilyProperties2_pnext_partial_temp(dec);
13125     vn_decode_VkQueueFamilyProperties2_self_partial_temp(dec, val);
13126 }
13127 
13128 /* struct VkPhysicalDeviceMemoryProperties2 chain */
13129 
13130 static inline void
vn_encode_VkPhysicalDeviceMemoryProperties2_pnext(struct vn_cs_encoder * enc,const void * val)13131 vn_encode_VkPhysicalDeviceMemoryProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
13132 {
13133     /* no known/supported struct */
13134     vn_encode_simple_pointer(enc, NULL);
13135 }
13136 
13137 static inline void
vn_encode_VkPhysicalDeviceMemoryProperties2_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceMemoryProperties2 * val)13138 vn_encode_VkPhysicalDeviceMemoryProperties2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties2 *val)
13139 {
13140     /* skip val->{sType,pNext} */
13141     vn_encode_VkPhysicalDeviceMemoryProperties(enc, &val->memoryProperties);
13142 }
13143 
13144 static inline void
vn_encode_VkPhysicalDeviceMemoryProperties2(struct vn_cs_encoder * enc,const VkPhysicalDeviceMemoryProperties2 * val)13145 vn_encode_VkPhysicalDeviceMemoryProperties2(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties2 *val)
13146 {
13147     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2);
13148     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 });
13149     vn_encode_VkPhysicalDeviceMemoryProperties2_pnext(enc, val->pNext);
13150     vn_encode_VkPhysicalDeviceMemoryProperties2_self(enc, val);
13151 }
13152 
13153 static inline void *
vn_decode_VkPhysicalDeviceMemoryProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)13154 vn_decode_VkPhysicalDeviceMemoryProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
13155 {
13156     /* no known/supported struct */
13157     if (vn_decode_simple_pointer(dec))
13158         vn_cs_decoder_set_fatal(dec);
13159     return NULL;
13160 }
13161 
13162 static inline void
vn_decode_VkPhysicalDeviceMemoryProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMemoryProperties2 * val)13163 vn_decode_VkPhysicalDeviceMemoryProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties2 *val)
13164 {
13165     /* skip val->{sType,pNext} */
13166     vn_decode_VkPhysicalDeviceMemoryProperties_partial_temp(dec, &val->memoryProperties);
13167 }
13168 
13169 static inline void
vn_decode_VkPhysicalDeviceMemoryProperties2_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceMemoryProperties2 * val)13170 vn_decode_VkPhysicalDeviceMemoryProperties2_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties2 *val)
13171 {
13172     VkStructureType stype;
13173     vn_decode_VkStructureType(dec, &stype);
13174     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2)
13175         vn_cs_decoder_set_fatal(dec);
13176 
13177     val->sType = stype;
13178     val->pNext = vn_decode_VkPhysicalDeviceMemoryProperties2_pnext_partial_temp(dec);
13179     vn_decode_VkPhysicalDeviceMemoryProperties2_self_partial_temp(dec, val);
13180 }
13181 
13182 /* struct VkPhysicalDeviceSparseImageFormatInfo2 chain */
13183 
13184 static inline void *
vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_pnext_temp(struct vn_cs_decoder * dec)13185 vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_pnext_temp(struct vn_cs_decoder *dec)
13186 {
13187     /* no known/supported struct */
13188     if (vn_decode_simple_pointer(dec))
13189         vn_cs_decoder_set_fatal(dec);
13190     return NULL;
13191 }
13192 
13193 static inline void
vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSparseImageFormatInfo2 * val)13194 vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSparseImageFormatInfo2 *val)
13195 {
13196     /* skip val->{sType,pNext} */
13197     vn_decode_VkFormat(dec, &val->format);
13198     vn_decode_VkImageType(dec, &val->type);
13199     vn_decode_VkSampleCountFlagBits(dec, &val->samples);
13200     vn_decode_VkFlags(dec, &val->usage);
13201     vn_decode_VkImageTiling(dec, &val->tiling);
13202 }
13203 
13204 static inline void
vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceSparseImageFormatInfo2 * val)13205 vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSparseImageFormatInfo2 *val)
13206 {
13207     VkStructureType stype;
13208     vn_decode_VkStructureType(dec, &stype);
13209     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2)
13210         vn_cs_decoder_set_fatal(dec);
13211 
13212     val->sType = stype;
13213     val->pNext = vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_pnext_temp(dec);
13214     vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_self_temp(dec, val);
13215 }
13216 
13217 static inline void
vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle_self(VkPhysicalDeviceSparseImageFormatInfo2 * val)13218 vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle_self(VkPhysicalDeviceSparseImageFormatInfo2 *val)
13219 {
13220     /* skip val->sType */
13221     /* skip val->pNext */
13222     /* skip val->format */
13223     /* skip val->type */
13224     /* skip val->samples */
13225     /* skip val->usage */
13226     /* skip val->tiling */
13227 }
13228 
13229 static inline void
vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle(VkPhysicalDeviceSparseImageFormatInfo2 * val)13230 vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle(VkPhysicalDeviceSparseImageFormatInfo2 *val)
13231 {
13232     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13233 
13234     do {
13235         switch ((int32_t)pnext->sType) {
13236         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:
13237             vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle_self((VkPhysicalDeviceSparseImageFormatInfo2 *)pnext);
13238             break;
13239         default:
13240             /* ignore unknown/unsupported struct */
13241             break;
13242         }
13243         pnext = pnext->pNext;
13244     } while (pnext);
13245 }
13246 
13247 /* struct VkSparseImageFormatProperties2 chain */
13248 
13249 static inline void
vn_encode_VkSparseImageFormatProperties2_pnext(struct vn_cs_encoder * enc,const void * val)13250 vn_encode_VkSparseImageFormatProperties2_pnext(struct vn_cs_encoder *enc, const void *val)
13251 {
13252     /* no known/supported struct */
13253     vn_encode_simple_pointer(enc, NULL);
13254 }
13255 
13256 static inline void
vn_encode_VkSparseImageFormatProperties2_self(struct vn_cs_encoder * enc,const VkSparseImageFormatProperties2 * val)13257 vn_encode_VkSparseImageFormatProperties2_self(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties2 *val)
13258 {
13259     /* skip val->{sType,pNext} */
13260     vn_encode_VkSparseImageFormatProperties(enc, &val->properties);
13261 }
13262 
13263 static inline void
vn_encode_VkSparseImageFormatProperties2(struct vn_cs_encoder * enc,const VkSparseImageFormatProperties2 * val)13264 vn_encode_VkSparseImageFormatProperties2(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties2 *val)
13265 {
13266     assert(val->sType == VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2);
13267     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 });
13268     vn_encode_VkSparseImageFormatProperties2_pnext(enc, val->pNext);
13269     vn_encode_VkSparseImageFormatProperties2_self(enc, val);
13270 }
13271 
13272 static inline void *
vn_decode_VkSparseImageFormatProperties2_pnext_partial_temp(struct vn_cs_decoder * dec)13273 vn_decode_VkSparseImageFormatProperties2_pnext_partial_temp(struct vn_cs_decoder *dec)
13274 {
13275     /* no known/supported struct */
13276     if (vn_decode_simple_pointer(dec))
13277         vn_cs_decoder_set_fatal(dec);
13278     return NULL;
13279 }
13280 
13281 static inline void
vn_decode_VkSparseImageFormatProperties2_self_partial_temp(struct vn_cs_decoder * dec,VkSparseImageFormatProperties2 * val)13282 vn_decode_VkSparseImageFormatProperties2_self_partial_temp(struct vn_cs_decoder *dec, VkSparseImageFormatProperties2 *val)
13283 {
13284     /* skip val->{sType,pNext} */
13285     vn_decode_VkSparseImageFormatProperties_partial_temp(dec, &val->properties);
13286 }
13287 
13288 static inline void
vn_decode_VkSparseImageFormatProperties2_partial_temp(struct vn_cs_decoder * dec,VkSparseImageFormatProperties2 * val)13289 vn_decode_VkSparseImageFormatProperties2_partial_temp(struct vn_cs_decoder *dec, VkSparseImageFormatProperties2 *val)
13290 {
13291     VkStructureType stype;
13292     vn_decode_VkStructureType(dec, &stype);
13293     if (stype != VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
13294         vn_cs_decoder_set_fatal(dec);
13295 
13296     val->sType = stype;
13297     val->pNext = vn_decode_VkSparseImageFormatProperties2_pnext_partial_temp(dec);
13298     vn_decode_VkSparseImageFormatProperties2_self_partial_temp(dec, val);
13299 }
13300 
13301 /* struct VkPhysicalDeviceExternalBufferInfo chain */
13302 
13303 static inline void *
vn_decode_VkPhysicalDeviceExternalBufferInfo_pnext_temp(struct vn_cs_decoder * dec)13304 vn_decode_VkPhysicalDeviceExternalBufferInfo_pnext_temp(struct vn_cs_decoder *dec)
13305 {
13306     /* no known/supported struct */
13307     if (vn_decode_simple_pointer(dec))
13308         vn_cs_decoder_set_fatal(dec);
13309     return NULL;
13310 }
13311 
13312 static inline void
vn_decode_VkPhysicalDeviceExternalBufferInfo_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalBufferInfo * val)13313 vn_decode_VkPhysicalDeviceExternalBufferInfo_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalBufferInfo *val)
13314 {
13315     /* skip val->{sType,pNext} */
13316     vn_decode_VkFlags(dec, &val->flags);
13317     vn_decode_VkFlags(dec, &val->usage);
13318     vn_decode_VkExternalMemoryHandleTypeFlagBits(dec, &val->handleType);
13319 }
13320 
13321 static inline void
vn_decode_VkPhysicalDeviceExternalBufferInfo_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalBufferInfo * val)13322 vn_decode_VkPhysicalDeviceExternalBufferInfo_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalBufferInfo *val)
13323 {
13324     VkStructureType stype;
13325     vn_decode_VkStructureType(dec, &stype);
13326     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)
13327         vn_cs_decoder_set_fatal(dec);
13328 
13329     val->sType = stype;
13330     val->pNext = vn_decode_VkPhysicalDeviceExternalBufferInfo_pnext_temp(dec);
13331     vn_decode_VkPhysicalDeviceExternalBufferInfo_self_temp(dec, val);
13332 }
13333 
13334 static inline void
vn_replace_VkPhysicalDeviceExternalBufferInfo_handle_self(VkPhysicalDeviceExternalBufferInfo * val)13335 vn_replace_VkPhysicalDeviceExternalBufferInfo_handle_self(VkPhysicalDeviceExternalBufferInfo *val)
13336 {
13337     /* skip val->sType */
13338     /* skip val->pNext */
13339     /* skip val->flags */
13340     /* skip val->usage */
13341     /* skip val->handleType */
13342 }
13343 
13344 static inline void
vn_replace_VkPhysicalDeviceExternalBufferInfo_handle(VkPhysicalDeviceExternalBufferInfo * val)13345 vn_replace_VkPhysicalDeviceExternalBufferInfo_handle(VkPhysicalDeviceExternalBufferInfo *val)
13346 {
13347     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13348 
13349     do {
13350         switch ((int32_t)pnext->sType) {
13351         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:
13352             vn_replace_VkPhysicalDeviceExternalBufferInfo_handle_self((VkPhysicalDeviceExternalBufferInfo *)pnext);
13353             break;
13354         default:
13355             /* ignore unknown/unsupported struct */
13356             break;
13357         }
13358         pnext = pnext->pNext;
13359     } while (pnext);
13360 }
13361 
13362 /* struct VkExternalBufferProperties chain */
13363 
13364 static inline void
vn_encode_VkExternalBufferProperties_pnext(struct vn_cs_encoder * enc,const void * val)13365 vn_encode_VkExternalBufferProperties_pnext(struct vn_cs_encoder *enc, const void *val)
13366 {
13367     /* no known/supported struct */
13368     vn_encode_simple_pointer(enc, NULL);
13369 }
13370 
13371 static inline void
vn_encode_VkExternalBufferProperties_self(struct vn_cs_encoder * enc,const VkExternalBufferProperties * val)13372 vn_encode_VkExternalBufferProperties_self(struct vn_cs_encoder *enc, const VkExternalBufferProperties *val)
13373 {
13374     /* skip val->{sType,pNext} */
13375     vn_encode_VkExternalMemoryProperties(enc, &val->externalMemoryProperties);
13376 }
13377 
13378 static inline void
vn_encode_VkExternalBufferProperties(struct vn_cs_encoder * enc,const VkExternalBufferProperties * val)13379 vn_encode_VkExternalBufferProperties(struct vn_cs_encoder *enc, const VkExternalBufferProperties *val)
13380 {
13381     assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES);
13382     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES });
13383     vn_encode_VkExternalBufferProperties_pnext(enc, val->pNext);
13384     vn_encode_VkExternalBufferProperties_self(enc, val);
13385 }
13386 
13387 static inline void *
vn_decode_VkExternalBufferProperties_pnext_partial_temp(struct vn_cs_decoder * dec)13388 vn_decode_VkExternalBufferProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
13389 {
13390     /* no known/supported struct */
13391     if (vn_decode_simple_pointer(dec))
13392         vn_cs_decoder_set_fatal(dec);
13393     return NULL;
13394 }
13395 
13396 static inline void
vn_decode_VkExternalBufferProperties_self_partial_temp(struct vn_cs_decoder * dec,VkExternalBufferProperties * val)13397 vn_decode_VkExternalBufferProperties_self_partial_temp(struct vn_cs_decoder *dec, VkExternalBufferProperties *val)
13398 {
13399     /* skip val->{sType,pNext} */
13400     vn_decode_VkExternalMemoryProperties_partial_temp(dec, &val->externalMemoryProperties);
13401 }
13402 
13403 static inline void
vn_decode_VkExternalBufferProperties_partial_temp(struct vn_cs_decoder * dec,VkExternalBufferProperties * val)13404 vn_decode_VkExternalBufferProperties_partial_temp(struct vn_cs_decoder *dec, VkExternalBufferProperties *val)
13405 {
13406     VkStructureType stype;
13407     vn_decode_VkStructureType(dec, &stype);
13408     if (stype != VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES)
13409         vn_cs_decoder_set_fatal(dec);
13410 
13411     val->sType = stype;
13412     val->pNext = vn_decode_VkExternalBufferProperties_pnext_partial_temp(dec);
13413     vn_decode_VkExternalBufferProperties_self_partial_temp(dec, val);
13414 }
13415 
13416 /* struct VkPhysicalDeviceExternalSemaphoreInfo chain */
13417 
13418 static inline void *
vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_pnext_temp(struct vn_cs_decoder * dec)13419 vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_pnext_temp(struct vn_cs_decoder *dec)
13420 {
13421     VkBaseOutStructure *pnext;
13422     VkStructureType stype;
13423 
13424     if (!vn_decode_simple_pointer(dec))
13425         return NULL;
13426 
13427     vn_decode_VkStructureType(dec, &stype);
13428     switch ((int32_t)stype) {
13429     case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
13430         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkSemaphoreTypeCreateInfo));
13431         if (pnext) {
13432             pnext->sType = stype;
13433             pnext->pNext = vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_pnext_temp(dec);
13434             vn_decode_VkSemaphoreTypeCreateInfo_self_temp(dec, (VkSemaphoreTypeCreateInfo *)pnext);
13435         }
13436         break;
13437     default:
13438         /* unexpected struct */
13439         pnext = NULL;
13440         vn_cs_decoder_set_fatal(dec);
13441         break;
13442     }
13443 
13444     return pnext;
13445 }
13446 
13447 static inline void
vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalSemaphoreInfo * val)13448 vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalSemaphoreInfo *val)
13449 {
13450     /* skip val->{sType,pNext} */
13451     vn_decode_VkExternalSemaphoreHandleTypeFlagBits(dec, &val->handleType);
13452 }
13453 
13454 static inline void
vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalSemaphoreInfo * val)13455 vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalSemaphoreInfo *val)
13456 {
13457     VkStructureType stype;
13458     vn_decode_VkStructureType(dec, &stype);
13459     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)
13460         vn_cs_decoder_set_fatal(dec);
13461 
13462     val->sType = stype;
13463     val->pNext = vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_pnext_temp(dec);
13464     vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_self_temp(dec, val);
13465 }
13466 
13467 static inline void
vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle_self(VkPhysicalDeviceExternalSemaphoreInfo * val)13468 vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle_self(VkPhysicalDeviceExternalSemaphoreInfo *val)
13469 {
13470     /* skip val->sType */
13471     /* skip val->pNext */
13472     /* skip val->handleType */
13473 }
13474 
13475 static inline void
vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle(VkPhysicalDeviceExternalSemaphoreInfo * val)13476 vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle(VkPhysicalDeviceExternalSemaphoreInfo *val)
13477 {
13478     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13479 
13480     do {
13481         switch ((int32_t)pnext->sType) {
13482         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:
13483             vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle_self((VkPhysicalDeviceExternalSemaphoreInfo *)pnext);
13484             break;
13485         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
13486             vn_replace_VkSemaphoreTypeCreateInfo_handle_self((VkSemaphoreTypeCreateInfo *)pnext);
13487             break;
13488         default:
13489             /* ignore unknown/unsupported struct */
13490             break;
13491         }
13492         pnext = pnext->pNext;
13493     } while (pnext);
13494 }
13495 
13496 /* struct VkExternalSemaphoreProperties chain */
13497 
13498 static inline void
vn_encode_VkExternalSemaphoreProperties_pnext(struct vn_cs_encoder * enc,const void * val)13499 vn_encode_VkExternalSemaphoreProperties_pnext(struct vn_cs_encoder *enc, const void *val)
13500 {
13501     /* no known/supported struct */
13502     vn_encode_simple_pointer(enc, NULL);
13503 }
13504 
13505 static inline void
vn_encode_VkExternalSemaphoreProperties_self(struct vn_cs_encoder * enc,const VkExternalSemaphoreProperties * val)13506 vn_encode_VkExternalSemaphoreProperties_self(struct vn_cs_encoder *enc, const VkExternalSemaphoreProperties *val)
13507 {
13508     /* skip val->{sType,pNext} */
13509     vn_encode_VkFlags(enc, &val->exportFromImportedHandleTypes);
13510     vn_encode_VkFlags(enc, &val->compatibleHandleTypes);
13511     vn_encode_VkFlags(enc, &val->externalSemaphoreFeatures);
13512 }
13513 
13514 static inline void
vn_encode_VkExternalSemaphoreProperties(struct vn_cs_encoder * enc,const VkExternalSemaphoreProperties * val)13515 vn_encode_VkExternalSemaphoreProperties(struct vn_cs_encoder *enc, const VkExternalSemaphoreProperties *val)
13516 {
13517     assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES);
13518     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES });
13519     vn_encode_VkExternalSemaphoreProperties_pnext(enc, val->pNext);
13520     vn_encode_VkExternalSemaphoreProperties_self(enc, val);
13521 }
13522 
13523 static inline void *
vn_decode_VkExternalSemaphoreProperties_pnext_partial_temp(struct vn_cs_decoder * dec)13524 vn_decode_VkExternalSemaphoreProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
13525 {
13526     /* no known/supported struct */
13527     if (vn_decode_simple_pointer(dec))
13528         vn_cs_decoder_set_fatal(dec);
13529     return NULL;
13530 }
13531 
13532 static inline void
vn_decode_VkExternalSemaphoreProperties_self_partial_temp(struct vn_cs_decoder * dec,VkExternalSemaphoreProperties * val)13533 vn_decode_VkExternalSemaphoreProperties_self_partial_temp(struct vn_cs_decoder *dec, VkExternalSemaphoreProperties *val)
13534 {
13535     /* skip val->{sType,pNext} */
13536     /* skip val->exportFromImportedHandleTypes */
13537     /* skip val->compatibleHandleTypes */
13538     /* skip val->externalSemaphoreFeatures */
13539 }
13540 
13541 static inline void
vn_decode_VkExternalSemaphoreProperties_partial_temp(struct vn_cs_decoder * dec,VkExternalSemaphoreProperties * val)13542 vn_decode_VkExternalSemaphoreProperties_partial_temp(struct vn_cs_decoder *dec, VkExternalSemaphoreProperties *val)
13543 {
13544     VkStructureType stype;
13545     vn_decode_VkStructureType(dec, &stype);
13546     if (stype != VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES)
13547         vn_cs_decoder_set_fatal(dec);
13548 
13549     val->sType = stype;
13550     val->pNext = vn_decode_VkExternalSemaphoreProperties_pnext_partial_temp(dec);
13551     vn_decode_VkExternalSemaphoreProperties_self_partial_temp(dec, val);
13552 }
13553 
13554 /* struct VkPhysicalDeviceExternalFenceInfo chain */
13555 
13556 static inline void *
vn_decode_VkPhysicalDeviceExternalFenceInfo_pnext_temp(struct vn_cs_decoder * dec)13557 vn_decode_VkPhysicalDeviceExternalFenceInfo_pnext_temp(struct vn_cs_decoder *dec)
13558 {
13559     /* no known/supported struct */
13560     if (vn_decode_simple_pointer(dec))
13561         vn_cs_decoder_set_fatal(dec);
13562     return NULL;
13563 }
13564 
13565 static inline void
vn_decode_VkPhysicalDeviceExternalFenceInfo_self_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalFenceInfo * val)13566 vn_decode_VkPhysicalDeviceExternalFenceInfo_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalFenceInfo *val)
13567 {
13568     /* skip val->{sType,pNext} */
13569     vn_decode_VkExternalFenceHandleTypeFlagBits(dec, &val->handleType);
13570 }
13571 
13572 static inline void
vn_decode_VkPhysicalDeviceExternalFenceInfo_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceExternalFenceInfo * val)13573 vn_decode_VkPhysicalDeviceExternalFenceInfo_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExternalFenceInfo *val)
13574 {
13575     VkStructureType stype;
13576     vn_decode_VkStructureType(dec, &stype);
13577     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO)
13578         vn_cs_decoder_set_fatal(dec);
13579 
13580     val->sType = stype;
13581     val->pNext = vn_decode_VkPhysicalDeviceExternalFenceInfo_pnext_temp(dec);
13582     vn_decode_VkPhysicalDeviceExternalFenceInfo_self_temp(dec, val);
13583 }
13584 
13585 static inline void
vn_replace_VkPhysicalDeviceExternalFenceInfo_handle_self(VkPhysicalDeviceExternalFenceInfo * val)13586 vn_replace_VkPhysicalDeviceExternalFenceInfo_handle_self(VkPhysicalDeviceExternalFenceInfo *val)
13587 {
13588     /* skip val->sType */
13589     /* skip val->pNext */
13590     /* skip val->handleType */
13591 }
13592 
13593 static inline void
vn_replace_VkPhysicalDeviceExternalFenceInfo_handle(VkPhysicalDeviceExternalFenceInfo * val)13594 vn_replace_VkPhysicalDeviceExternalFenceInfo_handle(VkPhysicalDeviceExternalFenceInfo *val)
13595 {
13596     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13597 
13598     do {
13599         switch ((int32_t)pnext->sType) {
13600         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:
13601             vn_replace_VkPhysicalDeviceExternalFenceInfo_handle_self((VkPhysicalDeviceExternalFenceInfo *)pnext);
13602             break;
13603         default:
13604             /* ignore unknown/unsupported struct */
13605             break;
13606         }
13607         pnext = pnext->pNext;
13608     } while (pnext);
13609 }
13610 
13611 /* struct VkExternalFenceProperties chain */
13612 
13613 static inline void
vn_encode_VkExternalFenceProperties_pnext(struct vn_cs_encoder * enc,const void * val)13614 vn_encode_VkExternalFenceProperties_pnext(struct vn_cs_encoder *enc, const void *val)
13615 {
13616     /* no known/supported struct */
13617     vn_encode_simple_pointer(enc, NULL);
13618 }
13619 
13620 static inline void
vn_encode_VkExternalFenceProperties_self(struct vn_cs_encoder * enc,const VkExternalFenceProperties * val)13621 vn_encode_VkExternalFenceProperties_self(struct vn_cs_encoder *enc, const VkExternalFenceProperties *val)
13622 {
13623     /* skip val->{sType,pNext} */
13624     vn_encode_VkFlags(enc, &val->exportFromImportedHandleTypes);
13625     vn_encode_VkFlags(enc, &val->compatibleHandleTypes);
13626     vn_encode_VkFlags(enc, &val->externalFenceFeatures);
13627 }
13628 
13629 static inline void
vn_encode_VkExternalFenceProperties(struct vn_cs_encoder * enc,const VkExternalFenceProperties * val)13630 vn_encode_VkExternalFenceProperties(struct vn_cs_encoder *enc, const VkExternalFenceProperties *val)
13631 {
13632     assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES);
13633     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES });
13634     vn_encode_VkExternalFenceProperties_pnext(enc, val->pNext);
13635     vn_encode_VkExternalFenceProperties_self(enc, val);
13636 }
13637 
13638 static inline void *
vn_decode_VkExternalFenceProperties_pnext_partial_temp(struct vn_cs_decoder * dec)13639 vn_decode_VkExternalFenceProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
13640 {
13641     /* no known/supported struct */
13642     if (vn_decode_simple_pointer(dec))
13643         vn_cs_decoder_set_fatal(dec);
13644     return NULL;
13645 }
13646 
13647 static inline void
vn_decode_VkExternalFenceProperties_self_partial_temp(struct vn_cs_decoder * dec,VkExternalFenceProperties * val)13648 vn_decode_VkExternalFenceProperties_self_partial_temp(struct vn_cs_decoder *dec, VkExternalFenceProperties *val)
13649 {
13650     /* skip val->{sType,pNext} */
13651     /* skip val->exportFromImportedHandleTypes */
13652     /* skip val->compatibleHandleTypes */
13653     /* skip val->externalFenceFeatures */
13654 }
13655 
13656 static inline void
vn_decode_VkExternalFenceProperties_partial_temp(struct vn_cs_decoder * dec,VkExternalFenceProperties * val)13657 vn_decode_VkExternalFenceProperties_partial_temp(struct vn_cs_decoder *dec, VkExternalFenceProperties *val)
13658 {
13659     VkStructureType stype;
13660     vn_decode_VkStructureType(dec, &stype);
13661     if (stype != VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES)
13662         vn_cs_decoder_set_fatal(dec);
13663 
13664     val->sType = stype;
13665     val->pNext = vn_decode_VkExternalFenceProperties_pnext_partial_temp(dec);
13666     vn_decode_VkExternalFenceProperties_self_partial_temp(dec, val);
13667 }
13668 
13669 /* struct VkPhysicalDeviceGroupProperties chain */
13670 
13671 static inline void
vn_encode_VkPhysicalDeviceGroupProperties_pnext(struct vn_cs_encoder * enc,const void * val)13672 vn_encode_VkPhysicalDeviceGroupProperties_pnext(struct vn_cs_encoder *enc, const void *val)
13673 {
13674     /* no known/supported struct */
13675     vn_encode_simple_pointer(enc, NULL);
13676 }
13677 
13678 static inline void
vn_encode_VkPhysicalDeviceGroupProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceGroupProperties * val)13679 vn_encode_VkPhysicalDeviceGroupProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceGroupProperties *val)
13680 {
13681     /* skip val->{sType,pNext} */
13682     vn_encode_uint32_t(enc, &val->physicalDeviceCount);
13683     vn_encode_array_size(enc, VK_MAX_DEVICE_GROUP_SIZE);
13684     for (uint32_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; i++)
13685         vn_encode_VkPhysicalDevice(enc, &val->physicalDevices[i]);
13686     vn_encode_VkBool32(enc, &val->subsetAllocation);
13687 }
13688 
13689 static inline void
vn_encode_VkPhysicalDeviceGroupProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceGroupProperties * val)13690 vn_encode_VkPhysicalDeviceGroupProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceGroupProperties *val)
13691 {
13692     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES);
13693     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES });
13694     vn_encode_VkPhysicalDeviceGroupProperties_pnext(enc, val->pNext);
13695     vn_encode_VkPhysicalDeviceGroupProperties_self(enc, val);
13696 }
13697 
13698 static inline void *
vn_decode_VkPhysicalDeviceGroupProperties_pnext_partial_temp(struct vn_cs_decoder * dec)13699 vn_decode_VkPhysicalDeviceGroupProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
13700 {
13701     /* no known/supported struct */
13702     if (vn_decode_simple_pointer(dec))
13703         vn_cs_decoder_set_fatal(dec);
13704     return NULL;
13705 }
13706 
13707 static inline void
vn_decode_VkPhysicalDeviceGroupProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceGroupProperties * val)13708 vn_decode_VkPhysicalDeviceGroupProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceGroupProperties *val)
13709 {
13710     /* skip val->{sType,pNext} */
13711     /* skip val->physicalDeviceCount */
13712     {
13713         const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_DEVICE_GROUP_SIZE);
13714         for (uint32_t i = 0; i < iter_count; i++)
13715             vn_decode_VkPhysicalDevice_temp(dec, &val->physicalDevices[i]);
13716     }
13717     /* skip val->subsetAllocation */
13718 }
13719 
13720 static inline void
vn_decode_VkPhysicalDeviceGroupProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceGroupProperties * val)13721 vn_decode_VkPhysicalDeviceGroupProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceGroupProperties *val)
13722 {
13723     VkStructureType stype;
13724     vn_decode_VkStructureType(dec, &stype);
13725     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES)
13726         vn_cs_decoder_set_fatal(dec);
13727 
13728     val->sType = stype;
13729     val->pNext = vn_decode_VkPhysicalDeviceGroupProperties_pnext_partial_temp(dec);
13730     vn_decode_VkPhysicalDeviceGroupProperties_self_partial_temp(dec, val);
13731 }
13732 
13733 /* struct VkDeviceQueueTimelineInfoMESA chain */
13734 
13735 static inline void *
vn_decode_VkDeviceQueueTimelineInfoMESA_pnext_temp(struct vn_cs_decoder * dec)13736 vn_decode_VkDeviceQueueTimelineInfoMESA_pnext_temp(struct vn_cs_decoder *dec)
13737 {
13738     /* no known/supported struct */
13739     if (vn_decode_simple_pointer(dec))
13740         vn_cs_decoder_set_fatal(dec);
13741     return NULL;
13742 }
13743 
13744 static inline void
vn_decode_VkDeviceQueueTimelineInfoMESA_self_temp(struct vn_cs_decoder * dec,VkDeviceQueueTimelineInfoMESA * val)13745 vn_decode_VkDeviceQueueTimelineInfoMESA_self_temp(struct vn_cs_decoder *dec, VkDeviceQueueTimelineInfoMESA *val)
13746 {
13747     /* skip val->{sType,pNext} */
13748     vn_decode_uint32_t(dec, &val->ringIdx);
13749 }
13750 
13751 static inline void
vn_decode_VkDeviceQueueTimelineInfoMESA_temp(struct vn_cs_decoder * dec,VkDeviceQueueTimelineInfoMESA * val)13752 vn_decode_VkDeviceQueueTimelineInfoMESA_temp(struct vn_cs_decoder *dec, VkDeviceQueueTimelineInfoMESA *val)
13753 {
13754     VkStructureType stype;
13755     vn_decode_VkStructureType(dec, &stype);
13756     if (stype != VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA)
13757         vn_cs_decoder_set_fatal(dec);
13758 
13759     val->sType = stype;
13760     val->pNext = vn_decode_VkDeviceQueueTimelineInfoMESA_pnext_temp(dec);
13761     vn_decode_VkDeviceQueueTimelineInfoMESA_self_temp(dec, val);
13762 }
13763 
13764 static inline void
vn_replace_VkDeviceQueueTimelineInfoMESA_handle_self(VkDeviceQueueTimelineInfoMESA * val)13765 vn_replace_VkDeviceQueueTimelineInfoMESA_handle_self(VkDeviceQueueTimelineInfoMESA *val)
13766 {
13767     /* skip val->sType */
13768     /* skip val->pNext */
13769     /* skip val->ringIdx */
13770 }
13771 
13772 static inline void
vn_replace_VkDeviceQueueTimelineInfoMESA_handle(VkDeviceQueueTimelineInfoMESA * val)13773 vn_replace_VkDeviceQueueTimelineInfoMESA_handle(VkDeviceQueueTimelineInfoMESA *val)
13774 {
13775     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13776 
13777     do {
13778         switch ((int32_t)pnext->sType) {
13779         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA:
13780             vn_replace_VkDeviceQueueTimelineInfoMESA_handle_self((VkDeviceQueueTimelineInfoMESA *)pnext);
13781             break;
13782         default:
13783             /* ignore unknown/unsupported struct */
13784             break;
13785         }
13786         pnext = pnext->pNext;
13787     } while (pnext);
13788 }
13789 
13790 /* struct VkDeviceQueueInfo2 chain */
13791 
13792 static inline void *
vn_decode_VkDeviceQueueInfo2_pnext_temp(struct vn_cs_decoder * dec)13793 vn_decode_VkDeviceQueueInfo2_pnext_temp(struct vn_cs_decoder *dec)
13794 {
13795     VkBaseOutStructure *pnext;
13796     VkStructureType stype;
13797 
13798     if (!vn_decode_simple_pointer(dec))
13799         return NULL;
13800 
13801     vn_decode_VkStructureType(dec, &stype);
13802     switch ((int32_t)stype) {
13803     case VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA:
13804         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDeviceQueueTimelineInfoMESA));
13805         if (pnext) {
13806             pnext->sType = stype;
13807             pnext->pNext = vn_decode_VkDeviceQueueInfo2_pnext_temp(dec);
13808             vn_decode_VkDeviceQueueTimelineInfoMESA_self_temp(dec, (VkDeviceQueueTimelineInfoMESA *)pnext);
13809         }
13810         break;
13811     default:
13812         /* unexpected struct */
13813         pnext = NULL;
13814         vn_cs_decoder_set_fatal(dec);
13815         break;
13816     }
13817 
13818     return pnext;
13819 }
13820 
13821 static inline void
vn_decode_VkDeviceQueueInfo2_self_temp(struct vn_cs_decoder * dec,VkDeviceQueueInfo2 * val)13822 vn_decode_VkDeviceQueueInfo2_self_temp(struct vn_cs_decoder *dec, VkDeviceQueueInfo2 *val)
13823 {
13824     /* skip val->{sType,pNext} */
13825     vn_decode_VkFlags(dec, &val->flags);
13826     vn_decode_uint32_t(dec, &val->queueFamilyIndex);
13827     vn_decode_uint32_t(dec, &val->queueIndex);
13828 }
13829 
13830 static inline void
vn_decode_VkDeviceQueueInfo2_temp(struct vn_cs_decoder * dec,VkDeviceQueueInfo2 * val)13831 vn_decode_VkDeviceQueueInfo2_temp(struct vn_cs_decoder *dec, VkDeviceQueueInfo2 *val)
13832 {
13833     VkStructureType stype;
13834     vn_decode_VkStructureType(dec, &stype);
13835     if (stype != VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2)
13836         vn_cs_decoder_set_fatal(dec);
13837 
13838     val->sType = stype;
13839     val->pNext = vn_decode_VkDeviceQueueInfo2_pnext_temp(dec);
13840     vn_decode_VkDeviceQueueInfo2_self_temp(dec, val);
13841 }
13842 
13843 static inline void
vn_replace_VkDeviceQueueInfo2_handle_self(VkDeviceQueueInfo2 * val)13844 vn_replace_VkDeviceQueueInfo2_handle_self(VkDeviceQueueInfo2 *val)
13845 {
13846     /* skip val->sType */
13847     /* skip val->pNext */
13848     /* skip val->flags */
13849     /* skip val->queueFamilyIndex */
13850     /* skip val->queueIndex */
13851 }
13852 
13853 static inline void
vn_replace_VkDeviceQueueInfo2_handle(VkDeviceQueueInfo2 * val)13854 vn_replace_VkDeviceQueueInfo2_handle(VkDeviceQueueInfo2 *val)
13855 {
13856     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13857 
13858     do {
13859         switch ((int32_t)pnext->sType) {
13860         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:
13861             vn_replace_VkDeviceQueueInfo2_handle_self((VkDeviceQueueInfo2 *)pnext);
13862             break;
13863         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA:
13864             vn_replace_VkDeviceQueueTimelineInfoMESA_handle_self((VkDeviceQueueTimelineInfoMESA *)pnext);
13865             break;
13866         default:
13867             /* ignore unknown/unsupported struct */
13868             break;
13869         }
13870         pnext = pnext->pNext;
13871     } while (pnext);
13872 }
13873 
13874 /* struct VkCalibratedTimestampInfoEXT chain */
13875 
13876 static inline void *
vn_decode_VkCalibratedTimestampInfoEXT_pnext_temp(struct vn_cs_decoder * dec)13877 vn_decode_VkCalibratedTimestampInfoEXT_pnext_temp(struct vn_cs_decoder *dec)
13878 {
13879     /* no known/supported struct */
13880     if (vn_decode_simple_pointer(dec))
13881         vn_cs_decoder_set_fatal(dec);
13882     return NULL;
13883 }
13884 
13885 static inline void
vn_decode_VkCalibratedTimestampInfoEXT_self_temp(struct vn_cs_decoder * dec,VkCalibratedTimestampInfoEXT * val)13886 vn_decode_VkCalibratedTimestampInfoEXT_self_temp(struct vn_cs_decoder *dec, VkCalibratedTimestampInfoEXT *val)
13887 {
13888     /* skip val->{sType,pNext} */
13889     vn_decode_VkTimeDomainEXT(dec, &val->timeDomain);
13890 }
13891 
13892 static inline void
vn_decode_VkCalibratedTimestampInfoEXT_temp(struct vn_cs_decoder * dec,VkCalibratedTimestampInfoEXT * val)13893 vn_decode_VkCalibratedTimestampInfoEXT_temp(struct vn_cs_decoder *dec, VkCalibratedTimestampInfoEXT *val)
13894 {
13895     VkStructureType stype;
13896     vn_decode_VkStructureType(dec, &stype);
13897     if (stype != VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)
13898         vn_cs_decoder_set_fatal(dec);
13899 
13900     val->sType = stype;
13901     val->pNext = vn_decode_VkCalibratedTimestampInfoEXT_pnext_temp(dec);
13902     vn_decode_VkCalibratedTimestampInfoEXT_self_temp(dec, val);
13903 }
13904 
13905 static inline void
vn_replace_VkCalibratedTimestampInfoEXT_handle_self(VkCalibratedTimestampInfoEXT * val)13906 vn_replace_VkCalibratedTimestampInfoEXT_handle_self(VkCalibratedTimestampInfoEXT *val)
13907 {
13908     /* skip val->sType */
13909     /* skip val->pNext */
13910     /* skip val->timeDomain */
13911 }
13912 
13913 static inline void
vn_replace_VkCalibratedTimestampInfoEXT_handle(VkCalibratedTimestampInfoEXT * val)13914 vn_replace_VkCalibratedTimestampInfoEXT_handle(VkCalibratedTimestampInfoEXT *val)
13915 {
13916     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
13917 
13918     do {
13919         switch ((int32_t)pnext->sType) {
13920         case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:
13921             vn_replace_VkCalibratedTimestampInfoEXT_handle_self((VkCalibratedTimestampInfoEXT *)pnext);
13922             break;
13923         default:
13924             /* ignore unknown/unsupported struct */
13925             break;
13926         }
13927         pnext = pnext->pNext;
13928     } while (pnext);
13929 }
13930 
13931 /* struct VkPhysicalDeviceToolProperties chain */
13932 
13933 static inline void
vn_encode_VkPhysicalDeviceToolProperties_pnext(struct vn_cs_encoder * enc,const void * val)13934 vn_encode_VkPhysicalDeviceToolProperties_pnext(struct vn_cs_encoder *enc, const void *val)
13935 {
13936     /* no known/supported struct */
13937     vn_encode_simple_pointer(enc, NULL);
13938 }
13939 
13940 static inline void
vn_encode_VkPhysicalDeviceToolProperties_self(struct vn_cs_encoder * enc,const VkPhysicalDeviceToolProperties * val)13941 vn_encode_VkPhysicalDeviceToolProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val)
13942 {
13943     /* skip val->{sType,pNext} */
13944     vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
13945     vn_encode_char_array(enc, val->name, VK_MAX_EXTENSION_NAME_SIZE);
13946     vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
13947     vn_encode_char_array(enc, val->version, VK_MAX_EXTENSION_NAME_SIZE);
13948     vn_encode_VkFlags(enc, &val->purposes);
13949     vn_encode_array_size(enc, VK_MAX_DESCRIPTION_SIZE);
13950     vn_encode_char_array(enc, val->description, VK_MAX_DESCRIPTION_SIZE);
13951     vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
13952     vn_encode_char_array(enc, val->layer, VK_MAX_EXTENSION_NAME_SIZE);
13953 }
13954 
13955 static inline void
vn_encode_VkPhysicalDeviceToolProperties(struct vn_cs_encoder * enc,const VkPhysicalDeviceToolProperties * val)13956 vn_encode_VkPhysicalDeviceToolProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val)
13957 {
13958     assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES);
13959     vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES });
13960     vn_encode_VkPhysicalDeviceToolProperties_pnext(enc, val->pNext);
13961     vn_encode_VkPhysicalDeviceToolProperties_self(enc, val);
13962 }
13963 
13964 static inline void *
vn_decode_VkPhysicalDeviceToolProperties_pnext_partial_temp(struct vn_cs_decoder * dec)13965 vn_decode_VkPhysicalDeviceToolProperties_pnext_partial_temp(struct vn_cs_decoder *dec)
13966 {
13967     /* no known/supported struct */
13968     if (vn_decode_simple_pointer(dec))
13969         vn_cs_decoder_set_fatal(dec);
13970     return NULL;
13971 }
13972 
13973 static inline void
vn_decode_VkPhysicalDeviceToolProperties_self_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceToolProperties * val)13974 vn_decode_VkPhysicalDeviceToolProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val)
13975 {
13976     /* skip val->{sType,pNext} */
13977     /* skip val->name */
13978     /* skip val->version */
13979     /* skip val->purposes */
13980     /* skip val->description */
13981     /* skip val->layer */
13982 }
13983 
13984 static inline void
vn_decode_VkPhysicalDeviceToolProperties_partial_temp(struct vn_cs_decoder * dec,VkPhysicalDeviceToolProperties * val)13985 vn_decode_VkPhysicalDeviceToolProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val)
13986 {
13987     VkStructureType stype;
13988     vn_decode_VkStructureType(dec, &stype);
13989     if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES)
13990         vn_cs_decoder_set_fatal(dec);
13991 
13992     val->sType = stype;
13993     val->pNext = vn_decode_VkPhysicalDeviceToolProperties_pnext_partial_temp(dec);
13994     vn_decode_VkPhysicalDeviceToolProperties_self_partial_temp(dec, val);
13995 }
13996 
vn_decode_vkEnumeratePhysicalDevices_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumeratePhysicalDevices * args)13997 static inline void vn_decode_vkEnumeratePhysicalDevices_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumeratePhysicalDevices *args)
13998 {
13999     vn_decode_VkInstance_lookup(dec, &args->instance);
14000     if (vn_decode_simple_pointer(dec)) {
14001         args->pPhysicalDeviceCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDeviceCount));
14002         if (!args->pPhysicalDeviceCount) return;
14003         vn_decode_uint32_t(dec, args->pPhysicalDeviceCount);
14004     } else {
14005         args->pPhysicalDeviceCount = NULL;
14006         vn_cs_decoder_set_fatal(dec);
14007     }
14008     if (vn_peek_array_size(dec)) {
14009         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPhysicalDeviceCount ? *args->pPhysicalDeviceCount : 0));
14010         args->pPhysicalDevices = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDevices) * iter_count);
14011         if (!args->pPhysicalDevices) return;
14012         for (uint32_t i = 0; i < iter_count; i++)
14013             vn_decode_VkPhysicalDevice_temp(dec, &args->pPhysicalDevices[i]);
14014     } else {
14015         vn_decode_array_size_unchecked(dec);
14016         args->pPhysicalDevices = NULL;
14017     }
14018 }
14019 
vn_replace_vkEnumeratePhysicalDevices_args_handle(struct vn_command_vkEnumeratePhysicalDevices * args)14020 static inline void vn_replace_vkEnumeratePhysicalDevices_args_handle(struct vn_command_vkEnumeratePhysicalDevices *args)
14021 {
14022     vn_replace_VkInstance_handle(&args->instance);
14023     /* skip args->pPhysicalDeviceCount */
14024     /* skip args->pPhysicalDevices */
14025 }
14026 
vn_encode_vkEnumeratePhysicalDevices_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumeratePhysicalDevices * args)14027 static inline void vn_encode_vkEnumeratePhysicalDevices_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumeratePhysicalDevices *args)
14028 {
14029     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT});
14030 
14031     vn_encode_VkResult(enc, &args->ret);
14032     /* skip args->instance */
14033     if (vn_encode_simple_pointer(enc, args->pPhysicalDeviceCount))
14034         vn_encode_uint32_t(enc, args->pPhysicalDeviceCount);
14035     if (args->pPhysicalDevices) {
14036         vn_encode_array_size(enc, (args->pPhysicalDeviceCount ? *args->pPhysicalDeviceCount : 0));
14037         for (uint32_t i = 0; i < (args->pPhysicalDeviceCount ? *args->pPhysicalDeviceCount : 0); i++)
14038             vn_encode_VkPhysicalDevice(enc, &args->pPhysicalDevices[i]);
14039     } else {
14040         vn_encode_array_size(enc, 0);
14041     }
14042 }
14043 
vn_decode_vkGetPhysicalDeviceProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceProperties * args)14044 static inline void vn_decode_vkGetPhysicalDeviceProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceProperties *args)
14045 {
14046     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14047     if (vn_decode_simple_pointer(dec)) {
14048         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties));
14049         if (!args->pProperties) return;
14050         vn_decode_VkPhysicalDeviceProperties_partial_temp(dec, args->pProperties);
14051     } else {
14052         args->pProperties = NULL;
14053         vn_cs_decoder_set_fatal(dec);
14054     }
14055 }
14056 
vn_replace_vkGetPhysicalDeviceProperties_args_handle(struct vn_command_vkGetPhysicalDeviceProperties * args)14057 static inline void vn_replace_vkGetPhysicalDeviceProperties_args_handle(struct vn_command_vkGetPhysicalDeviceProperties *args)
14058 {
14059     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14060     /* skip args->pProperties */
14061 }
14062 
vn_encode_vkGetPhysicalDeviceProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceProperties * args)14063 static inline void vn_encode_vkGetPhysicalDeviceProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceProperties *args)
14064 {
14065     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT});
14066 
14067     /* skip args->physicalDevice */
14068     if (vn_encode_simple_pointer(enc, args->pProperties))
14069         vn_encode_VkPhysicalDeviceProperties(enc, args->pProperties);
14070 }
14071 
vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties * args)14072 static inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties *args)
14073 {
14074     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14075     if (vn_decode_simple_pointer(dec)) {
14076         args->pQueueFamilyPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyPropertyCount));
14077         if (!args->pQueueFamilyPropertyCount) return;
14078         vn_decode_uint32_t(dec, args->pQueueFamilyPropertyCount);
14079     } else {
14080         args->pQueueFamilyPropertyCount = NULL;
14081         vn_cs_decoder_set_fatal(dec);
14082     }
14083     if (vn_peek_array_size(dec)) {
14084         const uint32_t iter_count = vn_decode_array_size(dec, (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0));
14085         args->pQueueFamilyProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyProperties) * iter_count);
14086         if (!args->pQueueFamilyProperties) return;
14087         for (uint32_t i = 0; i < iter_count; i++)
14088             vn_decode_VkQueueFamilyProperties_partial_temp(dec, &args->pQueueFamilyProperties[i]);
14089     } else {
14090         vn_decode_array_size_unchecked(dec);
14091         args->pQueueFamilyProperties = NULL;
14092     }
14093 }
14094 
vn_replace_vkGetPhysicalDeviceQueueFamilyProperties_args_handle(struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties * args)14095 static inline void vn_replace_vkGetPhysicalDeviceQueueFamilyProperties_args_handle(struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties *args)
14096 {
14097     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14098     /* skip args->pQueueFamilyPropertyCount */
14099     /* skip args->pQueueFamilyProperties */
14100 }
14101 
vn_encode_vkGetPhysicalDeviceQueueFamilyProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties * args)14102 static inline void vn_encode_vkGetPhysicalDeviceQueueFamilyProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties *args)
14103 {
14104     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT});
14105 
14106     /* skip args->physicalDevice */
14107     if (vn_encode_simple_pointer(enc, args->pQueueFamilyPropertyCount))
14108         vn_encode_uint32_t(enc, args->pQueueFamilyPropertyCount);
14109     if (args->pQueueFamilyProperties) {
14110         vn_encode_array_size(enc, (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0));
14111         for (uint32_t i = 0; i < (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0); i++)
14112             vn_encode_VkQueueFamilyProperties(enc, &args->pQueueFamilyProperties[i]);
14113     } else {
14114         vn_encode_array_size(enc, 0);
14115     }
14116 }
14117 
vn_decode_vkGetPhysicalDeviceMemoryProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceMemoryProperties * args)14118 static inline void vn_decode_vkGetPhysicalDeviceMemoryProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceMemoryProperties *args)
14119 {
14120     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14121     if (vn_decode_simple_pointer(dec)) {
14122         args->pMemoryProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryProperties));
14123         if (!args->pMemoryProperties) return;
14124         vn_decode_VkPhysicalDeviceMemoryProperties_partial_temp(dec, args->pMemoryProperties);
14125     } else {
14126         args->pMemoryProperties = NULL;
14127         vn_cs_decoder_set_fatal(dec);
14128     }
14129 }
14130 
vn_replace_vkGetPhysicalDeviceMemoryProperties_args_handle(struct vn_command_vkGetPhysicalDeviceMemoryProperties * args)14131 static inline void vn_replace_vkGetPhysicalDeviceMemoryProperties_args_handle(struct vn_command_vkGetPhysicalDeviceMemoryProperties *args)
14132 {
14133     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14134     /* skip args->pMemoryProperties */
14135 }
14136 
vn_encode_vkGetPhysicalDeviceMemoryProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceMemoryProperties * args)14137 static inline void vn_encode_vkGetPhysicalDeviceMemoryProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceMemoryProperties *args)
14138 {
14139     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT});
14140 
14141     /* skip args->physicalDevice */
14142     if (vn_encode_simple_pointer(enc, args->pMemoryProperties))
14143         vn_encode_VkPhysicalDeviceMemoryProperties(enc, args->pMemoryProperties);
14144 }
14145 
vn_decode_vkGetPhysicalDeviceFeatures_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceFeatures * args)14146 static inline void vn_decode_vkGetPhysicalDeviceFeatures_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceFeatures *args)
14147 {
14148     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14149     if (vn_decode_simple_pointer(dec)) {
14150         args->pFeatures = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pFeatures));
14151         if (!args->pFeatures) return;
14152         vn_decode_VkPhysicalDeviceFeatures_partial_temp(dec, args->pFeatures);
14153     } else {
14154         args->pFeatures = NULL;
14155         vn_cs_decoder_set_fatal(dec);
14156     }
14157 }
14158 
vn_replace_vkGetPhysicalDeviceFeatures_args_handle(struct vn_command_vkGetPhysicalDeviceFeatures * args)14159 static inline void vn_replace_vkGetPhysicalDeviceFeatures_args_handle(struct vn_command_vkGetPhysicalDeviceFeatures *args)
14160 {
14161     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14162     /* skip args->pFeatures */
14163 }
14164 
vn_encode_vkGetPhysicalDeviceFeatures_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceFeatures * args)14165 static inline void vn_encode_vkGetPhysicalDeviceFeatures_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceFeatures *args)
14166 {
14167     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT});
14168 
14169     /* skip args->physicalDevice */
14170     if (vn_encode_simple_pointer(enc, args->pFeatures))
14171         vn_encode_VkPhysicalDeviceFeatures(enc, args->pFeatures);
14172 }
14173 
vn_decode_vkGetPhysicalDeviceFormatProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceFormatProperties * args)14174 static inline void vn_decode_vkGetPhysicalDeviceFormatProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceFormatProperties *args)
14175 {
14176     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14177     vn_decode_VkFormat(dec, &args->format);
14178     if (vn_decode_simple_pointer(dec)) {
14179         args->pFormatProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pFormatProperties));
14180         if (!args->pFormatProperties) return;
14181         vn_decode_VkFormatProperties_partial_temp(dec, args->pFormatProperties);
14182     } else {
14183         args->pFormatProperties = NULL;
14184         vn_cs_decoder_set_fatal(dec);
14185     }
14186 }
14187 
vn_replace_vkGetPhysicalDeviceFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceFormatProperties * args)14188 static inline void vn_replace_vkGetPhysicalDeviceFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceFormatProperties *args)
14189 {
14190     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14191     /* skip args->format */
14192     /* skip args->pFormatProperties */
14193 }
14194 
vn_encode_vkGetPhysicalDeviceFormatProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceFormatProperties * args)14195 static inline void vn_encode_vkGetPhysicalDeviceFormatProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceFormatProperties *args)
14196 {
14197     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT});
14198 
14199     /* skip args->physicalDevice */
14200     /* skip args->format */
14201     if (vn_encode_simple_pointer(enc, args->pFormatProperties))
14202         vn_encode_VkFormatProperties(enc, args->pFormatProperties);
14203 }
14204 
vn_decode_vkGetPhysicalDeviceImageFormatProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceImageFormatProperties * args)14205 static inline void vn_decode_vkGetPhysicalDeviceImageFormatProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceImageFormatProperties *args)
14206 {
14207     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14208     vn_decode_VkFormat(dec, &args->format);
14209     vn_decode_VkImageType(dec, &args->type);
14210     vn_decode_VkImageTiling(dec, &args->tiling);
14211     vn_decode_VkFlags(dec, &args->usage);
14212     vn_decode_VkFlags(dec, &args->flags);
14213     if (vn_decode_simple_pointer(dec)) {
14214         args->pImageFormatProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageFormatProperties));
14215         if (!args->pImageFormatProperties) return;
14216         vn_decode_VkImageFormatProperties_partial_temp(dec, args->pImageFormatProperties);
14217     } else {
14218         args->pImageFormatProperties = NULL;
14219         vn_cs_decoder_set_fatal(dec);
14220     }
14221 }
14222 
vn_replace_vkGetPhysicalDeviceImageFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceImageFormatProperties * args)14223 static inline void vn_replace_vkGetPhysicalDeviceImageFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceImageFormatProperties *args)
14224 {
14225     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14226     /* skip args->format */
14227     /* skip args->type */
14228     /* skip args->tiling */
14229     /* skip args->usage */
14230     /* skip args->flags */
14231     /* skip args->pImageFormatProperties */
14232 }
14233 
vn_encode_vkGetPhysicalDeviceImageFormatProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceImageFormatProperties * args)14234 static inline void vn_encode_vkGetPhysicalDeviceImageFormatProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceImageFormatProperties *args)
14235 {
14236     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT});
14237 
14238     vn_encode_VkResult(enc, &args->ret);
14239     /* skip args->physicalDevice */
14240     /* skip args->format */
14241     /* skip args->type */
14242     /* skip args->tiling */
14243     /* skip args->usage */
14244     /* skip args->flags */
14245     if (vn_encode_simple_pointer(enc, args->pImageFormatProperties))
14246         vn_encode_VkImageFormatProperties(enc, args->pImageFormatProperties);
14247 }
14248 
vn_decode_vkCreateDevice_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateDevice * args)14249 static inline void vn_decode_vkCreateDevice_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateDevice *args)
14250 {
14251     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14252     if (vn_decode_simple_pointer(dec)) {
14253         args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
14254         if (!args->pCreateInfo) return;
14255         vn_decode_VkDeviceCreateInfo_temp(dec, (VkDeviceCreateInfo *)args->pCreateInfo);
14256     } else {
14257         args->pCreateInfo = NULL;
14258         vn_cs_decoder_set_fatal(dec);
14259     }
14260     if (vn_decode_simple_pointer(dec)) {
14261         vn_cs_decoder_set_fatal(dec);
14262     } else {
14263         args->pAllocator = NULL;
14264     }
14265     if (vn_decode_simple_pointer(dec)) {
14266         args->pDevice = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDevice));
14267         if (!args->pDevice) return;
14268         vn_decode_VkDevice_temp(dec, args->pDevice);
14269     } else {
14270         args->pDevice = NULL;
14271         vn_cs_decoder_set_fatal(dec);
14272     }
14273 }
14274 
vn_replace_vkCreateDevice_args_handle(struct vn_command_vkCreateDevice * args)14275 static inline void vn_replace_vkCreateDevice_args_handle(struct vn_command_vkCreateDevice *args)
14276 {
14277     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14278     if (args->pCreateInfo)
14279         vn_replace_VkDeviceCreateInfo_handle((VkDeviceCreateInfo *)args->pCreateInfo);
14280     /* skip args->pAllocator */
14281     /* skip args->pDevice */
14282 }
14283 
vn_encode_vkCreateDevice_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateDevice * args)14284 static inline void vn_encode_vkCreateDevice_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateDevice *args)
14285 {
14286     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateDevice_EXT});
14287 
14288     vn_encode_VkResult(enc, &args->ret);
14289     /* skip args->physicalDevice */
14290     /* skip args->pCreateInfo */
14291     /* skip args->pAllocator */
14292     if (vn_encode_simple_pointer(enc, args->pDevice))
14293         vn_encode_VkDevice(enc, args->pDevice);
14294 }
14295 
vn_decode_vkDestroyDevice_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyDevice * args)14296 static inline void vn_decode_vkDestroyDevice_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyDevice *args)
14297 {
14298     vn_decode_VkDevice_lookup(dec, &args->device);
14299     if (vn_decode_simple_pointer(dec)) {
14300         vn_cs_decoder_set_fatal(dec);
14301     } else {
14302         args->pAllocator = NULL;
14303     }
14304 }
14305 
vn_replace_vkDestroyDevice_args_handle(struct vn_command_vkDestroyDevice * args)14306 static inline void vn_replace_vkDestroyDevice_args_handle(struct vn_command_vkDestroyDevice *args)
14307 {
14308     vn_replace_VkDevice_handle(&args->device);
14309     /* skip args->pAllocator */
14310 }
14311 
vn_encode_vkDestroyDevice_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyDevice * args)14312 static inline void vn_encode_vkDestroyDevice_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyDevice *args)
14313 {
14314     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyDevice_EXT});
14315 
14316     /* skip args->device */
14317     /* skip args->pAllocator */
14318 }
14319 
vn_decode_vkEnumerateDeviceLayerProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumerateDeviceLayerProperties * args)14320 static inline void vn_decode_vkEnumerateDeviceLayerProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumerateDeviceLayerProperties *args)
14321 {
14322     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14323     if (vn_decode_simple_pointer(dec)) {
14324         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
14325         if (!args->pPropertyCount) return;
14326         vn_decode_uint32_t(dec, args->pPropertyCount);
14327     } else {
14328         args->pPropertyCount = NULL;
14329         vn_cs_decoder_set_fatal(dec);
14330     }
14331     if (vn_peek_array_size(dec)) {
14332         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
14333         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
14334         if (!args->pProperties) return;
14335         for (uint32_t i = 0; i < iter_count; i++)
14336             vn_decode_VkLayerProperties_partial_temp(dec, &args->pProperties[i]);
14337     } else {
14338         vn_decode_array_size_unchecked(dec);
14339         args->pProperties = NULL;
14340     }
14341 }
14342 
vn_replace_vkEnumerateDeviceLayerProperties_args_handle(struct vn_command_vkEnumerateDeviceLayerProperties * args)14343 static inline void vn_replace_vkEnumerateDeviceLayerProperties_args_handle(struct vn_command_vkEnumerateDeviceLayerProperties *args)
14344 {
14345     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14346     /* skip args->pPropertyCount */
14347     /* skip args->pProperties */
14348 }
14349 
vn_encode_vkEnumerateDeviceLayerProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumerateDeviceLayerProperties * args)14350 static inline void vn_encode_vkEnumerateDeviceLayerProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumerateDeviceLayerProperties *args)
14351 {
14352     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT});
14353 
14354     vn_encode_VkResult(enc, &args->ret);
14355     /* skip args->physicalDevice */
14356     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
14357         vn_encode_uint32_t(enc, args->pPropertyCount);
14358     if (args->pProperties) {
14359         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
14360         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
14361             vn_encode_VkLayerProperties(enc, &args->pProperties[i]);
14362     } else {
14363         vn_encode_array_size(enc, 0);
14364     }
14365 }
14366 
vn_decode_vkEnumerateDeviceExtensionProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumerateDeviceExtensionProperties * args)14367 static inline void vn_decode_vkEnumerateDeviceExtensionProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumerateDeviceExtensionProperties *args)
14368 {
14369     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14370     if (vn_peek_array_size(dec)) {
14371         const size_t string_size = vn_decode_array_size_unchecked(dec);
14372         args->pLayerName = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pLayerName) * string_size);
14373         if (!args->pLayerName) return;
14374         vn_decode_char_array(dec, (char *)args->pLayerName, string_size);
14375     } else {
14376         vn_decode_array_size_unchecked(dec);
14377         args->pLayerName = NULL;
14378     }
14379     if (vn_decode_simple_pointer(dec)) {
14380         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
14381         if (!args->pPropertyCount) return;
14382         vn_decode_uint32_t(dec, args->pPropertyCount);
14383     } else {
14384         args->pPropertyCount = NULL;
14385         vn_cs_decoder_set_fatal(dec);
14386     }
14387     if (vn_peek_array_size(dec)) {
14388         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
14389         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
14390         if (!args->pProperties) return;
14391         for (uint32_t i = 0; i < iter_count; i++)
14392             vn_decode_VkExtensionProperties_partial_temp(dec, &args->pProperties[i]);
14393     } else {
14394         vn_decode_array_size_unchecked(dec);
14395         args->pProperties = NULL;
14396     }
14397 }
14398 
vn_replace_vkEnumerateDeviceExtensionProperties_args_handle(struct vn_command_vkEnumerateDeviceExtensionProperties * args)14399 static inline void vn_replace_vkEnumerateDeviceExtensionProperties_args_handle(struct vn_command_vkEnumerateDeviceExtensionProperties *args)
14400 {
14401     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14402     /* skip args->pLayerName */
14403     /* skip args->pPropertyCount */
14404     /* skip args->pProperties */
14405 }
14406 
vn_encode_vkEnumerateDeviceExtensionProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumerateDeviceExtensionProperties * args)14407 static inline void vn_encode_vkEnumerateDeviceExtensionProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumerateDeviceExtensionProperties *args)
14408 {
14409     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT});
14410 
14411     vn_encode_VkResult(enc, &args->ret);
14412     /* skip args->physicalDevice */
14413     /* skip args->pLayerName */
14414     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
14415         vn_encode_uint32_t(enc, args->pPropertyCount);
14416     if (args->pProperties) {
14417         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
14418         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
14419             vn_encode_VkExtensionProperties(enc, &args->pProperties[i]);
14420     } else {
14421         vn_encode_array_size(enc, 0);
14422     }
14423 }
14424 
vn_decode_vkGetDeviceQueue_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetDeviceQueue * args)14425 static inline void vn_decode_vkGetDeviceQueue_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceQueue *args)
14426 {
14427     vn_decode_VkDevice_lookup(dec, &args->device);
14428     vn_decode_uint32_t(dec, &args->queueFamilyIndex);
14429     vn_decode_uint32_t(dec, &args->queueIndex);
14430     if (vn_decode_simple_pointer(dec)) {
14431         args->pQueue = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueue));
14432         if (!args->pQueue) return;
14433         vn_decode_VkQueue_temp(dec, args->pQueue);
14434     } else {
14435         args->pQueue = NULL;
14436         vn_cs_decoder_set_fatal(dec);
14437     }
14438 }
14439 
vn_replace_vkGetDeviceQueue_args_handle(struct vn_command_vkGetDeviceQueue * args)14440 static inline void vn_replace_vkGetDeviceQueue_args_handle(struct vn_command_vkGetDeviceQueue *args)
14441 {
14442     vn_replace_VkDevice_handle(&args->device);
14443     /* skip args->queueFamilyIndex */
14444     /* skip args->queueIndex */
14445     /* skip args->pQueue */
14446 }
14447 
vn_encode_vkGetDeviceQueue_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetDeviceQueue * args)14448 static inline void vn_encode_vkGetDeviceQueue_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceQueue *args)
14449 {
14450     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceQueue_EXT});
14451 
14452     /* skip args->device */
14453     /* skip args->queueFamilyIndex */
14454     /* skip args->queueIndex */
14455     if (vn_encode_simple_pointer(enc, args->pQueue))
14456         vn_encode_VkQueue(enc, args->pQueue);
14457 }
14458 
vn_decode_vkDeviceWaitIdle_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDeviceWaitIdle * args)14459 static inline void vn_decode_vkDeviceWaitIdle_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDeviceWaitIdle *args)
14460 {
14461     vn_decode_VkDevice_lookup(dec, &args->device);
14462 }
14463 
vn_replace_vkDeviceWaitIdle_args_handle(struct vn_command_vkDeviceWaitIdle * args)14464 static inline void vn_replace_vkDeviceWaitIdle_args_handle(struct vn_command_vkDeviceWaitIdle *args)
14465 {
14466     vn_replace_VkDevice_handle(&args->device);
14467 }
14468 
vn_encode_vkDeviceWaitIdle_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDeviceWaitIdle * args)14469 static inline void vn_encode_vkDeviceWaitIdle_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDeviceWaitIdle *args)
14470 {
14471     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT});
14472 
14473     vn_encode_VkResult(enc, &args->ret);
14474     /* skip args->device */
14475 }
14476 
vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties * args)14477 static inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties *args)
14478 {
14479     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14480     vn_decode_VkFormat(dec, &args->format);
14481     vn_decode_VkImageType(dec, &args->type);
14482     vn_decode_VkSampleCountFlagBits(dec, &args->samples);
14483     vn_decode_VkFlags(dec, &args->usage);
14484     vn_decode_VkImageTiling(dec, &args->tiling);
14485     if (vn_decode_simple_pointer(dec)) {
14486         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
14487         if (!args->pPropertyCount) return;
14488         vn_decode_uint32_t(dec, args->pPropertyCount);
14489     } else {
14490         args->pPropertyCount = NULL;
14491         vn_cs_decoder_set_fatal(dec);
14492     }
14493     if (vn_peek_array_size(dec)) {
14494         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
14495         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
14496         if (!args->pProperties) return;
14497         for (uint32_t i = 0; i < iter_count; i++)
14498             vn_decode_VkSparseImageFormatProperties_partial_temp(dec, &args->pProperties[i]);
14499     } else {
14500         vn_decode_array_size_unchecked(dec);
14501         args->pProperties = NULL;
14502     }
14503 }
14504 
vn_replace_vkGetPhysicalDeviceSparseImageFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties * args)14505 static inline void vn_replace_vkGetPhysicalDeviceSparseImageFormatProperties_args_handle(struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties *args)
14506 {
14507     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14508     /* skip args->format */
14509     /* skip args->type */
14510     /* skip args->samples */
14511     /* skip args->usage */
14512     /* skip args->tiling */
14513     /* skip args->pPropertyCount */
14514     /* skip args->pProperties */
14515 }
14516 
vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties * args)14517 static inline void vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties *args)
14518 {
14519     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT});
14520 
14521     /* skip args->physicalDevice */
14522     /* skip args->format */
14523     /* skip args->type */
14524     /* skip args->samples */
14525     /* skip args->usage */
14526     /* skip args->tiling */
14527     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
14528         vn_encode_uint32_t(enc, args->pPropertyCount);
14529     if (args->pProperties) {
14530         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
14531         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
14532             vn_encode_VkSparseImageFormatProperties(enc, &args->pProperties[i]);
14533     } else {
14534         vn_encode_array_size(enc, 0);
14535     }
14536 }
14537 
vn_decode_vkGetPhysicalDeviceFeatures2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceFeatures2 * args)14538 static inline void vn_decode_vkGetPhysicalDeviceFeatures2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceFeatures2 *args)
14539 {
14540     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14541     if (vn_decode_simple_pointer(dec)) {
14542         args->pFeatures = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pFeatures));
14543         if (!args->pFeatures) return;
14544         vn_decode_VkPhysicalDeviceFeatures2_partial_temp(dec, args->pFeatures);
14545     } else {
14546         args->pFeatures = NULL;
14547         vn_cs_decoder_set_fatal(dec);
14548     }
14549 }
14550 
vn_replace_vkGetPhysicalDeviceFeatures2_args_handle(struct vn_command_vkGetPhysicalDeviceFeatures2 * args)14551 static inline void vn_replace_vkGetPhysicalDeviceFeatures2_args_handle(struct vn_command_vkGetPhysicalDeviceFeatures2 *args)
14552 {
14553     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14554     /* skip args->pFeatures */
14555 }
14556 
vn_encode_vkGetPhysicalDeviceFeatures2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceFeatures2 * args)14557 static inline void vn_encode_vkGetPhysicalDeviceFeatures2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceFeatures2 *args)
14558 {
14559     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT});
14560 
14561     /* skip args->physicalDevice */
14562     if (vn_encode_simple_pointer(enc, args->pFeatures))
14563         vn_encode_VkPhysicalDeviceFeatures2(enc, args->pFeatures);
14564 }
14565 
vn_decode_vkGetPhysicalDeviceProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceProperties2 * args)14566 static inline void vn_decode_vkGetPhysicalDeviceProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceProperties2 *args)
14567 {
14568     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14569     if (vn_decode_simple_pointer(dec)) {
14570         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties));
14571         if (!args->pProperties) return;
14572         vn_decode_VkPhysicalDeviceProperties2_partial_temp(dec, args->pProperties);
14573     } else {
14574         args->pProperties = NULL;
14575         vn_cs_decoder_set_fatal(dec);
14576     }
14577 }
14578 
vn_replace_vkGetPhysicalDeviceProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceProperties2 * args)14579 static inline void vn_replace_vkGetPhysicalDeviceProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceProperties2 *args)
14580 {
14581     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14582     /* skip args->pProperties */
14583 }
14584 
vn_encode_vkGetPhysicalDeviceProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceProperties2 * args)14585 static inline void vn_encode_vkGetPhysicalDeviceProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceProperties2 *args)
14586 {
14587     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT});
14588 
14589     /* skip args->physicalDevice */
14590     if (vn_encode_simple_pointer(enc, args->pProperties))
14591         vn_encode_VkPhysicalDeviceProperties2(enc, args->pProperties);
14592 }
14593 
vn_decode_vkGetPhysicalDeviceFormatProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceFormatProperties2 * args)14594 static inline void vn_decode_vkGetPhysicalDeviceFormatProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceFormatProperties2 *args)
14595 {
14596     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14597     vn_decode_VkFormat(dec, &args->format);
14598     if (vn_decode_simple_pointer(dec)) {
14599         args->pFormatProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pFormatProperties));
14600         if (!args->pFormatProperties) return;
14601         vn_decode_VkFormatProperties2_partial_temp(dec, args->pFormatProperties);
14602     } else {
14603         args->pFormatProperties = NULL;
14604         vn_cs_decoder_set_fatal(dec);
14605     }
14606 }
14607 
vn_replace_vkGetPhysicalDeviceFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceFormatProperties2 * args)14608 static inline void vn_replace_vkGetPhysicalDeviceFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceFormatProperties2 *args)
14609 {
14610     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14611     /* skip args->format */
14612     /* skip args->pFormatProperties */
14613 }
14614 
vn_encode_vkGetPhysicalDeviceFormatProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceFormatProperties2 * args)14615 static inline void vn_encode_vkGetPhysicalDeviceFormatProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceFormatProperties2 *args)
14616 {
14617     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT});
14618 
14619     /* skip args->physicalDevice */
14620     /* skip args->format */
14621     if (vn_encode_simple_pointer(enc, args->pFormatProperties))
14622         vn_encode_VkFormatProperties2(enc, args->pFormatProperties);
14623 }
14624 
vn_decode_vkGetPhysicalDeviceImageFormatProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 * args)14625 static inline void vn_decode_vkGetPhysicalDeviceImageFormatProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 *args)
14626 {
14627     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14628     if (vn_decode_simple_pointer(dec)) {
14629         args->pImageFormatInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageFormatInfo));
14630         if (!args->pImageFormatInfo) return;
14631         vn_decode_VkPhysicalDeviceImageFormatInfo2_temp(dec, (VkPhysicalDeviceImageFormatInfo2 *)args->pImageFormatInfo);
14632     } else {
14633         args->pImageFormatInfo = NULL;
14634         vn_cs_decoder_set_fatal(dec);
14635     }
14636     if (vn_decode_simple_pointer(dec)) {
14637         args->pImageFormatProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageFormatProperties));
14638         if (!args->pImageFormatProperties) return;
14639         vn_decode_VkImageFormatProperties2_partial_temp(dec, args->pImageFormatProperties);
14640     } else {
14641         args->pImageFormatProperties = NULL;
14642         vn_cs_decoder_set_fatal(dec);
14643     }
14644 }
14645 
vn_replace_vkGetPhysicalDeviceImageFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 * args)14646 static inline void vn_replace_vkGetPhysicalDeviceImageFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 *args)
14647 {
14648     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14649     if (args->pImageFormatInfo)
14650         vn_replace_VkPhysicalDeviceImageFormatInfo2_handle((VkPhysicalDeviceImageFormatInfo2 *)args->pImageFormatInfo);
14651     /* skip args->pImageFormatProperties */
14652 }
14653 
vn_encode_vkGetPhysicalDeviceImageFormatProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 * args)14654 static inline void vn_encode_vkGetPhysicalDeviceImageFormatProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 *args)
14655 {
14656     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT});
14657 
14658     vn_encode_VkResult(enc, &args->ret);
14659     /* skip args->physicalDevice */
14660     /* skip args->pImageFormatInfo */
14661     if (vn_encode_simple_pointer(enc, args->pImageFormatProperties))
14662         vn_encode_VkImageFormatProperties2(enc, args->pImageFormatProperties);
14663 }
14664 
vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 * args)14665 static inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 *args)
14666 {
14667     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14668     if (vn_decode_simple_pointer(dec)) {
14669         args->pQueueFamilyPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyPropertyCount));
14670         if (!args->pQueueFamilyPropertyCount) return;
14671         vn_decode_uint32_t(dec, args->pQueueFamilyPropertyCount);
14672     } else {
14673         args->pQueueFamilyPropertyCount = NULL;
14674         vn_cs_decoder_set_fatal(dec);
14675     }
14676     if (vn_peek_array_size(dec)) {
14677         const uint32_t iter_count = vn_decode_array_size(dec, (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0));
14678         args->pQueueFamilyProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyProperties) * iter_count);
14679         if (!args->pQueueFamilyProperties) return;
14680         for (uint32_t i = 0; i < iter_count; i++)
14681             vn_decode_VkQueueFamilyProperties2_partial_temp(dec, &args->pQueueFamilyProperties[i]);
14682     } else {
14683         vn_decode_array_size_unchecked(dec);
14684         args->pQueueFamilyProperties = NULL;
14685     }
14686 }
14687 
vn_replace_vkGetPhysicalDeviceQueueFamilyProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 * args)14688 static inline void vn_replace_vkGetPhysicalDeviceQueueFamilyProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 *args)
14689 {
14690     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14691     /* skip args->pQueueFamilyPropertyCount */
14692     /* skip args->pQueueFamilyProperties */
14693 }
14694 
vn_encode_vkGetPhysicalDeviceQueueFamilyProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 * args)14695 static inline void vn_encode_vkGetPhysicalDeviceQueueFamilyProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 *args)
14696 {
14697     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT});
14698 
14699     /* skip args->physicalDevice */
14700     if (vn_encode_simple_pointer(enc, args->pQueueFamilyPropertyCount))
14701         vn_encode_uint32_t(enc, args->pQueueFamilyPropertyCount);
14702     if (args->pQueueFamilyProperties) {
14703         vn_encode_array_size(enc, (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0));
14704         for (uint32_t i = 0; i < (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0); i++)
14705             vn_encode_VkQueueFamilyProperties2(enc, &args->pQueueFamilyProperties[i]);
14706     } else {
14707         vn_encode_array_size(enc, 0);
14708     }
14709 }
14710 
vn_decode_vkGetPhysicalDeviceMemoryProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceMemoryProperties2 * args)14711 static inline void vn_decode_vkGetPhysicalDeviceMemoryProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceMemoryProperties2 *args)
14712 {
14713     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14714     if (vn_decode_simple_pointer(dec)) {
14715         args->pMemoryProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryProperties));
14716         if (!args->pMemoryProperties) return;
14717         vn_decode_VkPhysicalDeviceMemoryProperties2_partial_temp(dec, args->pMemoryProperties);
14718     } else {
14719         args->pMemoryProperties = NULL;
14720         vn_cs_decoder_set_fatal(dec);
14721     }
14722 }
14723 
vn_replace_vkGetPhysicalDeviceMemoryProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceMemoryProperties2 * args)14724 static inline void vn_replace_vkGetPhysicalDeviceMemoryProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceMemoryProperties2 *args)
14725 {
14726     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14727     /* skip args->pMemoryProperties */
14728 }
14729 
vn_encode_vkGetPhysicalDeviceMemoryProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceMemoryProperties2 * args)14730 static inline void vn_encode_vkGetPhysicalDeviceMemoryProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceMemoryProperties2 *args)
14731 {
14732     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT});
14733 
14734     /* skip args->physicalDevice */
14735     if (vn_encode_simple_pointer(enc, args->pMemoryProperties))
14736         vn_encode_VkPhysicalDeviceMemoryProperties2(enc, args->pMemoryProperties);
14737 }
14738 
vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 * args)14739 static inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 *args)
14740 {
14741     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14742     if (vn_decode_simple_pointer(dec)) {
14743         args->pFormatInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pFormatInfo));
14744         if (!args->pFormatInfo) return;
14745         vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_temp(dec, (VkPhysicalDeviceSparseImageFormatInfo2 *)args->pFormatInfo);
14746     } else {
14747         args->pFormatInfo = NULL;
14748         vn_cs_decoder_set_fatal(dec);
14749     }
14750     if (vn_decode_simple_pointer(dec)) {
14751         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
14752         if (!args->pPropertyCount) return;
14753         vn_decode_uint32_t(dec, args->pPropertyCount);
14754     } else {
14755         args->pPropertyCount = NULL;
14756         vn_cs_decoder_set_fatal(dec);
14757     }
14758     if (vn_peek_array_size(dec)) {
14759         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
14760         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
14761         if (!args->pProperties) return;
14762         for (uint32_t i = 0; i < iter_count; i++)
14763             vn_decode_VkSparseImageFormatProperties2_partial_temp(dec, &args->pProperties[i]);
14764     } else {
14765         vn_decode_array_size_unchecked(dec);
14766         args->pProperties = NULL;
14767     }
14768 }
14769 
vn_replace_vkGetPhysicalDeviceSparseImageFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 * args)14770 static inline void vn_replace_vkGetPhysicalDeviceSparseImageFormatProperties2_args_handle(struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 *args)
14771 {
14772     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14773     if (args->pFormatInfo)
14774         vn_replace_VkPhysicalDeviceSparseImageFormatInfo2_handle((VkPhysicalDeviceSparseImageFormatInfo2 *)args->pFormatInfo);
14775     /* skip args->pPropertyCount */
14776     /* skip args->pProperties */
14777 }
14778 
vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 * args)14779 static inline void vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 *args)
14780 {
14781     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT});
14782 
14783     /* skip args->physicalDevice */
14784     /* skip args->pFormatInfo */
14785     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
14786         vn_encode_uint32_t(enc, args->pPropertyCount);
14787     if (args->pProperties) {
14788         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
14789         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
14790             vn_encode_VkSparseImageFormatProperties2(enc, &args->pProperties[i]);
14791     } else {
14792         vn_encode_array_size(enc, 0);
14793     }
14794 }
14795 
vn_decode_vkGetPhysicalDeviceExternalBufferProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceExternalBufferProperties * args)14796 static inline void vn_decode_vkGetPhysicalDeviceExternalBufferProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceExternalBufferProperties *args)
14797 {
14798     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14799     if (vn_decode_simple_pointer(dec)) {
14800         args->pExternalBufferInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalBufferInfo));
14801         if (!args->pExternalBufferInfo) return;
14802         vn_decode_VkPhysicalDeviceExternalBufferInfo_temp(dec, (VkPhysicalDeviceExternalBufferInfo *)args->pExternalBufferInfo);
14803     } else {
14804         args->pExternalBufferInfo = NULL;
14805         vn_cs_decoder_set_fatal(dec);
14806     }
14807     if (vn_decode_simple_pointer(dec)) {
14808         args->pExternalBufferProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalBufferProperties));
14809         if (!args->pExternalBufferProperties) return;
14810         vn_decode_VkExternalBufferProperties_partial_temp(dec, args->pExternalBufferProperties);
14811     } else {
14812         args->pExternalBufferProperties = NULL;
14813         vn_cs_decoder_set_fatal(dec);
14814     }
14815 }
14816 
vn_replace_vkGetPhysicalDeviceExternalBufferProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalBufferProperties * args)14817 static inline void vn_replace_vkGetPhysicalDeviceExternalBufferProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalBufferProperties *args)
14818 {
14819     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14820     if (args->pExternalBufferInfo)
14821         vn_replace_VkPhysicalDeviceExternalBufferInfo_handle((VkPhysicalDeviceExternalBufferInfo *)args->pExternalBufferInfo);
14822     /* skip args->pExternalBufferProperties */
14823 }
14824 
vn_encode_vkGetPhysicalDeviceExternalBufferProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceExternalBufferProperties * args)14825 static inline void vn_encode_vkGetPhysicalDeviceExternalBufferProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceExternalBufferProperties *args)
14826 {
14827     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT});
14828 
14829     /* skip args->physicalDevice */
14830     /* skip args->pExternalBufferInfo */
14831     if (vn_encode_simple_pointer(enc, args->pExternalBufferProperties))
14832         vn_encode_VkExternalBufferProperties(enc, args->pExternalBufferProperties);
14833 }
14834 
vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties * args)14835 static inline void vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties *args)
14836 {
14837     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14838     if (vn_decode_simple_pointer(dec)) {
14839         args->pExternalSemaphoreInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalSemaphoreInfo));
14840         if (!args->pExternalSemaphoreInfo) return;
14841         vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_temp(dec, (VkPhysicalDeviceExternalSemaphoreInfo *)args->pExternalSemaphoreInfo);
14842     } else {
14843         args->pExternalSemaphoreInfo = NULL;
14844         vn_cs_decoder_set_fatal(dec);
14845     }
14846     if (vn_decode_simple_pointer(dec)) {
14847         args->pExternalSemaphoreProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalSemaphoreProperties));
14848         if (!args->pExternalSemaphoreProperties) return;
14849         vn_decode_VkExternalSemaphoreProperties_partial_temp(dec, args->pExternalSemaphoreProperties);
14850     } else {
14851         args->pExternalSemaphoreProperties = NULL;
14852         vn_cs_decoder_set_fatal(dec);
14853     }
14854 }
14855 
vn_replace_vkGetPhysicalDeviceExternalSemaphoreProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties * args)14856 static inline void vn_replace_vkGetPhysicalDeviceExternalSemaphoreProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties *args)
14857 {
14858     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14859     if (args->pExternalSemaphoreInfo)
14860         vn_replace_VkPhysicalDeviceExternalSemaphoreInfo_handle((VkPhysicalDeviceExternalSemaphoreInfo *)args->pExternalSemaphoreInfo);
14861     /* skip args->pExternalSemaphoreProperties */
14862 }
14863 
vn_encode_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties * args)14864 static inline void vn_encode_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties *args)
14865 {
14866     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT});
14867 
14868     /* skip args->physicalDevice */
14869     /* skip args->pExternalSemaphoreInfo */
14870     if (vn_encode_simple_pointer(enc, args->pExternalSemaphoreProperties))
14871         vn_encode_VkExternalSemaphoreProperties(enc, args->pExternalSemaphoreProperties);
14872 }
14873 
vn_decode_vkGetPhysicalDeviceExternalFenceProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceExternalFenceProperties * args)14874 static inline void vn_decode_vkGetPhysicalDeviceExternalFenceProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceExternalFenceProperties *args)
14875 {
14876     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
14877     if (vn_decode_simple_pointer(dec)) {
14878         args->pExternalFenceInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalFenceInfo));
14879         if (!args->pExternalFenceInfo) return;
14880         vn_decode_VkPhysicalDeviceExternalFenceInfo_temp(dec, (VkPhysicalDeviceExternalFenceInfo *)args->pExternalFenceInfo);
14881     } else {
14882         args->pExternalFenceInfo = NULL;
14883         vn_cs_decoder_set_fatal(dec);
14884     }
14885     if (vn_decode_simple_pointer(dec)) {
14886         args->pExternalFenceProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalFenceProperties));
14887         if (!args->pExternalFenceProperties) return;
14888         vn_decode_VkExternalFenceProperties_partial_temp(dec, args->pExternalFenceProperties);
14889     } else {
14890         args->pExternalFenceProperties = NULL;
14891         vn_cs_decoder_set_fatal(dec);
14892     }
14893 }
14894 
vn_replace_vkGetPhysicalDeviceExternalFenceProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalFenceProperties * args)14895 static inline void vn_replace_vkGetPhysicalDeviceExternalFenceProperties_args_handle(struct vn_command_vkGetPhysicalDeviceExternalFenceProperties *args)
14896 {
14897     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
14898     if (args->pExternalFenceInfo)
14899         vn_replace_VkPhysicalDeviceExternalFenceInfo_handle((VkPhysicalDeviceExternalFenceInfo *)args->pExternalFenceInfo);
14900     /* skip args->pExternalFenceProperties */
14901 }
14902 
vn_encode_vkGetPhysicalDeviceExternalFenceProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceExternalFenceProperties * args)14903 static inline void vn_encode_vkGetPhysicalDeviceExternalFenceProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceExternalFenceProperties *args)
14904 {
14905     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT});
14906 
14907     /* skip args->physicalDevice */
14908     /* skip args->pExternalFenceInfo */
14909     if (vn_encode_simple_pointer(enc, args->pExternalFenceProperties))
14910         vn_encode_VkExternalFenceProperties(enc, args->pExternalFenceProperties);
14911 }
14912 
vn_decode_vkEnumeratePhysicalDeviceGroups_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumeratePhysicalDeviceGroups * args)14913 static inline void vn_decode_vkEnumeratePhysicalDeviceGroups_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumeratePhysicalDeviceGroups *args)
14914 {
14915     vn_decode_VkInstance_lookup(dec, &args->instance);
14916     if (vn_decode_simple_pointer(dec)) {
14917         args->pPhysicalDeviceGroupCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDeviceGroupCount));
14918         if (!args->pPhysicalDeviceGroupCount) return;
14919         vn_decode_uint32_t(dec, args->pPhysicalDeviceGroupCount);
14920     } else {
14921         args->pPhysicalDeviceGroupCount = NULL;
14922         vn_cs_decoder_set_fatal(dec);
14923     }
14924     if (vn_peek_array_size(dec)) {
14925         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPhysicalDeviceGroupCount ? *args->pPhysicalDeviceGroupCount : 0));
14926         args->pPhysicalDeviceGroupProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDeviceGroupProperties) * iter_count);
14927         if (!args->pPhysicalDeviceGroupProperties) return;
14928         for (uint32_t i = 0; i < iter_count; i++)
14929             vn_decode_VkPhysicalDeviceGroupProperties_partial_temp(dec, &args->pPhysicalDeviceGroupProperties[i]);
14930     } else {
14931         vn_decode_array_size_unchecked(dec);
14932         args->pPhysicalDeviceGroupProperties = NULL;
14933     }
14934 }
14935 
vn_replace_vkEnumeratePhysicalDeviceGroups_args_handle(struct vn_command_vkEnumeratePhysicalDeviceGroups * args)14936 static inline void vn_replace_vkEnumeratePhysicalDeviceGroups_args_handle(struct vn_command_vkEnumeratePhysicalDeviceGroups *args)
14937 {
14938     vn_replace_VkInstance_handle(&args->instance);
14939     /* skip args->pPhysicalDeviceGroupCount */
14940     /* skip args->pPhysicalDeviceGroupProperties */
14941 }
14942 
vn_encode_vkEnumeratePhysicalDeviceGroups_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumeratePhysicalDeviceGroups * args)14943 static inline void vn_encode_vkEnumeratePhysicalDeviceGroups_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumeratePhysicalDeviceGroups *args)
14944 {
14945     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT});
14946 
14947     vn_encode_VkResult(enc, &args->ret);
14948     /* skip args->instance */
14949     if (vn_encode_simple_pointer(enc, args->pPhysicalDeviceGroupCount))
14950         vn_encode_uint32_t(enc, args->pPhysicalDeviceGroupCount);
14951     if (args->pPhysicalDeviceGroupProperties) {
14952         vn_encode_array_size(enc, (args->pPhysicalDeviceGroupCount ? *args->pPhysicalDeviceGroupCount : 0));
14953         for (uint32_t i = 0; i < (args->pPhysicalDeviceGroupCount ? *args->pPhysicalDeviceGroupCount : 0); i++)
14954             vn_encode_VkPhysicalDeviceGroupProperties(enc, &args->pPhysicalDeviceGroupProperties[i]);
14955     } else {
14956         vn_encode_array_size(enc, 0);
14957     }
14958 }
14959 
vn_decode_vkGetDeviceGroupPeerMemoryFeatures_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetDeviceGroupPeerMemoryFeatures * args)14960 static inline void vn_decode_vkGetDeviceGroupPeerMemoryFeatures_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceGroupPeerMemoryFeatures *args)
14961 {
14962     vn_decode_VkDevice_lookup(dec, &args->device);
14963     vn_decode_uint32_t(dec, &args->heapIndex);
14964     vn_decode_uint32_t(dec, &args->localDeviceIndex);
14965     vn_decode_uint32_t(dec, &args->remoteDeviceIndex);
14966     if (vn_decode_simple_pointer(dec)) {
14967         args->pPeerMemoryFeatures = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPeerMemoryFeatures));
14968         if (!args->pPeerMemoryFeatures) return;
14969     } else {
14970         args->pPeerMemoryFeatures = NULL;
14971         vn_cs_decoder_set_fatal(dec);
14972     }
14973 }
14974 
vn_replace_vkGetDeviceGroupPeerMemoryFeatures_args_handle(struct vn_command_vkGetDeviceGroupPeerMemoryFeatures * args)14975 static inline void vn_replace_vkGetDeviceGroupPeerMemoryFeatures_args_handle(struct vn_command_vkGetDeviceGroupPeerMemoryFeatures *args)
14976 {
14977     vn_replace_VkDevice_handle(&args->device);
14978     /* skip args->heapIndex */
14979     /* skip args->localDeviceIndex */
14980     /* skip args->remoteDeviceIndex */
14981     /* skip args->pPeerMemoryFeatures */
14982 }
14983 
vn_encode_vkGetDeviceGroupPeerMemoryFeatures_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetDeviceGroupPeerMemoryFeatures * args)14984 static inline void vn_encode_vkGetDeviceGroupPeerMemoryFeatures_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceGroupPeerMemoryFeatures *args)
14985 {
14986     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT});
14987 
14988     /* skip args->device */
14989     /* skip args->heapIndex */
14990     /* skip args->localDeviceIndex */
14991     /* skip args->remoteDeviceIndex */
14992     if (vn_encode_simple_pointer(enc, args->pPeerMemoryFeatures))
14993         vn_encode_VkFlags(enc, args->pPeerMemoryFeatures);
14994 }
14995 
vn_decode_vkGetDeviceQueue2_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetDeviceQueue2 * args)14996 static inline void vn_decode_vkGetDeviceQueue2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceQueue2 *args)
14997 {
14998     vn_decode_VkDevice_lookup(dec, &args->device);
14999     if (vn_decode_simple_pointer(dec)) {
15000         args->pQueueInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueInfo));
15001         if (!args->pQueueInfo) return;
15002         vn_decode_VkDeviceQueueInfo2_temp(dec, (VkDeviceQueueInfo2 *)args->pQueueInfo);
15003     } else {
15004         args->pQueueInfo = NULL;
15005         vn_cs_decoder_set_fatal(dec);
15006     }
15007     if (vn_decode_simple_pointer(dec)) {
15008         args->pQueue = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueue));
15009         if (!args->pQueue) return;
15010         vn_decode_VkQueue_temp(dec, args->pQueue);
15011     } else {
15012         args->pQueue = NULL;
15013         vn_cs_decoder_set_fatal(dec);
15014     }
15015 }
15016 
vn_replace_vkGetDeviceQueue2_args_handle(struct vn_command_vkGetDeviceQueue2 * args)15017 static inline void vn_replace_vkGetDeviceQueue2_args_handle(struct vn_command_vkGetDeviceQueue2 *args)
15018 {
15019     vn_replace_VkDevice_handle(&args->device);
15020     if (args->pQueueInfo)
15021         vn_replace_VkDeviceQueueInfo2_handle((VkDeviceQueueInfo2 *)args->pQueueInfo);
15022     /* skip args->pQueue */
15023 }
15024 
vn_encode_vkGetDeviceQueue2_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetDeviceQueue2 * args)15025 static inline void vn_encode_vkGetDeviceQueue2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceQueue2 *args)
15026 {
15027     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT});
15028 
15029     /* skip args->device */
15030     /* skip args->pQueueInfo */
15031     if (vn_encode_simple_pointer(enc, args->pQueue))
15032         vn_encode_VkQueue(enc, args->pQueue);
15033 }
15034 
vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT * args)15035 static inline void vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
15036 {
15037     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
15038     if (vn_decode_simple_pointer(dec)) {
15039         args->pTimeDomainCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimeDomainCount));
15040         if (!args->pTimeDomainCount) return;
15041         vn_decode_uint32_t(dec, args->pTimeDomainCount);
15042     } else {
15043         args->pTimeDomainCount = NULL;
15044         vn_cs_decoder_set_fatal(dec);
15045     }
15046     if (vn_peek_array_size(dec)) {
15047         const size_t array_size = vn_decode_array_size(dec, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
15048         args->pTimeDomains = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimeDomains) * array_size);
15049         if (!args->pTimeDomains) return;
15050     } else {
15051         vn_decode_array_size_unchecked(dec);
15052         args->pTimeDomains = NULL;
15053     }
15054 }
15055 
vn_replace_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_handle(struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT * args)15056 static inline void vn_replace_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_handle(struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
15057 {
15058     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
15059     /* skip args->pTimeDomainCount */
15060     /* skip args->pTimeDomains */
15061 }
15062 
vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT * args)15063 static inline void vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
15064 {
15065     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT});
15066 
15067     vn_encode_VkResult(enc, &args->ret);
15068     /* skip args->physicalDevice */
15069     if (vn_encode_simple_pointer(enc, args->pTimeDomainCount))
15070         vn_encode_uint32_t(enc, args->pTimeDomainCount);
15071     if (args->pTimeDomains) {
15072         vn_encode_array_size(enc, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
15073         vn_encode_VkTimeDomainEXT_array(enc, args->pTimeDomains, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
15074     } else {
15075         vn_encode_array_size(enc, 0);
15076     }
15077 }
15078 
vn_decode_vkGetCalibratedTimestampsEXT_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetCalibratedTimestampsEXT * args)15079 static inline void vn_decode_vkGetCalibratedTimestampsEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetCalibratedTimestampsEXT *args)
15080 {
15081     vn_decode_VkDevice_lookup(dec, &args->device);
15082     vn_decode_uint32_t(dec, &args->timestampCount);
15083     if (vn_peek_array_size(dec)) {
15084         const uint32_t iter_count = vn_decode_array_size(dec, args->timestampCount);
15085         args->pTimestampInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimestampInfos) * iter_count);
15086         if (!args->pTimestampInfos) return;
15087         for (uint32_t i = 0; i < iter_count; i++)
15088             vn_decode_VkCalibratedTimestampInfoEXT_temp(dec, &((VkCalibratedTimestampInfoEXT *)args->pTimestampInfos)[i]);
15089     } else {
15090         vn_decode_array_size(dec, args->timestampCount);
15091         args->pTimestampInfos = NULL;
15092     }
15093     if (vn_peek_array_size(dec)) {
15094         const size_t array_size = vn_decode_array_size(dec, args->timestampCount);
15095         args->pTimestamps = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimestamps) * array_size);
15096         if (!args->pTimestamps) return;
15097     } else {
15098         vn_decode_array_size(dec, args->timestampCount);
15099         args->pTimestamps = NULL;
15100     }
15101     if (vn_decode_simple_pointer(dec)) {
15102         args->pMaxDeviation = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMaxDeviation));
15103         if (!args->pMaxDeviation) return;
15104     } else {
15105         args->pMaxDeviation = NULL;
15106         vn_cs_decoder_set_fatal(dec);
15107     }
15108 }
15109 
vn_replace_vkGetCalibratedTimestampsEXT_args_handle(struct vn_command_vkGetCalibratedTimestampsEXT * args)15110 static inline void vn_replace_vkGetCalibratedTimestampsEXT_args_handle(struct vn_command_vkGetCalibratedTimestampsEXT *args)
15111 {
15112     vn_replace_VkDevice_handle(&args->device);
15113     /* skip args->timestampCount */
15114     if (args->pTimestampInfos) {
15115        for (uint32_t i = 0; i < args->timestampCount; i++)
15116             vn_replace_VkCalibratedTimestampInfoEXT_handle(&((VkCalibratedTimestampInfoEXT *)args->pTimestampInfos)[i]);
15117     }
15118     /* skip args->pTimestamps */
15119     /* skip args->pMaxDeviation */
15120 }
15121 
vn_encode_vkGetCalibratedTimestampsEXT_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetCalibratedTimestampsEXT * args)15122 static inline void vn_encode_vkGetCalibratedTimestampsEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetCalibratedTimestampsEXT *args)
15123 {
15124     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT});
15125 
15126     vn_encode_VkResult(enc, &args->ret);
15127     /* skip args->device */
15128     /* skip args->timestampCount */
15129     /* skip args->pTimestampInfos */
15130     if (args->pTimestamps) {
15131         vn_encode_array_size(enc, args->timestampCount);
15132         vn_encode_uint64_t_array(enc, args->pTimestamps, args->timestampCount);
15133     } else {
15134         vn_encode_array_size(enc, 0);
15135     }
15136     if (vn_encode_simple_pointer(enc, args->pMaxDeviation))
15137         vn_encode_uint64_t(enc, args->pMaxDeviation);
15138 }
15139 
vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPhysicalDeviceToolProperties * args)15140 static inline void vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceToolProperties *args)
15141 {
15142     vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
15143     if (vn_decode_simple_pointer(dec)) {
15144         args->pToolCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pToolCount));
15145         if (!args->pToolCount) return;
15146         vn_decode_uint32_t(dec, args->pToolCount);
15147     } else {
15148         args->pToolCount = NULL;
15149         vn_cs_decoder_set_fatal(dec);
15150     }
15151     if (vn_peek_array_size(dec)) {
15152         const uint32_t iter_count = vn_decode_array_size(dec, (args->pToolCount ? *args->pToolCount : 0));
15153         args->pToolProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pToolProperties) * iter_count);
15154         if (!args->pToolProperties) return;
15155         for (uint32_t i = 0; i < iter_count; i++)
15156             vn_decode_VkPhysicalDeviceToolProperties_partial_temp(dec, &args->pToolProperties[i]);
15157     } else {
15158         vn_decode_array_size_unchecked(dec);
15159         args->pToolProperties = NULL;
15160     }
15161 }
15162 
vn_replace_vkGetPhysicalDeviceToolProperties_args_handle(struct vn_command_vkGetPhysicalDeviceToolProperties * args)15163 static inline void vn_replace_vkGetPhysicalDeviceToolProperties_args_handle(struct vn_command_vkGetPhysicalDeviceToolProperties *args)
15164 {
15165     vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
15166     /* skip args->pToolCount */
15167     /* skip args->pToolProperties */
15168 }
15169 
vn_encode_vkGetPhysicalDeviceToolProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPhysicalDeviceToolProperties * args)15170 static inline void vn_encode_vkGetPhysicalDeviceToolProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceToolProperties *args)
15171 {
15172     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT});
15173 
15174     vn_encode_VkResult(enc, &args->ret);
15175     /* skip args->physicalDevice */
15176     if (vn_encode_simple_pointer(enc, args->pToolCount))
15177         vn_encode_uint32_t(enc, args->pToolCount);
15178     if (args->pToolProperties) {
15179         vn_encode_array_size(enc, (args->pToolCount ? *args->pToolCount : 0));
15180         for (uint32_t i = 0; i < (args->pToolCount ? *args->pToolCount : 0); i++)
15181             vn_encode_VkPhysicalDeviceToolProperties(enc, &args->pToolProperties[i]);
15182     } else {
15183         vn_encode_array_size(enc, 0);
15184     }
15185 }
15186 
vn_dispatch_vkEnumeratePhysicalDevices(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15187 static inline void vn_dispatch_vkEnumeratePhysicalDevices(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15188 {
15189     struct vn_command_vkEnumeratePhysicalDevices args;
15190 
15191     if (!ctx->dispatch_vkEnumeratePhysicalDevices) {
15192         vn_cs_decoder_set_fatal(ctx->decoder);
15193         return;
15194     }
15195 
15196     vn_decode_vkEnumeratePhysicalDevices_args_temp(ctx->decoder, &args);
15197     if (!args.instance) {
15198         vn_cs_decoder_set_fatal(ctx->decoder);
15199         return;
15200     }
15201 
15202     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15203         ctx->dispatch_vkEnumeratePhysicalDevices(ctx, &args);
15204 
15205 #ifdef DEBUG
15206     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15207         vn_dispatch_debug_log(ctx, "vkEnumeratePhysicalDevices returned %d", args.ret);
15208 #endif
15209 
15210     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15211        vn_encode_vkEnumeratePhysicalDevices_reply(ctx->encoder, &args);
15212 
15213     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15214 }
15215 
vn_dispatch_vkGetPhysicalDeviceProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15216 static inline void vn_dispatch_vkGetPhysicalDeviceProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15217 {
15218     struct vn_command_vkGetPhysicalDeviceProperties args;
15219 
15220     if (!ctx->dispatch_vkGetPhysicalDeviceProperties) {
15221         vn_cs_decoder_set_fatal(ctx->decoder);
15222         return;
15223     }
15224 
15225     vn_decode_vkGetPhysicalDeviceProperties_args_temp(ctx->decoder, &args);
15226     if (!args.physicalDevice) {
15227         vn_cs_decoder_set_fatal(ctx->decoder);
15228         return;
15229     }
15230 
15231     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15232         ctx->dispatch_vkGetPhysicalDeviceProperties(ctx, &args);
15233 
15234 
15235     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15236        vn_encode_vkGetPhysicalDeviceProperties_reply(ctx->encoder, &args);
15237 
15238     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15239 }
15240 
vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15241 static inline void vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15242 {
15243     struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties args;
15244 
15245     if (!ctx->dispatch_vkGetPhysicalDeviceQueueFamilyProperties) {
15246         vn_cs_decoder_set_fatal(ctx->decoder);
15247         return;
15248     }
15249 
15250     vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_args_temp(ctx->decoder, &args);
15251     if (!args.physicalDevice) {
15252         vn_cs_decoder_set_fatal(ctx->decoder);
15253         return;
15254     }
15255 
15256     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15257         ctx->dispatch_vkGetPhysicalDeviceQueueFamilyProperties(ctx, &args);
15258 
15259 
15260     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15261        vn_encode_vkGetPhysicalDeviceQueueFamilyProperties_reply(ctx->encoder, &args);
15262 
15263     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15264 }
15265 
vn_dispatch_vkGetPhysicalDeviceMemoryProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15266 static inline void vn_dispatch_vkGetPhysicalDeviceMemoryProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15267 {
15268     struct vn_command_vkGetPhysicalDeviceMemoryProperties args;
15269 
15270     if (!ctx->dispatch_vkGetPhysicalDeviceMemoryProperties) {
15271         vn_cs_decoder_set_fatal(ctx->decoder);
15272         return;
15273     }
15274 
15275     vn_decode_vkGetPhysicalDeviceMemoryProperties_args_temp(ctx->decoder, &args);
15276     if (!args.physicalDevice) {
15277         vn_cs_decoder_set_fatal(ctx->decoder);
15278         return;
15279     }
15280 
15281     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15282         ctx->dispatch_vkGetPhysicalDeviceMemoryProperties(ctx, &args);
15283 
15284 
15285     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15286        vn_encode_vkGetPhysicalDeviceMemoryProperties_reply(ctx->encoder, &args);
15287 
15288     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15289 }
15290 
vn_dispatch_vkGetPhysicalDeviceFeatures(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15291 static inline void vn_dispatch_vkGetPhysicalDeviceFeatures(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15292 {
15293     struct vn_command_vkGetPhysicalDeviceFeatures args;
15294 
15295     if (!ctx->dispatch_vkGetPhysicalDeviceFeatures) {
15296         vn_cs_decoder_set_fatal(ctx->decoder);
15297         return;
15298     }
15299 
15300     vn_decode_vkGetPhysicalDeviceFeatures_args_temp(ctx->decoder, &args);
15301     if (!args.physicalDevice) {
15302         vn_cs_decoder_set_fatal(ctx->decoder);
15303         return;
15304     }
15305 
15306     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15307         ctx->dispatch_vkGetPhysicalDeviceFeatures(ctx, &args);
15308 
15309 
15310     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15311        vn_encode_vkGetPhysicalDeviceFeatures_reply(ctx->encoder, &args);
15312 
15313     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15314 }
15315 
vn_dispatch_vkGetPhysicalDeviceFormatProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15316 static inline void vn_dispatch_vkGetPhysicalDeviceFormatProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15317 {
15318     struct vn_command_vkGetPhysicalDeviceFormatProperties args;
15319 
15320     if (!ctx->dispatch_vkGetPhysicalDeviceFormatProperties) {
15321         vn_cs_decoder_set_fatal(ctx->decoder);
15322         return;
15323     }
15324 
15325     vn_decode_vkGetPhysicalDeviceFormatProperties_args_temp(ctx->decoder, &args);
15326     if (!args.physicalDevice) {
15327         vn_cs_decoder_set_fatal(ctx->decoder);
15328         return;
15329     }
15330 
15331     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15332         ctx->dispatch_vkGetPhysicalDeviceFormatProperties(ctx, &args);
15333 
15334 
15335     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15336        vn_encode_vkGetPhysicalDeviceFormatProperties_reply(ctx->encoder, &args);
15337 
15338     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15339 }
15340 
vn_dispatch_vkGetPhysicalDeviceImageFormatProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15341 static inline void vn_dispatch_vkGetPhysicalDeviceImageFormatProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15342 {
15343     struct vn_command_vkGetPhysicalDeviceImageFormatProperties args;
15344 
15345     if (!ctx->dispatch_vkGetPhysicalDeviceImageFormatProperties) {
15346         vn_cs_decoder_set_fatal(ctx->decoder);
15347         return;
15348     }
15349 
15350     vn_decode_vkGetPhysicalDeviceImageFormatProperties_args_temp(ctx->decoder, &args);
15351     if (!args.physicalDevice) {
15352         vn_cs_decoder_set_fatal(ctx->decoder);
15353         return;
15354     }
15355 
15356     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15357         ctx->dispatch_vkGetPhysicalDeviceImageFormatProperties(ctx, &args);
15358 
15359 #ifdef DEBUG
15360     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15361         vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceImageFormatProperties returned %d", args.ret);
15362 #endif
15363 
15364     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15365        vn_encode_vkGetPhysicalDeviceImageFormatProperties_reply(ctx->encoder, &args);
15366 
15367     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15368 }
15369 
vn_dispatch_vkCreateDevice(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15370 static inline void vn_dispatch_vkCreateDevice(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15371 {
15372     struct vn_command_vkCreateDevice args;
15373 
15374     if (!ctx->dispatch_vkCreateDevice) {
15375         vn_cs_decoder_set_fatal(ctx->decoder);
15376         return;
15377     }
15378 
15379     vn_decode_vkCreateDevice_args_temp(ctx->decoder, &args);
15380     if (!args.physicalDevice) {
15381         vn_cs_decoder_set_fatal(ctx->decoder);
15382         return;
15383     }
15384 
15385     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15386         ctx->dispatch_vkCreateDevice(ctx, &args);
15387 
15388 #ifdef DEBUG
15389     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15390         vn_dispatch_debug_log(ctx, "vkCreateDevice returned %d", args.ret);
15391 #endif
15392 
15393     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15394        vn_encode_vkCreateDevice_reply(ctx->encoder, &args);
15395 
15396     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15397 }
15398 
vn_dispatch_vkDestroyDevice(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15399 static inline void vn_dispatch_vkDestroyDevice(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15400 {
15401     struct vn_command_vkDestroyDevice args;
15402 
15403     if (!ctx->dispatch_vkDestroyDevice) {
15404         vn_cs_decoder_set_fatal(ctx->decoder);
15405         return;
15406     }
15407 
15408     vn_decode_vkDestroyDevice_args_temp(ctx->decoder, &args);
15409     if (!args.device) {
15410         vn_cs_decoder_set_fatal(ctx->decoder);
15411         return;
15412     }
15413 
15414     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15415         ctx->dispatch_vkDestroyDevice(ctx, &args);
15416 
15417 
15418     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15419        vn_encode_vkDestroyDevice_reply(ctx->encoder, &args);
15420 
15421     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15422 }
15423 
vn_dispatch_vkEnumerateDeviceLayerProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15424 static inline void vn_dispatch_vkEnumerateDeviceLayerProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15425 {
15426     struct vn_command_vkEnumerateDeviceLayerProperties args;
15427 
15428     if (!ctx->dispatch_vkEnumerateDeviceLayerProperties) {
15429         vn_cs_decoder_set_fatal(ctx->decoder);
15430         return;
15431     }
15432 
15433     vn_decode_vkEnumerateDeviceLayerProperties_args_temp(ctx->decoder, &args);
15434     if (!args.physicalDevice) {
15435         vn_cs_decoder_set_fatal(ctx->decoder);
15436         return;
15437     }
15438 
15439     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15440         ctx->dispatch_vkEnumerateDeviceLayerProperties(ctx, &args);
15441 
15442 #ifdef DEBUG
15443     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15444         vn_dispatch_debug_log(ctx, "vkEnumerateDeviceLayerProperties returned %d", args.ret);
15445 #endif
15446 
15447     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15448        vn_encode_vkEnumerateDeviceLayerProperties_reply(ctx->encoder, &args);
15449 
15450     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15451 }
15452 
vn_dispatch_vkEnumerateDeviceExtensionProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15453 static inline void vn_dispatch_vkEnumerateDeviceExtensionProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15454 {
15455     struct vn_command_vkEnumerateDeviceExtensionProperties args;
15456 
15457     if (!ctx->dispatch_vkEnumerateDeviceExtensionProperties) {
15458         vn_cs_decoder_set_fatal(ctx->decoder);
15459         return;
15460     }
15461 
15462     vn_decode_vkEnumerateDeviceExtensionProperties_args_temp(ctx->decoder, &args);
15463     if (!args.physicalDevice) {
15464         vn_cs_decoder_set_fatal(ctx->decoder);
15465         return;
15466     }
15467 
15468     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15469         ctx->dispatch_vkEnumerateDeviceExtensionProperties(ctx, &args);
15470 
15471 #ifdef DEBUG
15472     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15473         vn_dispatch_debug_log(ctx, "vkEnumerateDeviceExtensionProperties returned %d", args.ret);
15474 #endif
15475 
15476     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15477        vn_encode_vkEnumerateDeviceExtensionProperties_reply(ctx->encoder, &args);
15478 
15479     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15480 }
15481 
vn_dispatch_vkGetDeviceQueue(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15482 static inline void vn_dispatch_vkGetDeviceQueue(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15483 {
15484     struct vn_command_vkGetDeviceQueue args;
15485 
15486     if (!ctx->dispatch_vkGetDeviceQueue) {
15487         vn_cs_decoder_set_fatal(ctx->decoder);
15488         return;
15489     }
15490 
15491     vn_decode_vkGetDeviceQueue_args_temp(ctx->decoder, &args);
15492     if (!args.device) {
15493         vn_cs_decoder_set_fatal(ctx->decoder);
15494         return;
15495     }
15496 
15497     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15498         ctx->dispatch_vkGetDeviceQueue(ctx, &args);
15499 
15500 
15501     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15502        vn_encode_vkGetDeviceQueue_reply(ctx->encoder, &args);
15503 
15504     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15505 }
15506 
vn_dispatch_vkDeviceWaitIdle(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15507 static inline void vn_dispatch_vkDeviceWaitIdle(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15508 {
15509     struct vn_command_vkDeviceWaitIdle args;
15510 
15511     if (!ctx->dispatch_vkDeviceWaitIdle) {
15512         vn_cs_decoder_set_fatal(ctx->decoder);
15513         return;
15514     }
15515 
15516     vn_decode_vkDeviceWaitIdle_args_temp(ctx->decoder, &args);
15517     if (!args.device) {
15518         vn_cs_decoder_set_fatal(ctx->decoder);
15519         return;
15520     }
15521 
15522     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15523         ctx->dispatch_vkDeviceWaitIdle(ctx, &args);
15524 
15525 #ifdef DEBUG
15526     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15527         vn_dispatch_debug_log(ctx, "vkDeviceWaitIdle returned %d", args.ret);
15528 #endif
15529 
15530     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15531        vn_encode_vkDeviceWaitIdle_reply(ctx->encoder, &args);
15532 
15533     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15534 }
15535 
vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15536 static inline void vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15537 {
15538     struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties args;
15539 
15540     if (!ctx->dispatch_vkGetPhysicalDeviceSparseImageFormatProperties) {
15541         vn_cs_decoder_set_fatal(ctx->decoder);
15542         return;
15543     }
15544 
15545     vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_args_temp(ctx->decoder, &args);
15546     if (!args.physicalDevice) {
15547         vn_cs_decoder_set_fatal(ctx->decoder);
15548         return;
15549     }
15550 
15551     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15552         ctx->dispatch_vkGetPhysicalDeviceSparseImageFormatProperties(ctx, &args);
15553 
15554 
15555     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15556        vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties_reply(ctx->encoder, &args);
15557 
15558     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15559 }
15560 
vn_dispatch_vkGetPhysicalDeviceFeatures2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15561 static inline void vn_dispatch_vkGetPhysicalDeviceFeatures2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15562 {
15563     struct vn_command_vkGetPhysicalDeviceFeatures2 args;
15564 
15565     if (!ctx->dispatch_vkGetPhysicalDeviceFeatures2) {
15566         vn_cs_decoder_set_fatal(ctx->decoder);
15567         return;
15568     }
15569 
15570     vn_decode_vkGetPhysicalDeviceFeatures2_args_temp(ctx->decoder, &args);
15571     if (!args.physicalDevice) {
15572         vn_cs_decoder_set_fatal(ctx->decoder);
15573         return;
15574     }
15575 
15576     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15577         ctx->dispatch_vkGetPhysicalDeviceFeatures2(ctx, &args);
15578 
15579 
15580     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15581        vn_encode_vkGetPhysicalDeviceFeatures2_reply(ctx->encoder, &args);
15582 
15583     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15584 }
15585 
vn_dispatch_vkGetPhysicalDeviceProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15586 static inline void vn_dispatch_vkGetPhysicalDeviceProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15587 {
15588     struct vn_command_vkGetPhysicalDeviceProperties2 args;
15589 
15590     if (!ctx->dispatch_vkGetPhysicalDeviceProperties2) {
15591         vn_cs_decoder_set_fatal(ctx->decoder);
15592         return;
15593     }
15594 
15595     vn_decode_vkGetPhysicalDeviceProperties2_args_temp(ctx->decoder, &args);
15596     if (!args.physicalDevice) {
15597         vn_cs_decoder_set_fatal(ctx->decoder);
15598         return;
15599     }
15600 
15601     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15602         ctx->dispatch_vkGetPhysicalDeviceProperties2(ctx, &args);
15603 
15604 
15605     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15606        vn_encode_vkGetPhysicalDeviceProperties2_reply(ctx->encoder, &args);
15607 
15608     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15609 }
15610 
vn_dispatch_vkGetPhysicalDeviceFormatProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15611 static inline void vn_dispatch_vkGetPhysicalDeviceFormatProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15612 {
15613     struct vn_command_vkGetPhysicalDeviceFormatProperties2 args;
15614 
15615     if (!ctx->dispatch_vkGetPhysicalDeviceFormatProperties2) {
15616         vn_cs_decoder_set_fatal(ctx->decoder);
15617         return;
15618     }
15619 
15620     vn_decode_vkGetPhysicalDeviceFormatProperties2_args_temp(ctx->decoder, &args);
15621     if (!args.physicalDevice) {
15622         vn_cs_decoder_set_fatal(ctx->decoder);
15623         return;
15624     }
15625 
15626     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15627         ctx->dispatch_vkGetPhysicalDeviceFormatProperties2(ctx, &args);
15628 
15629 
15630     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15631        vn_encode_vkGetPhysicalDeviceFormatProperties2_reply(ctx->encoder, &args);
15632 
15633     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15634 }
15635 
vn_dispatch_vkGetPhysicalDeviceImageFormatProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15636 static inline void vn_dispatch_vkGetPhysicalDeviceImageFormatProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15637 {
15638     struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 args;
15639 
15640     if (!ctx->dispatch_vkGetPhysicalDeviceImageFormatProperties2) {
15641         vn_cs_decoder_set_fatal(ctx->decoder);
15642         return;
15643     }
15644 
15645     vn_decode_vkGetPhysicalDeviceImageFormatProperties2_args_temp(ctx->decoder, &args);
15646     if (!args.physicalDevice) {
15647         vn_cs_decoder_set_fatal(ctx->decoder);
15648         return;
15649     }
15650 
15651     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15652         ctx->dispatch_vkGetPhysicalDeviceImageFormatProperties2(ctx, &args);
15653 
15654 #ifdef DEBUG
15655     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15656         vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceImageFormatProperties2 returned %d", args.ret);
15657 #endif
15658 
15659     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15660        vn_encode_vkGetPhysicalDeviceImageFormatProperties2_reply(ctx->encoder, &args);
15661 
15662     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15663 }
15664 
vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15665 static inline void vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15666 {
15667     struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 args;
15668 
15669     if (!ctx->dispatch_vkGetPhysicalDeviceQueueFamilyProperties2) {
15670         vn_cs_decoder_set_fatal(ctx->decoder);
15671         return;
15672     }
15673 
15674     vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_args_temp(ctx->decoder, &args);
15675     if (!args.physicalDevice) {
15676         vn_cs_decoder_set_fatal(ctx->decoder);
15677         return;
15678     }
15679 
15680     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15681         ctx->dispatch_vkGetPhysicalDeviceQueueFamilyProperties2(ctx, &args);
15682 
15683 
15684     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15685        vn_encode_vkGetPhysicalDeviceQueueFamilyProperties2_reply(ctx->encoder, &args);
15686 
15687     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15688 }
15689 
vn_dispatch_vkGetPhysicalDeviceMemoryProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15690 static inline void vn_dispatch_vkGetPhysicalDeviceMemoryProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15691 {
15692     struct vn_command_vkGetPhysicalDeviceMemoryProperties2 args;
15693 
15694     if (!ctx->dispatch_vkGetPhysicalDeviceMemoryProperties2) {
15695         vn_cs_decoder_set_fatal(ctx->decoder);
15696         return;
15697     }
15698 
15699     vn_decode_vkGetPhysicalDeviceMemoryProperties2_args_temp(ctx->decoder, &args);
15700     if (!args.physicalDevice) {
15701         vn_cs_decoder_set_fatal(ctx->decoder);
15702         return;
15703     }
15704 
15705     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15706         ctx->dispatch_vkGetPhysicalDeviceMemoryProperties2(ctx, &args);
15707 
15708 
15709     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15710        vn_encode_vkGetPhysicalDeviceMemoryProperties2_reply(ctx->encoder, &args);
15711 
15712     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15713 }
15714 
vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15715 static inline void vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15716 {
15717     struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 args;
15718 
15719     if (!ctx->dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2) {
15720         vn_cs_decoder_set_fatal(ctx->decoder);
15721         return;
15722     }
15723 
15724     vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_args_temp(ctx->decoder, &args);
15725     if (!args.physicalDevice) {
15726         vn_cs_decoder_set_fatal(ctx->decoder);
15727         return;
15728     }
15729 
15730     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15731         ctx->dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2(ctx, &args);
15732 
15733 
15734     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15735        vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(ctx->encoder, &args);
15736 
15737     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15738 }
15739 
vn_dispatch_vkGetPhysicalDeviceExternalBufferProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15740 static inline void vn_dispatch_vkGetPhysicalDeviceExternalBufferProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15741 {
15742     struct vn_command_vkGetPhysicalDeviceExternalBufferProperties args;
15743 
15744     if (!ctx->dispatch_vkGetPhysicalDeviceExternalBufferProperties) {
15745         vn_cs_decoder_set_fatal(ctx->decoder);
15746         return;
15747     }
15748 
15749     vn_decode_vkGetPhysicalDeviceExternalBufferProperties_args_temp(ctx->decoder, &args);
15750     if (!args.physicalDevice) {
15751         vn_cs_decoder_set_fatal(ctx->decoder);
15752         return;
15753     }
15754 
15755     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15756         ctx->dispatch_vkGetPhysicalDeviceExternalBufferProperties(ctx, &args);
15757 
15758 
15759     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15760        vn_encode_vkGetPhysicalDeviceExternalBufferProperties_reply(ctx->encoder, &args);
15761 
15762     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15763 }
15764 
vn_dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15765 static inline void vn_dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15766 {
15767     struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties args;
15768 
15769     if (!ctx->dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties) {
15770         vn_cs_decoder_set_fatal(ctx->decoder);
15771         return;
15772     }
15773 
15774     vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_args_temp(ctx->decoder, &args);
15775     if (!args.physicalDevice) {
15776         vn_cs_decoder_set_fatal(ctx->decoder);
15777         return;
15778     }
15779 
15780     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15781         ctx->dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties(ctx, &args);
15782 
15783 
15784     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15785        vn_encode_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(ctx->encoder, &args);
15786 
15787     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15788 }
15789 
vn_dispatch_vkGetPhysicalDeviceExternalFenceProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15790 static inline void vn_dispatch_vkGetPhysicalDeviceExternalFenceProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15791 {
15792     struct vn_command_vkGetPhysicalDeviceExternalFenceProperties args;
15793 
15794     if (!ctx->dispatch_vkGetPhysicalDeviceExternalFenceProperties) {
15795         vn_cs_decoder_set_fatal(ctx->decoder);
15796         return;
15797     }
15798 
15799     vn_decode_vkGetPhysicalDeviceExternalFenceProperties_args_temp(ctx->decoder, &args);
15800     if (!args.physicalDevice) {
15801         vn_cs_decoder_set_fatal(ctx->decoder);
15802         return;
15803     }
15804 
15805     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15806         ctx->dispatch_vkGetPhysicalDeviceExternalFenceProperties(ctx, &args);
15807 
15808 
15809     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15810        vn_encode_vkGetPhysicalDeviceExternalFenceProperties_reply(ctx->encoder, &args);
15811 
15812     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15813 }
15814 
vn_dispatch_vkEnumeratePhysicalDeviceGroups(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15815 static inline void vn_dispatch_vkEnumeratePhysicalDeviceGroups(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15816 {
15817     struct vn_command_vkEnumeratePhysicalDeviceGroups args;
15818 
15819     if (!ctx->dispatch_vkEnumeratePhysicalDeviceGroups) {
15820         vn_cs_decoder_set_fatal(ctx->decoder);
15821         return;
15822     }
15823 
15824     vn_decode_vkEnumeratePhysicalDeviceGroups_args_temp(ctx->decoder, &args);
15825     if (!args.instance) {
15826         vn_cs_decoder_set_fatal(ctx->decoder);
15827         return;
15828     }
15829 
15830     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15831         ctx->dispatch_vkEnumeratePhysicalDeviceGroups(ctx, &args);
15832 
15833 #ifdef DEBUG
15834     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15835         vn_dispatch_debug_log(ctx, "vkEnumeratePhysicalDeviceGroups returned %d", args.ret);
15836 #endif
15837 
15838     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15839        vn_encode_vkEnumeratePhysicalDeviceGroups_reply(ctx->encoder, &args);
15840 
15841     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15842 }
15843 
vn_dispatch_vkGetDeviceGroupPeerMemoryFeatures(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15844 static inline void vn_dispatch_vkGetDeviceGroupPeerMemoryFeatures(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15845 {
15846     struct vn_command_vkGetDeviceGroupPeerMemoryFeatures args;
15847 
15848     if (!ctx->dispatch_vkGetDeviceGroupPeerMemoryFeatures) {
15849         vn_cs_decoder_set_fatal(ctx->decoder);
15850         return;
15851     }
15852 
15853     vn_decode_vkGetDeviceGroupPeerMemoryFeatures_args_temp(ctx->decoder, &args);
15854     if (!args.device) {
15855         vn_cs_decoder_set_fatal(ctx->decoder);
15856         return;
15857     }
15858 
15859     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15860         ctx->dispatch_vkGetDeviceGroupPeerMemoryFeatures(ctx, &args);
15861 
15862 
15863     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15864        vn_encode_vkGetDeviceGroupPeerMemoryFeatures_reply(ctx->encoder, &args);
15865 
15866     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15867 }
15868 
vn_dispatch_vkGetDeviceQueue2(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15869 static inline void vn_dispatch_vkGetDeviceQueue2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15870 {
15871     struct vn_command_vkGetDeviceQueue2 args;
15872 
15873     if (!ctx->dispatch_vkGetDeviceQueue2) {
15874         vn_cs_decoder_set_fatal(ctx->decoder);
15875         return;
15876     }
15877 
15878     vn_decode_vkGetDeviceQueue2_args_temp(ctx->decoder, &args);
15879     if (!args.device) {
15880         vn_cs_decoder_set_fatal(ctx->decoder);
15881         return;
15882     }
15883 
15884     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15885         ctx->dispatch_vkGetDeviceQueue2(ctx, &args);
15886 
15887 
15888     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15889        vn_encode_vkGetDeviceQueue2_reply(ctx->encoder, &args);
15890 
15891     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15892 }
15893 
vn_dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15894 static inline void vn_dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15895 {
15896     struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT args;
15897 
15898     if (!ctx->dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) {
15899         vn_cs_decoder_set_fatal(ctx->decoder);
15900         return;
15901     }
15902 
15903     vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_temp(ctx->decoder, &args);
15904     if (!args.physicalDevice) {
15905         vn_cs_decoder_set_fatal(ctx->decoder);
15906         return;
15907     }
15908 
15909     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15910         ctx->dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(ctx, &args);
15911 
15912 #ifdef DEBUG
15913     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15914         vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT returned %d", args.ret);
15915 #endif
15916 
15917     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15918        vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(ctx->encoder, &args);
15919 
15920     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15921 }
15922 
vn_dispatch_vkGetCalibratedTimestampsEXT(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15923 static inline void vn_dispatch_vkGetCalibratedTimestampsEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15924 {
15925     struct vn_command_vkGetCalibratedTimestampsEXT args;
15926 
15927     if (!ctx->dispatch_vkGetCalibratedTimestampsEXT) {
15928         vn_cs_decoder_set_fatal(ctx->decoder);
15929         return;
15930     }
15931 
15932     vn_decode_vkGetCalibratedTimestampsEXT_args_temp(ctx->decoder, &args);
15933     if (!args.device) {
15934         vn_cs_decoder_set_fatal(ctx->decoder);
15935         return;
15936     }
15937 
15938     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15939         ctx->dispatch_vkGetCalibratedTimestampsEXT(ctx, &args);
15940 
15941 #ifdef DEBUG
15942     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15943         vn_dispatch_debug_log(ctx, "vkGetCalibratedTimestampsEXT returned %d", args.ret);
15944 #endif
15945 
15946     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15947        vn_encode_vkGetCalibratedTimestampsEXT_reply(ctx->encoder, &args);
15948 
15949     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15950 }
15951 
vn_dispatch_vkGetPhysicalDeviceToolProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)15952 static inline void vn_dispatch_vkGetPhysicalDeviceToolProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
15953 {
15954     struct vn_command_vkGetPhysicalDeviceToolProperties args;
15955 
15956     if (!ctx->dispatch_vkGetPhysicalDeviceToolProperties) {
15957         vn_cs_decoder_set_fatal(ctx->decoder);
15958         return;
15959     }
15960 
15961     vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(ctx->decoder, &args);
15962     if (!args.physicalDevice) {
15963         vn_cs_decoder_set_fatal(ctx->decoder);
15964         return;
15965     }
15966 
15967     if (!vn_cs_decoder_get_fatal(ctx->decoder))
15968         ctx->dispatch_vkGetPhysicalDeviceToolProperties(ctx, &args);
15969 
15970 #ifdef DEBUG
15971     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
15972         vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceToolProperties returned %d", args.ret);
15973 #endif
15974 
15975     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
15976        vn_encode_vkGetPhysicalDeviceToolProperties_reply(ctx->encoder, &args);
15977 
15978     vn_cs_decoder_reset_temp_pool(ctx->decoder);
15979 }
15980 
15981 #pragma GCC diagnostic pop
15982 
15983 #endif /* VN_PROTOCOL_RENDERER_DEVICE_H */
15984