1bf215546Sopenharmony_ci/* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2bf215546Sopenharmony_ci
3bf215546Sopenharmony_ci/*
4bf215546Sopenharmony_ci * Copyright 2020 Google LLC
5bf215546Sopenharmony_ci * SPDX-License-Identifier: MIT
6bf215546Sopenharmony_ci */
7bf215546Sopenharmony_ci
8bf215546Sopenharmony_ci#ifndef VN_PROTOCOL_DRIVER_DEVICE_H
9bf215546Sopenharmony_ci#define VN_PROTOCOL_DRIVER_DEVICE_H
10bf215546Sopenharmony_ci
11bf215546Sopenharmony_ci#include "vn_instance.h"
12bf215546Sopenharmony_ci#include "vn_protocol_driver_structs.h"
13bf215546Sopenharmony_ci
14bf215546Sopenharmony_ci/*
15bf215546Sopenharmony_ci * These structs/unions/commands are not included
16bf215546Sopenharmony_ci *
17bf215546Sopenharmony_ci *   vkGetDeviceProcAddr
18bf215546Sopenharmony_ci */
19bf215546Sopenharmony_ci
20bf215546Sopenharmony_ci/* struct VkPhysicalDeviceLimits */
21bf215546Sopenharmony_ci
22bf215546Sopenharmony_cistatic inline size_t
23bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLimits(const VkPhysicalDeviceLimits *val)
24bf215546Sopenharmony_ci{
25bf215546Sopenharmony_ci    size_t size = 0;
26bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxImageDimension1D);
27bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxImageDimension2D);
28bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxImageDimension3D);
29bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxImageDimensionCube);
30bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxImageArrayLayers);
31bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTexelBufferElements);
32bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxUniformBufferRange);
33bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxStorageBufferRange);
34bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPushConstantsSize);
35bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMemoryAllocationCount);
36bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxSamplerAllocationCount);
37bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->bufferImageGranularity);
38bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->sparseAddressSpaceSize);
39bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxBoundDescriptorSets);
40bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorSamplers);
41bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUniformBuffers);
42bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorStorageBuffers);
43bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorSampledImages);
44bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorStorageImages);
45bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorInputAttachments);
46bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageResources);
47bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetSamplers);
48bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUniformBuffers);
49bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUniformBuffersDynamic);
50bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetStorageBuffers);
51bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetStorageBuffersDynamic);
52bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetSampledImages);
53bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetStorageImages);
54bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetInputAttachments);
55bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexInputAttributes);
56bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexInputBindings);
57bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexInputAttributeOffset);
58bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexInputBindingStride);
59bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexOutputComponents);
60bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationGenerationLevel);
61bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationPatchSize);
62bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationControlPerVertexInputComponents);
63bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationControlPerVertexOutputComponents);
64bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationControlPerPatchOutputComponents);
65bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationControlTotalOutputComponents);
66bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationEvaluationInputComponents);
67bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTessellationEvaluationOutputComponents);
68bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxGeometryShaderInvocations);
69bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxGeometryInputComponents);
70bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxGeometryOutputComponents);
71bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxGeometryOutputVertices);
72bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxGeometryTotalOutputComponents);
73bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFragmentInputComponents);
74bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFragmentOutputAttachments);
75bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFragmentDualSrcAttachments);
76bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFragmentCombinedOutputResources);
77bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxComputeSharedMemorySize);
78bf215546Sopenharmony_ci    size += vn_sizeof_array_size(3);
79bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t_array(val->maxComputeWorkGroupCount, 3);
80bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxComputeWorkGroupInvocations);
81bf215546Sopenharmony_ci    size += vn_sizeof_array_size(3);
82bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t_array(val->maxComputeWorkGroupSize, 3);
83bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->subPixelPrecisionBits);
84bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->subTexelPrecisionBits);
85bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->mipmapPrecisionBits);
86bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDrawIndexedIndexValue);
87bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDrawIndirectCount);
88bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->maxSamplerLodBias);
89bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->maxSamplerAnisotropy);
90bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxViewports);
91bf215546Sopenharmony_ci    size += vn_sizeof_array_size(2);
92bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t_array(val->maxViewportDimensions, 2);
93bf215546Sopenharmony_ci    size += vn_sizeof_array_size(2);
94bf215546Sopenharmony_ci    size += vn_sizeof_float_array(val->viewportBoundsRange, 2);
95bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->viewportSubPixelBits);
96bf215546Sopenharmony_ci    size += vn_sizeof_size_t(&val->minMemoryMapAlignment);
97bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->minTexelBufferOffsetAlignment);
98bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->minUniformBufferOffsetAlignment);
99bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->minStorageBufferOffsetAlignment);
100bf215546Sopenharmony_ci    size += vn_sizeof_int32_t(&val->minTexelOffset);
101bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTexelOffset);
102bf215546Sopenharmony_ci    size += vn_sizeof_int32_t(&val->minTexelGatherOffset);
103bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTexelGatherOffset);
104bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->minInterpolationOffset);
105bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->maxInterpolationOffset);
106bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->subPixelInterpolationOffsetBits);
107bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFramebufferWidth);
108bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFramebufferHeight);
109bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxFramebufferLayers);
110bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->framebufferColorSampleCounts);
111bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->framebufferDepthSampleCounts);
112bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->framebufferStencilSampleCounts);
113bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->framebufferNoAttachmentsSampleCounts);
114bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxColorAttachments);
115bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->sampledImageColorSampleCounts);
116bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->sampledImageIntegerSampleCounts);
117bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->sampledImageDepthSampleCounts);
118bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->sampledImageStencilSampleCounts);
119bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->storageImageSampleCounts);
120bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxSampleMaskWords);
121bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->timestampComputeAndGraphics);
122bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->timestampPeriod);
123bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxClipDistances);
124bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxCullDistances);
125bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxCombinedClipAndCullDistances);
126bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->discreteQueuePriorities);
127bf215546Sopenharmony_ci    size += vn_sizeof_array_size(2);
128bf215546Sopenharmony_ci    size += vn_sizeof_float_array(val->pointSizeRange, 2);
129bf215546Sopenharmony_ci    size += vn_sizeof_array_size(2);
130bf215546Sopenharmony_ci    size += vn_sizeof_float_array(val->lineWidthRange, 2);
131bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->pointSizeGranularity);
132bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->lineWidthGranularity);
133bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->strictLines);
134bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->standardSampleLocations);
135bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->optimalBufferCopyOffsetAlignment);
136bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->optimalBufferCopyRowPitchAlignment);
137bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->nonCoherentAtomSize);
138bf215546Sopenharmony_ci    return size;
139bf215546Sopenharmony_ci}
140bf215546Sopenharmony_ci
141bf215546Sopenharmony_cistatic inline void
142bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLimits(struct vn_cs_decoder *dec, VkPhysicalDeviceLimits *val)
143bf215546Sopenharmony_ci{
144bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxImageDimension1D);
145bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxImageDimension2D);
146bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxImageDimension3D);
147bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxImageDimensionCube);
148bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxImageArrayLayers);
149bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTexelBufferElements);
150bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxUniformBufferRange);
151bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxStorageBufferRange);
152bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPushConstantsSize);
153bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMemoryAllocationCount);
154bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxSamplerAllocationCount);
155bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->bufferImageGranularity);
156bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->sparseAddressSpaceSize);
157bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxBoundDescriptorSets);
158bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorSamplers);
159bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUniformBuffers);
160bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorStorageBuffers);
161bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorSampledImages);
162bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorStorageImages);
163bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorInputAttachments);
164bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageResources);
165bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetSamplers);
166bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUniformBuffers);
167bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUniformBuffersDynamic);
168bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetStorageBuffers);
169bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetStorageBuffersDynamic);
170bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetSampledImages);
171bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetStorageImages);
172bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetInputAttachments);
173bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexInputAttributes);
174bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexInputBindings);
175bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexInputAttributeOffset);
176bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexInputBindingStride);
177bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexOutputComponents);
178bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationGenerationLevel);
179bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationPatchSize);
180bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationControlPerVertexInputComponents);
181bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationControlPerVertexOutputComponents);
182bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationControlPerPatchOutputComponents);
183bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationControlTotalOutputComponents);
184bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationEvaluationInputComponents);
185bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTessellationEvaluationOutputComponents);
186bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxGeometryShaderInvocations);
187bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxGeometryInputComponents);
188bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxGeometryOutputComponents);
189bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxGeometryOutputVertices);
190bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxGeometryTotalOutputComponents);
191bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFragmentInputComponents);
192bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFragmentOutputAttachments);
193bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFragmentDualSrcAttachments);
194bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFragmentCombinedOutputResources);
195bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxComputeSharedMemorySize);
196bf215546Sopenharmony_ci    {
197bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 3);
198bf215546Sopenharmony_ci        vn_decode_uint32_t_array(dec, val->maxComputeWorkGroupCount, array_size);
199bf215546Sopenharmony_ci    }
200bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxComputeWorkGroupInvocations);
201bf215546Sopenharmony_ci    {
202bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 3);
203bf215546Sopenharmony_ci        vn_decode_uint32_t_array(dec, val->maxComputeWorkGroupSize, array_size);
204bf215546Sopenharmony_ci    }
205bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->subPixelPrecisionBits);
206bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->subTexelPrecisionBits);
207bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->mipmapPrecisionBits);
208bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDrawIndexedIndexValue);
209bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDrawIndirectCount);
210bf215546Sopenharmony_ci    vn_decode_float(dec, &val->maxSamplerLodBias);
211bf215546Sopenharmony_ci    vn_decode_float(dec, &val->maxSamplerAnisotropy);
212bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxViewports);
213bf215546Sopenharmony_ci    {
214bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 2);
215bf215546Sopenharmony_ci        vn_decode_uint32_t_array(dec, val->maxViewportDimensions, array_size);
216bf215546Sopenharmony_ci    }
217bf215546Sopenharmony_ci    {
218bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 2);
219bf215546Sopenharmony_ci        vn_decode_float_array(dec, val->viewportBoundsRange, array_size);
220bf215546Sopenharmony_ci    }
221bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->viewportSubPixelBits);
222bf215546Sopenharmony_ci    vn_decode_size_t(dec, &val->minMemoryMapAlignment);
223bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->minTexelBufferOffsetAlignment);
224bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->minUniformBufferOffsetAlignment);
225bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->minStorageBufferOffsetAlignment);
226bf215546Sopenharmony_ci    vn_decode_int32_t(dec, &val->minTexelOffset);
227bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTexelOffset);
228bf215546Sopenharmony_ci    vn_decode_int32_t(dec, &val->minTexelGatherOffset);
229bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTexelGatherOffset);
230bf215546Sopenharmony_ci    vn_decode_float(dec, &val->minInterpolationOffset);
231bf215546Sopenharmony_ci    vn_decode_float(dec, &val->maxInterpolationOffset);
232bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->subPixelInterpolationOffsetBits);
233bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFramebufferWidth);
234bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFramebufferHeight);
235bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxFramebufferLayers);
236bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->framebufferColorSampleCounts);
237bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->framebufferDepthSampleCounts);
238bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->framebufferStencilSampleCounts);
239bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->framebufferNoAttachmentsSampleCounts);
240bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxColorAttachments);
241bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->sampledImageColorSampleCounts);
242bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->sampledImageIntegerSampleCounts);
243bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->sampledImageDepthSampleCounts);
244bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->sampledImageStencilSampleCounts);
245bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->storageImageSampleCounts);
246bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxSampleMaskWords);
247bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->timestampComputeAndGraphics);
248bf215546Sopenharmony_ci    vn_decode_float(dec, &val->timestampPeriod);
249bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxClipDistances);
250bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxCullDistances);
251bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxCombinedClipAndCullDistances);
252bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->discreteQueuePriorities);
253bf215546Sopenharmony_ci    {
254bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 2);
255bf215546Sopenharmony_ci        vn_decode_float_array(dec, val->pointSizeRange, array_size);
256bf215546Sopenharmony_ci    }
257bf215546Sopenharmony_ci    {
258bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, 2);
259bf215546Sopenharmony_ci        vn_decode_float_array(dec, val->lineWidthRange, array_size);
260bf215546Sopenharmony_ci    }
261bf215546Sopenharmony_ci    vn_decode_float(dec, &val->pointSizeGranularity);
262bf215546Sopenharmony_ci    vn_decode_float(dec, &val->lineWidthGranularity);
263bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->strictLines);
264bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->standardSampleLocations);
265bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->optimalBufferCopyOffsetAlignment);
266bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->optimalBufferCopyRowPitchAlignment);
267bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->nonCoherentAtomSize);
268bf215546Sopenharmony_ci}
269bf215546Sopenharmony_ci
270bf215546Sopenharmony_cistatic inline size_t
271bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLimits_partial(const VkPhysicalDeviceLimits *val)
272bf215546Sopenharmony_ci{
273bf215546Sopenharmony_ci    size_t size = 0;
274bf215546Sopenharmony_ci    /* skip val->maxImageDimension1D */
275bf215546Sopenharmony_ci    /* skip val->maxImageDimension2D */
276bf215546Sopenharmony_ci    /* skip val->maxImageDimension3D */
277bf215546Sopenharmony_ci    /* skip val->maxImageDimensionCube */
278bf215546Sopenharmony_ci    /* skip val->maxImageArrayLayers */
279bf215546Sopenharmony_ci    /* skip val->maxTexelBufferElements */
280bf215546Sopenharmony_ci    /* skip val->maxUniformBufferRange */
281bf215546Sopenharmony_ci    /* skip val->maxStorageBufferRange */
282bf215546Sopenharmony_ci    /* skip val->maxPushConstantsSize */
283bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationCount */
284bf215546Sopenharmony_ci    /* skip val->maxSamplerAllocationCount */
285bf215546Sopenharmony_ci    /* skip val->bufferImageGranularity */
286bf215546Sopenharmony_ci    /* skip val->sparseAddressSpaceSize */
287bf215546Sopenharmony_ci    /* skip val->maxBoundDescriptorSets */
288bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorSamplers */
289bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUniformBuffers */
290bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorStorageBuffers */
291bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorSampledImages */
292bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorStorageImages */
293bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInputAttachments */
294bf215546Sopenharmony_ci    /* skip val->maxPerStageResources */
295bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetSamplers */
296bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUniformBuffers */
297bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUniformBuffersDynamic */
298bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageBuffers */
299bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageBuffersDynamic */
300bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetSampledImages */
301bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageImages */
302bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInputAttachments */
303bf215546Sopenharmony_ci    /* skip val->maxVertexInputAttributes */
304bf215546Sopenharmony_ci    /* skip val->maxVertexInputBindings */
305bf215546Sopenharmony_ci    /* skip val->maxVertexInputAttributeOffset */
306bf215546Sopenharmony_ci    /* skip val->maxVertexInputBindingStride */
307bf215546Sopenharmony_ci    /* skip val->maxVertexOutputComponents */
308bf215546Sopenharmony_ci    /* skip val->maxTessellationGenerationLevel */
309bf215546Sopenharmony_ci    /* skip val->maxTessellationPatchSize */
310bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerVertexInputComponents */
311bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerVertexOutputComponents */
312bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerPatchOutputComponents */
313bf215546Sopenharmony_ci    /* skip val->maxTessellationControlTotalOutputComponents */
314bf215546Sopenharmony_ci    /* skip val->maxTessellationEvaluationInputComponents */
315bf215546Sopenharmony_ci    /* skip val->maxTessellationEvaluationOutputComponents */
316bf215546Sopenharmony_ci    /* skip val->maxGeometryShaderInvocations */
317bf215546Sopenharmony_ci    /* skip val->maxGeometryInputComponents */
318bf215546Sopenharmony_ci    /* skip val->maxGeometryOutputComponents */
319bf215546Sopenharmony_ci    /* skip val->maxGeometryOutputVertices */
320bf215546Sopenharmony_ci    /* skip val->maxGeometryTotalOutputComponents */
321bf215546Sopenharmony_ci    /* skip val->maxFragmentInputComponents */
322bf215546Sopenharmony_ci    /* skip val->maxFragmentOutputAttachments */
323bf215546Sopenharmony_ci    /* skip val->maxFragmentDualSrcAttachments */
324bf215546Sopenharmony_ci    /* skip val->maxFragmentCombinedOutputResources */
325bf215546Sopenharmony_ci    /* skip val->maxComputeSharedMemorySize */
326bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupCount */
327bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupInvocations */
328bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupSize */
329bf215546Sopenharmony_ci    /* skip val->subPixelPrecisionBits */
330bf215546Sopenharmony_ci    /* skip val->subTexelPrecisionBits */
331bf215546Sopenharmony_ci    /* skip val->mipmapPrecisionBits */
332bf215546Sopenharmony_ci    /* skip val->maxDrawIndexedIndexValue */
333bf215546Sopenharmony_ci    /* skip val->maxDrawIndirectCount */
334bf215546Sopenharmony_ci    /* skip val->maxSamplerLodBias */
335bf215546Sopenharmony_ci    /* skip val->maxSamplerAnisotropy */
336bf215546Sopenharmony_ci    /* skip val->maxViewports */
337bf215546Sopenharmony_ci    /* skip val->maxViewportDimensions */
338bf215546Sopenharmony_ci    /* skip val->viewportBoundsRange */
339bf215546Sopenharmony_ci    /* skip val->viewportSubPixelBits */
340bf215546Sopenharmony_ci    /* skip val->minMemoryMapAlignment */
341bf215546Sopenharmony_ci    /* skip val->minTexelBufferOffsetAlignment */
342bf215546Sopenharmony_ci    /* skip val->minUniformBufferOffsetAlignment */
343bf215546Sopenharmony_ci    /* skip val->minStorageBufferOffsetAlignment */
344bf215546Sopenharmony_ci    /* skip val->minTexelOffset */
345bf215546Sopenharmony_ci    /* skip val->maxTexelOffset */
346bf215546Sopenharmony_ci    /* skip val->minTexelGatherOffset */
347bf215546Sopenharmony_ci    /* skip val->maxTexelGatherOffset */
348bf215546Sopenharmony_ci    /* skip val->minInterpolationOffset */
349bf215546Sopenharmony_ci    /* skip val->maxInterpolationOffset */
350bf215546Sopenharmony_ci    /* skip val->subPixelInterpolationOffsetBits */
351bf215546Sopenharmony_ci    /* skip val->maxFramebufferWidth */
352bf215546Sopenharmony_ci    /* skip val->maxFramebufferHeight */
353bf215546Sopenharmony_ci    /* skip val->maxFramebufferLayers */
354bf215546Sopenharmony_ci    /* skip val->framebufferColorSampleCounts */
355bf215546Sopenharmony_ci    /* skip val->framebufferDepthSampleCounts */
356bf215546Sopenharmony_ci    /* skip val->framebufferStencilSampleCounts */
357bf215546Sopenharmony_ci    /* skip val->framebufferNoAttachmentsSampleCounts */
358bf215546Sopenharmony_ci    /* skip val->maxColorAttachments */
359bf215546Sopenharmony_ci    /* skip val->sampledImageColorSampleCounts */
360bf215546Sopenharmony_ci    /* skip val->sampledImageIntegerSampleCounts */
361bf215546Sopenharmony_ci    /* skip val->sampledImageDepthSampleCounts */
362bf215546Sopenharmony_ci    /* skip val->sampledImageStencilSampleCounts */
363bf215546Sopenharmony_ci    /* skip val->storageImageSampleCounts */
364bf215546Sopenharmony_ci    /* skip val->maxSampleMaskWords */
365bf215546Sopenharmony_ci    /* skip val->timestampComputeAndGraphics */
366bf215546Sopenharmony_ci    /* skip val->timestampPeriod */
367bf215546Sopenharmony_ci    /* skip val->maxClipDistances */
368bf215546Sopenharmony_ci    /* skip val->maxCullDistances */
369bf215546Sopenharmony_ci    /* skip val->maxCombinedClipAndCullDistances */
370bf215546Sopenharmony_ci    /* skip val->discreteQueuePriorities */
371bf215546Sopenharmony_ci    /* skip val->pointSizeRange */
372bf215546Sopenharmony_ci    /* skip val->lineWidthRange */
373bf215546Sopenharmony_ci    /* skip val->pointSizeGranularity */
374bf215546Sopenharmony_ci    /* skip val->lineWidthGranularity */
375bf215546Sopenharmony_ci    /* skip val->strictLines */
376bf215546Sopenharmony_ci    /* skip val->standardSampleLocations */
377bf215546Sopenharmony_ci    /* skip val->optimalBufferCopyOffsetAlignment */
378bf215546Sopenharmony_ci    /* skip val->optimalBufferCopyRowPitchAlignment */
379bf215546Sopenharmony_ci    /* skip val->nonCoherentAtomSize */
380bf215546Sopenharmony_ci    return size;
381bf215546Sopenharmony_ci}
382bf215546Sopenharmony_ci
383bf215546Sopenharmony_cistatic inline void
384bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLimits_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceLimits *val)
385bf215546Sopenharmony_ci{
386bf215546Sopenharmony_ci    /* skip val->maxImageDimension1D */
387bf215546Sopenharmony_ci    /* skip val->maxImageDimension2D */
388bf215546Sopenharmony_ci    /* skip val->maxImageDimension3D */
389bf215546Sopenharmony_ci    /* skip val->maxImageDimensionCube */
390bf215546Sopenharmony_ci    /* skip val->maxImageArrayLayers */
391bf215546Sopenharmony_ci    /* skip val->maxTexelBufferElements */
392bf215546Sopenharmony_ci    /* skip val->maxUniformBufferRange */
393bf215546Sopenharmony_ci    /* skip val->maxStorageBufferRange */
394bf215546Sopenharmony_ci    /* skip val->maxPushConstantsSize */
395bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationCount */
396bf215546Sopenharmony_ci    /* skip val->maxSamplerAllocationCount */
397bf215546Sopenharmony_ci    /* skip val->bufferImageGranularity */
398bf215546Sopenharmony_ci    /* skip val->sparseAddressSpaceSize */
399bf215546Sopenharmony_ci    /* skip val->maxBoundDescriptorSets */
400bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorSamplers */
401bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUniformBuffers */
402bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorStorageBuffers */
403bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorSampledImages */
404bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorStorageImages */
405bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInputAttachments */
406bf215546Sopenharmony_ci    /* skip val->maxPerStageResources */
407bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetSamplers */
408bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUniformBuffers */
409bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUniformBuffersDynamic */
410bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageBuffers */
411bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageBuffersDynamic */
412bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetSampledImages */
413bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetStorageImages */
414bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInputAttachments */
415bf215546Sopenharmony_ci    /* skip val->maxVertexInputAttributes */
416bf215546Sopenharmony_ci    /* skip val->maxVertexInputBindings */
417bf215546Sopenharmony_ci    /* skip val->maxVertexInputAttributeOffset */
418bf215546Sopenharmony_ci    /* skip val->maxVertexInputBindingStride */
419bf215546Sopenharmony_ci    /* skip val->maxVertexOutputComponents */
420bf215546Sopenharmony_ci    /* skip val->maxTessellationGenerationLevel */
421bf215546Sopenharmony_ci    /* skip val->maxTessellationPatchSize */
422bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerVertexInputComponents */
423bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerVertexOutputComponents */
424bf215546Sopenharmony_ci    /* skip val->maxTessellationControlPerPatchOutputComponents */
425bf215546Sopenharmony_ci    /* skip val->maxTessellationControlTotalOutputComponents */
426bf215546Sopenharmony_ci    /* skip val->maxTessellationEvaluationInputComponents */
427bf215546Sopenharmony_ci    /* skip val->maxTessellationEvaluationOutputComponents */
428bf215546Sopenharmony_ci    /* skip val->maxGeometryShaderInvocations */
429bf215546Sopenharmony_ci    /* skip val->maxGeometryInputComponents */
430bf215546Sopenharmony_ci    /* skip val->maxGeometryOutputComponents */
431bf215546Sopenharmony_ci    /* skip val->maxGeometryOutputVertices */
432bf215546Sopenharmony_ci    /* skip val->maxGeometryTotalOutputComponents */
433bf215546Sopenharmony_ci    /* skip val->maxFragmentInputComponents */
434bf215546Sopenharmony_ci    /* skip val->maxFragmentOutputAttachments */
435bf215546Sopenharmony_ci    /* skip val->maxFragmentDualSrcAttachments */
436bf215546Sopenharmony_ci    /* skip val->maxFragmentCombinedOutputResources */
437bf215546Sopenharmony_ci    /* skip val->maxComputeSharedMemorySize */
438bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupCount */
439bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupInvocations */
440bf215546Sopenharmony_ci    /* skip val->maxComputeWorkGroupSize */
441bf215546Sopenharmony_ci    /* skip val->subPixelPrecisionBits */
442bf215546Sopenharmony_ci    /* skip val->subTexelPrecisionBits */
443bf215546Sopenharmony_ci    /* skip val->mipmapPrecisionBits */
444bf215546Sopenharmony_ci    /* skip val->maxDrawIndexedIndexValue */
445bf215546Sopenharmony_ci    /* skip val->maxDrawIndirectCount */
446bf215546Sopenharmony_ci    /* skip val->maxSamplerLodBias */
447bf215546Sopenharmony_ci    /* skip val->maxSamplerAnisotropy */
448bf215546Sopenharmony_ci    /* skip val->maxViewports */
449bf215546Sopenharmony_ci    /* skip val->maxViewportDimensions */
450bf215546Sopenharmony_ci    /* skip val->viewportBoundsRange */
451bf215546Sopenharmony_ci    /* skip val->viewportSubPixelBits */
452bf215546Sopenharmony_ci    /* skip val->minMemoryMapAlignment */
453bf215546Sopenharmony_ci    /* skip val->minTexelBufferOffsetAlignment */
454bf215546Sopenharmony_ci    /* skip val->minUniformBufferOffsetAlignment */
455bf215546Sopenharmony_ci    /* skip val->minStorageBufferOffsetAlignment */
456bf215546Sopenharmony_ci    /* skip val->minTexelOffset */
457bf215546Sopenharmony_ci    /* skip val->maxTexelOffset */
458bf215546Sopenharmony_ci    /* skip val->minTexelGatherOffset */
459bf215546Sopenharmony_ci    /* skip val->maxTexelGatherOffset */
460bf215546Sopenharmony_ci    /* skip val->minInterpolationOffset */
461bf215546Sopenharmony_ci    /* skip val->maxInterpolationOffset */
462bf215546Sopenharmony_ci    /* skip val->subPixelInterpolationOffsetBits */
463bf215546Sopenharmony_ci    /* skip val->maxFramebufferWidth */
464bf215546Sopenharmony_ci    /* skip val->maxFramebufferHeight */
465bf215546Sopenharmony_ci    /* skip val->maxFramebufferLayers */
466bf215546Sopenharmony_ci    /* skip val->framebufferColorSampleCounts */
467bf215546Sopenharmony_ci    /* skip val->framebufferDepthSampleCounts */
468bf215546Sopenharmony_ci    /* skip val->framebufferStencilSampleCounts */
469bf215546Sopenharmony_ci    /* skip val->framebufferNoAttachmentsSampleCounts */
470bf215546Sopenharmony_ci    /* skip val->maxColorAttachments */
471bf215546Sopenharmony_ci    /* skip val->sampledImageColorSampleCounts */
472bf215546Sopenharmony_ci    /* skip val->sampledImageIntegerSampleCounts */
473bf215546Sopenharmony_ci    /* skip val->sampledImageDepthSampleCounts */
474bf215546Sopenharmony_ci    /* skip val->sampledImageStencilSampleCounts */
475bf215546Sopenharmony_ci    /* skip val->storageImageSampleCounts */
476bf215546Sopenharmony_ci    /* skip val->maxSampleMaskWords */
477bf215546Sopenharmony_ci    /* skip val->timestampComputeAndGraphics */
478bf215546Sopenharmony_ci    /* skip val->timestampPeriod */
479bf215546Sopenharmony_ci    /* skip val->maxClipDistances */
480bf215546Sopenharmony_ci    /* skip val->maxCullDistances */
481bf215546Sopenharmony_ci    /* skip val->maxCombinedClipAndCullDistances */
482bf215546Sopenharmony_ci    /* skip val->discreteQueuePriorities */
483bf215546Sopenharmony_ci    /* skip val->pointSizeRange */
484bf215546Sopenharmony_ci    /* skip val->lineWidthRange */
485bf215546Sopenharmony_ci    /* skip val->pointSizeGranularity */
486bf215546Sopenharmony_ci    /* skip val->lineWidthGranularity */
487bf215546Sopenharmony_ci    /* skip val->strictLines */
488bf215546Sopenharmony_ci    /* skip val->standardSampleLocations */
489bf215546Sopenharmony_ci    /* skip val->optimalBufferCopyOffsetAlignment */
490bf215546Sopenharmony_ci    /* skip val->optimalBufferCopyRowPitchAlignment */
491bf215546Sopenharmony_ci    /* skip val->nonCoherentAtomSize */
492bf215546Sopenharmony_ci}
493bf215546Sopenharmony_ci
494bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSparseProperties */
495bf215546Sopenharmony_ci
496bf215546Sopenharmony_cistatic inline size_t
497bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSparseProperties(const VkPhysicalDeviceSparseProperties *val)
498bf215546Sopenharmony_ci{
499bf215546Sopenharmony_ci    size_t size = 0;
500bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->residencyStandard2DBlockShape);
501bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->residencyStandard2DMultisampleBlockShape);
502bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->residencyStandard3DBlockShape);
503bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->residencyAlignedMipSize);
504bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->residencyNonResidentStrict);
505bf215546Sopenharmony_ci    return size;
506bf215546Sopenharmony_ci}
507bf215546Sopenharmony_ci
508bf215546Sopenharmony_cistatic inline void
509bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSparseProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceSparseProperties *val)
510bf215546Sopenharmony_ci{
511bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->residencyStandard2DBlockShape);
512bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->residencyStandard2DMultisampleBlockShape);
513bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->residencyStandard3DBlockShape);
514bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->residencyAlignedMipSize);
515bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->residencyNonResidentStrict);
516bf215546Sopenharmony_ci}
517bf215546Sopenharmony_ci
518bf215546Sopenharmony_cistatic inline size_t
519bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSparseProperties_partial(const VkPhysicalDeviceSparseProperties *val)
520bf215546Sopenharmony_ci{
521bf215546Sopenharmony_ci    size_t size = 0;
522bf215546Sopenharmony_ci    /* skip val->residencyStandard2DBlockShape */
523bf215546Sopenharmony_ci    /* skip val->residencyStandard2DMultisampleBlockShape */
524bf215546Sopenharmony_ci    /* skip val->residencyStandard3DBlockShape */
525bf215546Sopenharmony_ci    /* skip val->residencyAlignedMipSize */
526bf215546Sopenharmony_ci    /* skip val->residencyNonResidentStrict */
527bf215546Sopenharmony_ci    return size;
528bf215546Sopenharmony_ci}
529bf215546Sopenharmony_ci
530bf215546Sopenharmony_cistatic inline void
531bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSparseProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSparseProperties *val)
532bf215546Sopenharmony_ci{
533bf215546Sopenharmony_ci    /* skip val->residencyStandard2DBlockShape */
534bf215546Sopenharmony_ci    /* skip val->residencyStandard2DMultisampleBlockShape */
535bf215546Sopenharmony_ci    /* skip val->residencyStandard3DBlockShape */
536bf215546Sopenharmony_ci    /* skip val->residencyAlignedMipSize */
537bf215546Sopenharmony_ci    /* skip val->residencyNonResidentStrict */
538bf215546Sopenharmony_ci}
539bf215546Sopenharmony_ci
540bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProperties */
541bf215546Sopenharmony_ci
542bf215546Sopenharmony_cistatic inline size_t
543bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties(const VkPhysicalDeviceProperties *val)
544bf215546Sopenharmony_ci{
545bf215546Sopenharmony_ci    size_t size = 0;
546bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->apiVersion);
547bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->driverVersion);
548bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->vendorID);
549bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->deviceID);
550bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceType(&val->deviceType);
551bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_PHYSICAL_DEVICE_NAME_SIZE);
552bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE);
553bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_UUID_SIZE);
554bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->pipelineCacheUUID, VK_UUID_SIZE);
555bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLimits(&val->limits);
556bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSparseProperties(&val->sparseProperties);
557bf215546Sopenharmony_ci    return size;
558bf215546Sopenharmony_ci}
559bf215546Sopenharmony_ci
560bf215546Sopenharmony_cistatic inline void
561bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties *val)
562bf215546Sopenharmony_ci{
563bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->apiVersion);
564bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->driverVersion);
565bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->vendorID);
566bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->deviceID);
567bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceType(dec, &val->deviceType);
568bf215546Sopenharmony_ci    {
569bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE);
570bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->deviceName, array_size);
571bf215546Sopenharmony_ci    }
572bf215546Sopenharmony_ci    {
573bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_UUID_SIZE);
574bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->pipelineCacheUUID, array_size);
575bf215546Sopenharmony_ci    }
576bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceLimits(dec, &val->limits);
577bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSparseProperties(dec, &val->sparseProperties);
578bf215546Sopenharmony_ci}
579bf215546Sopenharmony_ci
580bf215546Sopenharmony_cistatic inline size_t
581bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties_partial(const VkPhysicalDeviceProperties *val)
582bf215546Sopenharmony_ci{
583bf215546Sopenharmony_ci    size_t size = 0;
584bf215546Sopenharmony_ci    /* skip val->apiVersion */
585bf215546Sopenharmony_ci    /* skip val->driverVersion */
586bf215546Sopenharmony_ci    /* skip val->vendorID */
587bf215546Sopenharmony_ci    /* skip val->deviceID */
588bf215546Sopenharmony_ci    /* skip val->deviceType */
589bf215546Sopenharmony_ci    /* skip val->deviceName */
590bf215546Sopenharmony_ci    /* skip val->pipelineCacheUUID */
591bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLimits_partial(&val->limits);
592bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSparseProperties_partial(&val->sparseProperties);
593bf215546Sopenharmony_ci    return size;
594bf215546Sopenharmony_ci}
595bf215546Sopenharmony_ci
596bf215546Sopenharmony_cistatic inline void
597bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties *val)
598bf215546Sopenharmony_ci{
599bf215546Sopenharmony_ci    /* skip val->apiVersion */
600bf215546Sopenharmony_ci    /* skip val->driverVersion */
601bf215546Sopenharmony_ci    /* skip val->vendorID */
602bf215546Sopenharmony_ci    /* skip val->deviceID */
603bf215546Sopenharmony_ci    /* skip val->deviceType */
604bf215546Sopenharmony_ci    /* skip val->deviceName */
605bf215546Sopenharmony_ci    /* skip val->pipelineCacheUUID */
606bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLimits_partial(enc, &val->limits);
607bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSparseProperties_partial(enc, &val->sparseProperties);
608bf215546Sopenharmony_ci}
609bf215546Sopenharmony_ci
610bf215546Sopenharmony_ci/* struct VkQueueFamilyProperties */
611bf215546Sopenharmony_ci
612bf215546Sopenharmony_cistatic inline size_t
613bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties(const VkQueueFamilyProperties *val)
614bf215546Sopenharmony_ci{
615bf215546Sopenharmony_ci    size_t size = 0;
616bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->queueFlags);
617bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueCount);
618bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->timestampValidBits);
619bf215546Sopenharmony_ci    size += vn_sizeof_VkExtent3D(&val->minImageTransferGranularity);
620bf215546Sopenharmony_ci    return size;
621bf215546Sopenharmony_ci}
622bf215546Sopenharmony_ci
623bf215546Sopenharmony_cistatic inline void
624bf215546Sopenharmony_civn_decode_VkQueueFamilyProperties(struct vn_cs_decoder *dec, VkQueueFamilyProperties *val)
625bf215546Sopenharmony_ci{
626bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->queueFlags);
627bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->queueCount);
628bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->timestampValidBits);
629bf215546Sopenharmony_ci    vn_decode_VkExtent3D(dec, &val->minImageTransferGranularity);
630bf215546Sopenharmony_ci}
631bf215546Sopenharmony_ci
632bf215546Sopenharmony_cistatic inline size_t
633bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties_partial(const VkQueueFamilyProperties *val)
634bf215546Sopenharmony_ci{
635bf215546Sopenharmony_ci    size_t size = 0;
636bf215546Sopenharmony_ci    /* skip val->queueFlags */
637bf215546Sopenharmony_ci    /* skip val->queueCount */
638bf215546Sopenharmony_ci    /* skip val->timestampValidBits */
639bf215546Sopenharmony_ci    size += vn_sizeof_VkExtent3D_partial(&val->minImageTransferGranularity);
640bf215546Sopenharmony_ci    return size;
641bf215546Sopenharmony_ci}
642bf215546Sopenharmony_ci
643bf215546Sopenharmony_cistatic inline void
644bf215546Sopenharmony_civn_encode_VkQueueFamilyProperties_partial(struct vn_cs_encoder *enc, const VkQueueFamilyProperties *val)
645bf215546Sopenharmony_ci{
646bf215546Sopenharmony_ci    /* skip val->queueFlags */
647bf215546Sopenharmony_ci    /* skip val->queueCount */
648bf215546Sopenharmony_ci    /* skip val->timestampValidBits */
649bf215546Sopenharmony_ci    vn_encode_VkExtent3D_partial(enc, &val->minImageTransferGranularity);
650bf215546Sopenharmony_ci}
651bf215546Sopenharmony_ci
652bf215546Sopenharmony_ci/* struct VkMemoryType */
653bf215546Sopenharmony_ci
654bf215546Sopenharmony_cistatic inline size_t
655bf215546Sopenharmony_civn_sizeof_VkMemoryType(const VkMemoryType *val)
656bf215546Sopenharmony_ci{
657bf215546Sopenharmony_ci    size_t size = 0;
658bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->propertyFlags);
659bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->heapIndex);
660bf215546Sopenharmony_ci    return size;
661bf215546Sopenharmony_ci}
662bf215546Sopenharmony_ci
663bf215546Sopenharmony_cistatic inline void
664bf215546Sopenharmony_civn_decode_VkMemoryType(struct vn_cs_decoder *dec, VkMemoryType *val)
665bf215546Sopenharmony_ci{
666bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->propertyFlags);
667bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->heapIndex);
668bf215546Sopenharmony_ci}
669bf215546Sopenharmony_ci
670bf215546Sopenharmony_cistatic inline size_t
671bf215546Sopenharmony_civn_sizeof_VkMemoryType_partial(const VkMemoryType *val)
672bf215546Sopenharmony_ci{
673bf215546Sopenharmony_ci    size_t size = 0;
674bf215546Sopenharmony_ci    /* skip val->propertyFlags */
675bf215546Sopenharmony_ci    /* skip val->heapIndex */
676bf215546Sopenharmony_ci    return size;
677bf215546Sopenharmony_ci}
678bf215546Sopenharmony_ci
679bf215546Sopenharmony_cistatic inline void
680bf215546Sopenharmony_civn_encode_VkMemoryType_partial(struct vn_cs_encoder *enc, const VkMemoryType *val)
681bf215546Sopenharmony_ci{
682bf215546Sopenharmony_ci    /* skip val->propertyFlags */
683bf215546Sopenharmony_ci    /* skip val->heapIndex */
684bf215546Sopenharmony_ci}
685bf215546Sopenharmony_ci
686bf215546Sopenharmony_ci/* struct VkMemoryHeap */
687bf215546Sopenharmony_ci
688bf215546Sopenharmony_cistatic inline size_t
689bf215546Sopenharmony_civn_sizeof_VkMemoryHeap(const VkMemoryHeap *val)
690bf215546Sopenharmony_ci{
691bf215546Sopenharmony_ci    size_t size = 0;
692bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->size);
693bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
694bf215546Sopenharmony_ci    return size;
695bf215546Sopenharmony_ci}
696bf215546Sopenharmony_ci
697bf215546Sopenharmony_cistatic inline void
698bf215546Sopenharmony_civn_decode_VkMemoryHeap(struct vn_cs_decoder *dec, VkMemoryHeap *val)
699bf215546Sopenharmony_ci{
700bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->size);
701bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->flags);
702bf215546Sopenharmony_ci}
703bf215546Sopenharmony_ci
704bf215546Sopenharmony_cistatic inline size_t
705bf215546Sopenharmony_civn_sizeof_VkMemoryHeap_partial(const VkMemoryHeap *val)
706bf215546Sopenharmony_ci{
707bf215546Sopenharmony_ci    size_t size = 0;
708bf215546Sopenharmony_ci    /* skip val->size */
709bf215546Sopenharmony_ci    /* skip val->flags */
710bf215546Sopenharmony_ci    return size;
711bf215546Sopenharmony_ci}
712bf215546Sopenharmony_ci
713bf215546Sopenharmony_cistatic inline void
714bf215546Sopenharmony_civn_encode_VkMemoryHeap_partial(struct vn_cs_encoder *enc, const VkMemoryHeap *val)
715bf215546Sopenharmony_ci{
716bf215546Sopenharmony_ci    /* skip val->size */
717bf215546Sopenharmony_ci    /* skip val->flags */
718bf215546Sopenharmony_ci}
719bf215546Sopenharmony_ci
720bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMemoryProperties */
721bf215546Sopenharmony_ci
722bf215546Sopenharmony_cistatic inline size_t
723bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties(const VkPhysicalDeviceMemoryProperties *val)
724bf215546Sopenharmony_ci{
725bf215546Sopenharmony_ci    size_t size = 0;
726bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->memoryTypeCount);
727bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_MEMORY_TYPES);
728bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; i++)
729bf215546Sopenharmony_ci        size += vn_sizeof_VkMemoryType(&val->memoryTypes[i]);
730bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->memoryHeapCount);
731bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_MEMORY_HEAPS);
732bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_HEAPS; i++)
733bf215546Sopenharmony_ci        size += vn_sizeof_VkMemoryHeap(&val->memoryHeaps[i]);
734bf215546Sopenharmony_ci    return size;
735bf215546Sopenharmony_ci}
736bf215546Sopenharmony_ci
737bf215546Sopenharmony_cistatic inline void
738bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMemoryProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties *val)
739bf215546Sopenharmony_ci{
740bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->memoryTypeCount);
741bf215546Sopenharmony_ci    {
742bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_MEMORY_TYPES);
743bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
744bf215546Sopenharmony_ci            vn_decode_VkMemoryType(dec, &val->memoryTypes[i]);
745bf215546Sopenharmony_ci    }
746bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->memoryHeapCount);
747bf215546Sopenharmony_ci    {
748bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_MEMORY_HEAPS);
749bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
750bf215546Sopenharmony_ci            vn_decode_VkMemoryHeap(dec, &val->memoryHeaps[i]);
751bf215546Sopenharmony_ci    }
752bf215546Sopenharmony_ci}
753bf215546Sopenharmony_ci
754bf215546Sopenharmony_cistatic inline size_t
755bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties_partial(const VkPhysicalDeviceMemoryProperties *val)
756bf215546Sopenharmony_ci{
757bf215546Sopenharmony_ci    size_t size = 0;
758bf215546Sopenharmony_ci    /* skip val->memoryTypeCount */
759bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_MEMORY_TYPES);
760bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; i++)
761bf215546Sopenharmony_ci        size += vn_sizeof_VkMemoryType_partial(&val->memoryTypes[i]);
762bf215546Sopenharmony_ci    /* skip val->memoryHeapCount */
763bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_MEMORY_HEAPS);
764bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_HEAPS; i++)
765bf215546Sopenharmony_ci        size += vn_sizeof_VkMemoryHeap_partial(&val->memoryHeaps[i]);
766bf215546Sopenharmony_ci    return size;
767bf215546Sopenharmony_ci}
768bf215546Sopenharmony_ci
769bf215546Sopenharmony_cistatic inline void
770bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMemoryProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties *val)
771bf215546Sopenharmony_ci{
772bf215546Sopenharmony_ci    /* skip val->memoryTypeCount */
773bf215546Sopenharmony_ci    vn_encode_array_size(enc, VK_MAX_MEMORY_TYPES);
774bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; i++)
775bf215546Sopenharmony_ci        vn_encode_VkMemoryType_partial(enc, &val->memoryTypes[i]);
776bf215546Sopenharmony_ci    /* skip val->memoryHeapCount */
777bf215546Sopenharmony_ci    vn_encode_array_size(enc, VK_MAX_MEMORY_HEAPS);
778bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_MEMORY_HEAPS; i++)
779bf215546Sopenharmony_ci        vn_encode_VkMemoryHeap_partial(enc, &val->memoryHeaps[i]);
780bf215546Sopenharmony_ci}
781bf215546Sopenharmony_ci
782bf215546Sopenharmony_ci/* struct VkPhysicalDeviceFeatures */
783bf215546Sopenharmony_ci
784bf215546Sopenharmony_cistatic inline size_t
785bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures(const VkPhysicalDeviceFeatures *val)
786bf215546Sopenharmony_ci{
787bf215546Sopenharmony_ci    size_t size = 0;
788bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustBufferAccess);
789bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->fullDrawIndexUint32);
790bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->imageCubeArray);
791bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->independentBlend);
792bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->geometryShader);
793bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->tessellationShader);
794bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sampleRateShading);
795bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->dualSrcBlend);
796bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->logicOp);
797bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiDrawIndirect);
798bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->drawIndirectFirstInstance);
799bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->depthClamp);
800bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->depthBiasClamp);
801bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->fillModeNonSolid);
802bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->depthBounds);
803bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->wideLines);
804bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->largePoints);
805bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->alphaToOne);
806bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiViewport);
807bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->samplerAnisotropy);
808bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->textureCompressionETC2);
809bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->textureCompressionASTC_LDR);
810bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->textureCompressionBC);
811bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->occlusionQueryPrecise);
812bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->pipelineStatisticsQuery);
813bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vertexPipelineStoresAndAtomics);
814bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->fragmentStoresAndAtomics);
815bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderTessellationAndGeometryPointSize);
816bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderImageGatherExtended);
817bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageExtendedFormats);
818bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageMultisample);
819bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageReadWithoutFormat);
820bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageWriteWithoutFormat);
821bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformBufferArrayDynamicIndexing);
822bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSampledImageArrayDynamicIndexing);
823bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageBufferArrayDynamicIndexing);
824bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageArrayDynamicIndexing);
825bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderClipDistance);
826bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderCullDistance);
827bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderFloat64);
828bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInt64);
829bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInt16);
830bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderResourceResidency);
831bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderResourceMinLod);
832bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseBinding);
833bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidencyBuffer);
834bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidencyImage2D);
835bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidencyImage3D);
836bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidency2Samples);
837bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidency4Samples);
838bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidency8Samples);
839bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidency16Samples);
840bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->sparseResidencyAliased);
841bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->variableMultisampleRate);
842bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->inheritedQueries);
843bf215546Sopenharmony_ci    return size;
844bf215546Sopenharmony_ci}
845bf215546Sopenharmony_ci
846bf215546Sopenharmony_cistatic inline void
847bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures *val)
848bf215546Sopenharmony_ci{
849bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->robustBufferAccess);
850bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->fullDrawIndexUint32);
851bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->imageCubeArray);
852bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->independentBlend);
853bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->geometryShader);
854bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->tessellationShader);
855bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sampleRateShading);
856bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->dualSrcBlend);
857bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->logicOp);
858bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiDrawIndirect);
859bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->drawIndirectFirstInstance);
860bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->depthClamp);
861bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->depthBiasClamp);
862bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->fillModeNonSolid);
863bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->depthBounds);
864bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->wideLines);
865bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->largePoints);
866bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->alphaToOne);
867bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiViewport);
868bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->samplerAnisotropy);
869bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->textureCompressionETC2);
870bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->textureCompressionASTC_LDR);
871bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->textureCompressionBC);
872bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->occlusionQueryPrecise);
873bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->pipelineStatisticsQuery);
874bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vertexPipelineStoresAndAtomics);
875bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->fragmentStoresAndAtomics);
876bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderTessellationAndGeometryPointSize);
877bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderImageGatherExtended);
878bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageExtendedFormats);
879bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageMultisample);
880bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageReadWithoutFormat);
881bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageWriteWithoutFormat);
882bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayDynamicIndexing);
883bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSampledImageArrayDynamicIndexing);
884bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayDynamicIndexing);
885bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageArrayDynamicIndexing);
886bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderClipDistance);
887bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderCullDistance);
888bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderFloat64);
889bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInt64);
890bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInt16);
891bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderResourceResidency);
892bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderResourceMinLod);
893bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseBinding);
894bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidencyBuffer);
895bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidencyImage2D);
896bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidencyImage3D);
897bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidency2Samples);
898bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidency4Samples);
899bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidency8Samples);
900bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidency16Samples);
901bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->sparseResidencyAliased);
902bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->variableMultisampleRate);
903bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->inheritedQueries);
904bf215546Sopenharmony_ci}
905bf215546Sopenharmony_ci
906bf215546Sopenharmony_cistatic inline void
907bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures *val)
908bf215546Sopenharmony_ci{
909bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustBufferAccess);
910bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->fullDrawIndexUint32);
911bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->imageCubeArray);
912bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->independentBlend);
913bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->geometryShader);
914bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->tessellationShader);
915bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sampleRateShading);
916bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->dualSrcBlend);
917bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->logicOp);
918bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiDrawIndirect);
919bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->drawIndirectFirstInstance);
920bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->depthClamp);
921bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->depthBiasClamp);
922bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->fillModeNonSolid);
923bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->depthBounds);
924bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->wideLines);
925bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->largePoints);
926bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->alphaToOne);
927bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiViewport);
928bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->samplerAnisotropy);
929bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->textureCompressionETC2);
930bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->textureCompressionASTC_LDR);
931bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->textureCompressionBC);
932bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->occlusionQueryPrecise);
933bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->pipelineStatisticsQuery);
934bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vertexPipelineStoresAndAtomics);
935bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->fragmentStoresAndAtomics);
936bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderTessellationAndGeometryPointSize);
937bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderImageGatherExtended);
938bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageExtendedFormats);
939bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageMultisample);
940bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageReadWithoutFormat);
941bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageWriteWithoutFormat);
942bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayDynamicIndexing);
943bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSampledImageArrayDynamicIndexing);
944bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayDynamicIndexing);
945bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageArrayDynamicIndexing);
946bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderClipDistance);
947bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderCullDistance);
948bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderFloat64);
949bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInt64);
950bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInt16);
951bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderResourceResidency);
952bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderResourceMinLod);
953bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseBinding);
954bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidencyBuffer);
955bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidencyImage2D);
956bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidencyImage3D);
957bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidency2Samples);
958bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidency4Samples);
959bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidency8Samples);
960bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidency16Samples);
961bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->sparseResidencyAliased);
962bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->variableMultisampleRate);
963bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->inheritedQueries);
964bf215546Sopenharmony_ci}
965bf215546Sopenharmony_ci
966bf215546Sopenharmony_cistatic inline size_t
967bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures_partial(const VkPhysicalDeviceFeatures *val)
968bf215546Sopenharmony_ci{
969bf215546Sopenharmony_ci    size_t size = 0;
970bf215546Sopenharmony_ci    /* skip val->robustBufferAccess */
971bf215546Sopenharmony_ci    /* skip val->fullDrawIndexUint32 */
972bf215546Sopenharmony_ci    /* skip val->imageCubeArray */
973bf215546Sopenharmony_ci    /* skip val->independentBlend */
974bf215546Sopenharmony_ci    /* skip val->geometryShader */
975bf215546Sopenharmony_ci    /* skip val->tessellationShader */
976bf215546Sopenharmony_ci    /* skip val->sampleRateShading */
977bf215546Sopenharmony_ci    /* skip val->dualSrcBlend */
978bf215546Sopenharmony_ci    /* skip val->logicOp */
979bf215546Sopenharmony_ci    /* skip val->multiDrawIndirect */
980bf215546Sopenharmony_ci    /* skip val->drawIndirectFirstInstance */
981bf215546Sopenharmony_ci    /* skip val->depthClamp */
982bf215546Sopenharmony_ci    /* skip val->depthBiasClamp */
983bf215546Sopenharmony_ci    /* skip val->fillModeNonSolid */
984bf215546Sopenharmony_ci    /* skip val->depthBounds */
985bf215546Sopenharmony_ci    /* skip val->wideLines */
986bf215546Sopenharmony_ci    /* skip val->largePoints */
987bf215546Sopenharmony_ci    /* skip val->alphaToOne */
988bf215546Sopenharmony_ci    /* skip val->multiViewport */
989bf215546Sopenharmony_ci    /* skip val->samplerAnisotropy */
990bf215546Sopenharmony_ci    /* skip val->textureCompressionETC2 */
991bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_LDR */
992bf215546Sopenharmony_ci    /* skip val->textureCompressionBC */
993bf215546Sopenharmony_ci    /* skip val->occlusionQueryPrecise */
994bf215546Sopenharmony_ci    /* skip val->pipelineStatisticsQuery */
995bf215546Sopenharmony_ci    /* skip val->vertexPipelineStoresAndAtomics */
996bf215546Sopenharmony_ci    /* skip val->fragmentStoresAndAtomics */
997bf215546Sopenharmony_ci    /* skip val->shaderTessellationAndGeometryPointSize */
998bf215546Sopenharmony_ci    /* skip val->shaderImageGatherExtended */
999bf215546Sopenharmony_ci    /* skip val->shaderStorageImageExtendedFormats */
1000bf215546Sopenharmony_ci    /* skip val->shaderStorageImageMultisample */
1001bf215546Sopenharmony_ci    /* skip val->shaderStorageImageReadWithoutFormat */
1002bf215546Sopenharmony_ci    /* skip val->shaderStorageImageWriteWithoutFormat */
1003bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayDynamicIndexing */
1004bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayDynamicIndexing */
1005bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayDynamicIndexing */
1006bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayDynamicIndexing */
1007bf215546Sopenharmony_ci    /* skip val->shaderClipDistance */
1008bf215546Sopenharmony_ci    /* skip val->shaderCullDistance */
1009bf215546Sopenharmony_ci    /* skip val->shaderFloat64 */
1010bf215546Sopenharmony_ci    /* skip val->shaderInt64 */
1011bf215546Sopenharmony_ci    /* skip val->shaderInt16 */
1012bf215546Sopenharmony_ci    /* skip val->shaderResourceResidency */
1013bf215546Sopenharmony_ci    /* skip val->shaderResourceMinLod */
1014bf215546Sopenharmony_ci    /* skip val->sparseBinding */
1015bf215546Sopenharmony_ci    /* skip val->sparseResidencyBuffer */
1016bf215546Sopenharmony_ci    /* skip val->sparseResidencyImage2D */
1017bf215546Sopenharmony_ci    /* skip val->sparseResidencyImage3D */
1018bf215546Sopenharmony_ci    /* skip val->sparseResidency2Samples */
1019bf215546Sopenharmony_ci    /* skip val->sparseResidency4Samples */
1020bf215546Sopenharmony_ci    /* skip val->sparseResidency8Samples */
1021bf215546Sopenharmony_ci    /* skip val->sparseResidency16Samples */
1022bf215546Sopenharmony_ci    /* skip val->sparseResidencyAliased */
1023bf215546Sopenharmony_ci    /* skip val->variableMultisampleRate */
1024bf215546Sopenharmony_ci    /* skip val->inheritedQueries */
1025bf215546Sopenharmony_ci    return size;
1026bf215546Sopenharmony_ci}
1027bf215546Sopenharmony_ci
1028bf215546Sopenharmony_cistatic inline void
1029bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures *val)
1030bf215546Sopenharmony_ci{
1031bf215546Sopenharmony_ci    /* skip val->robustBufferAccess */
1032bf215546Sopenharmony_ci    /* skip val->fullDrawIndexUint32 */
1033bf215546Sopenharmony_ci    /* skip val->imageCubeArray */
1034bf215546Sopenharmony_ci    /* skip val->independentBlend */
1035bf215546Sopenharmony_ci    /* skip val->geometryShader */
1036bf215546Sopenharmony_ci    /* skip val->tessellationShader */
1037bf215546Sopenharmony_ci    /* skip val->sampleRateShading */
1038bf215546Sopenharmony_ci    /* skip val->dualSrcBlend */
1039bf215546Sopenharmony_ci    /* skip val->logicOp */
1040bf215546Sopenharmony_ci    /* skip val->multiDrawIndirect */
1041bf215546Sopenharmony_ci    /* skip val->drawIndirectFirstInstance */
1042bf215546Sopenharmony_ci    /* skip val->depthClamp */
1043bf215546Sopenharmony_ci    /* skip val->depthBiasClamp */
1044bf215546Sopenharmony_ci    /* skip val->fillModeNonSolid */
1045bf215546Sopenharmony_ci    /* skip val->depthBounds */
1046bf215546Sopenharmony_ci    /* skip val->wideLines */
1047bf215546Sopenharmony_ci    /* skip val->largePoints */
1048bf215546Sopenharmony_ci    /* skip val->alphaToOne */
1049bf215546Sopenharmony_ci    /* skip val->multiViewport */
1050bf215546Sopenharmony_ci    /* skip val->samplerAnisotropy */
1051bf215546Sopenharmony_ci    /* skip val->textureCompressionETC2 */
1052bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_LDR */
1053bf215546Sopenharmony_ci    /* skip val->textureCompressionBC */
1054bf215546Sopenharmony_ci    /* skip val->occlusionQueryPrecise */
1055bf215546Sopenharmony_ci    /* skip val->pipelineStatisticsQuery */
1056bf215546Sopenharmony_ci    /* skip val->vertexPipelineStoresAndAtomics */
1057bf215546Sopenharmony_ci    /* skip val->fragmentStoresAndAtomics */
1058bf215546Sopenharmony_ci    /* skip val->shaderTessellationAndGeometryPointSize */
1059bf215546Sopenharmony_ci    /* skip val->shaderImageGatherExtended */
1060bf215546Sopenharmony_ci    /* skip val->shaderStorageImageExtendedFormats */
1061bf215546Sopenharmony_ci    /* skip val->shaderStorageImageMultisample */
1062bf215546Sopenharmony_ci    /* skip val->shaderStorageImageReadWithoutFormat */
1063bf215546Sopenharmony_ci    /* skip val->shaderStorageImageWriteWithoutFormat */
1064bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayDynamicIndexing */
1065bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayDynamicIndexing */
1066bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayDynamicIndexing */
1067bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayDynamicIndexing */
1068bf215546Sopenharmony_ci    /* skip val->shaderClipDistance */
1069bf215546Sopenharmony_ci    /* skip val->shaderCullDistance */
1070bf215546Sopenharmony_ci    /* skip val->shaderFloat64 */
1071bf215546Sopenharmony_ci    /* skip val->shaderInt64 */
1072bf215546Sopenharmony_ci    /* skip val->shaderInt16 */
1073bf215546Sopenharmony_ci    /* skip val->shaderResourceResidency */
1074bf215546Sopenharmony_ci    /* skip val->shaderResourceMinLod */
1075bf215546Sopenharmony_ci    /* skip val->sparseBinding */
1076bf215546Sopenharmony_ci    /* skip val->sparseResidencyBuffer */
1077bf215546Sopenharmony_ci    /* skip val->sparseResidencyImage2D */
1078bf215546Sopenharmony_ci    /* skip val->sparseResidencyImage3D */
1079bf215546Sopenharmony_ci    /* skip val->sparseResidency2Samples */
1080bf215546Sopenharmony_ci    /* skip val->sparseResidency4Samples */
1081bf215546Sopenharmony_ci    /* skip val->sparseResidency8Samples */
1082bf215546Sopenharmony_ci    /* skip val->sparseResidency16Samples */
1083bf215546Sopenharmony_ci    /* skip val->sparseResidencyAliased */
1084bf215546Sopenharmony_ci    /* skip val->variableMultisampleRate */
1085bf215546Sopenharmony_ci    /* skip val->inheritedQueries */
1086bf215546Sopenharmony_ci}
1087bf215546Sopenharmony_ci
1088bf215546Sopenharmony_ci/* struct VkFormatProperties */
1089bf215546Sopenharmony_ci
1090bf215546Sopenharmony_cistatic inline size_t
1091bf215546Sopenharmony_civn_sizeof_VkFormatProperties(const VkFormatProperties *val)
1092bf215546Sopenharmony_ci{
1093bf215546Sopenharmony_ci    size_t size = 0;
1094bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->linearTilingFeatures);
1095bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->optimalTilingFeatures);
1096bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->bufferFeatures);
1097bf215546Sopenharmony_ci    return size;
1098bf215546Sopenharmony_ci}
1099bf215546Sopenharmony_ci
1100bf215546Sopenharmony_cistatic inline void
1101bf215546Sopenharmony_civn_decode_VkFormatProperties(struct vn_cs_decoder *dec, VkFormatProperties *val)
1102bf215546Sopenharmony_ci{
1103bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->linearTilingFeatures);
1104bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->optimalTilingFeatures);
1105bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->bufferFeatures);
1106bf215546Sopenharmony_ci}
1107bf215546Sopenharmony_ci
1108bf215546Sopenharmony_cistatic inline size_t
1109bf215546Sopenharmony_civn_sizeof_VkFormatProperties_partial(const VkFormatProperties *val)
1110bf215546Sopenharmony_ci{
1111bf215546Sopenharmony_ci    size_t size = 0;
1112bf215546Sopenharmony_ci    /* skip val->linearTilingFeatures */
1113bf215546Sopenharmony_ci    /* skip val->optimalTilingFeatures */
1114bf215546Sopenharmony_ci    /* skip val->bufferFeatures */
1115bf215546Sopenharmony_ci    return size;
1116bf215546Sopenharmony_ci}
1117bf215546Sopenharmony_ci
1118bf215546Sopenharmony_cistatic inline void
1119bf215546Sopenharmony_civn_encode_VkFormatProperties_partial(struct vn_cs_encoder *enc, const VkFormatProperties *val)
1120bf215546Sopenharmony_ci{
1121bf215546Sopenharmony_ci    /* skip val->linearTilingFeatures */
1122bf215546Sopenharmony_ci    /* skip val->optimalTilingFeatures */
1123bf215546Sopenharmony_ci    /* skip val->bufferFeatures */
1124bf215546Sopenharmony_ci}
1125bf215546Sopenharmony_ci
1126bf215546Sopenharmony_ci/* struct VkImageFormatProperties */
1127bf215546Sopenharmony_ci
1128bf215546Sopenharmony_cistatic inline size_t
1129bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties(const VkImageFormatProperties *val)
1130bf215546Sopenharmony_ci{
1131bf215546Sopenharmony_ci    size_t size = 0;
1132bf215546Sopenharmony_ci    size += vn_sizeof_VkExtent3D(&val->maxExtent);
1133bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMipLevels);
1134bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxArrayLayers);
1135bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->sampleCounts);
1136bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxResourceSize);
1137bf215546Sopenharmony_ci    return size;
1138bf215546Sopenharmony_ci}
1139bf215546Sopenharmony_ci
1140bf215546Sopenharmony_cistatic inline void
1141bf215546Sopenharmony_civn_decode_VkImageFormatProperties(struct vn_cs_decoder *dec, VkImageFormatProperties *val)
1142bf215546Sopenharmony_ci{
1143bf215546Sopenharmony_ci    vn_decode_VkExtent3D(dec, &val->maxExtent);
1144bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMipLevels);
1145bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxArrayLayers);
1146bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->sampleCounts);
1147bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxResourceSize);
1148bf215546Sopenharmony_ci}
1149bf215546Sopenharmony_ci
1150bf215546Sopenharmony_cistatic inline size_t
1151bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties_partial(const VkImageFormatProperties *val)
1152bf215546Sopenharmony_ci{
1153bf215546Sopenharmony_ci    size_t size = 0;
1154bf215546Sopenharmony_ci    size += vn_sizeof_VkExtent3D_partial(&val->maxExtent);
1155bf215546Sopenharmony_ci    /* skip val->maxMipLevels */
1156bf215546Sopenharmony_ci    /* skip val->maxArrayLayers */
1157bf215546Sopenharmony_ci    /* skip val->sampleCounts */
1158bf215546Sopenharmony_ci    /* skip val->maxResourceSize */
1159bf215546Sopenharmony_ci    return size;
1160bf215546Sopenharmony_ci}
1161bf215546Sopenharmony_ci
1162bf215546Sopenharmony_cistatic inline void
1163bf215546Sopenharmony_civn_encode_VkImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkImageFormatProperties *val)
1164bf215546Sopenharmony_ci{
1165bf215546Sopenharmony_ci    vn_encode_VkExtent3D_partial(enc, &val->maxExtent);
1166bf215546Sopenharmony_ci    /* skip val->maxMipLevels */
1167bf215546Sopenharmony_ci    /* skip val->maxArrayLayers */
1168bf215546Sopenharmony_ci    /* skip val->sampleCounts */
1169bf215546Sopenharmony_ci    /* skip val->maxResourceSize */
1170bf215546Sopenharmony_ci}
1171bf215546Sopenharmony_ci
1172bf215546Sopenharmony_ci/* struct VkDeviceQueueCreateInfo chain */
1173bf215546Sopenharmony_ci
1174bf215546Sopenharmony_cistatic inline size_t
1175bf215546Sopenharmony_civn_sizeof_VkDeviceQueueCreateInfo_pnext(const void *val)
1176bf215546Sopenharmony_ci{
1177bf215546Sopenharmony_ci    /* no known/supported struct */
1178bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1179bf215546Sopenharmony_ci}
1180bf215546Sopenharmony_ci
1181bf215546Sopenharmony_cistatic inline size_t
1182bf215546Sopenharmony_civn_sizeof_VkDeviceQueueCreateInfo_self(const VkDeviceQueueCreateInfo *val)
1183bf215546Sopenharmony_ci{
1184bf215546Sopenharmony_ci    size_t size = 0;
1185bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1186bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
1187bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueFamilyIndex);
1188bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueCount);
1189bf215546Sopenharmony_ci    if (val->pQueuePriorities) {
1190bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->queueCount);
1191bf215546Sopenharmony_ci        size += vn_sizeof_float_array(val->pQueuePriorities, val->queueCount);
1192bf215546Sopenharmony_ci    } else {
1193bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
1194bf215546Sopenharmony_ci    }
1195bf215546Sopenharmony_ci    return size;
1196bf215546Sopenharmony_ci}
1197bf215546Sopenharmony_ci
1198bf215546Sopenharmony_cistatic inline size_t
1199bf215546Sopenharmony_civn_sizeof_VkDeviceQueueCreateInfo(const VkDeviceQueueCreateInfo *val)
1200bf215546Sopenharmony_ci{
1201bf215546Sopenharmony_ci    size_t size = 0;
1202bf215546Sopenharmony_ci
1203bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1204bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceQueueCreateInfo_pnext(val->pNext);
1205bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceQueueCreateInfo_self(val);
1206bf215546Sopenharmony_ci
1207bf215546Sopenharmony_ci    return size;
1208bf215546Sopenharmony_ci}
1209bf215546Sopenharmony_ci
1210bf215546Sopenharmony_cistatic inline void
1211bf215546Sopenharmony_civn_encode_VkDeviceQueueCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
1212bf215546Sopenharmony_ci{
1213bf215546Sopenharmony_ci    /* no known/supported struct */
1214bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1215bf215546Sopenharmony_ci}
1216bf215546Sopenharmony_ci
1217bf215546Sopenharmony_cistatic inline void
1218bf215546Sopenharmony_civn_encode_VkDeviceQueueCreateInfo_self(struct vn_cs_encoder *enc, const VkDeviceQueueCreateInfo *val)
1219bf215546Sopenharmony_ci{
1220bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1221bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->flags);
1222bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueFamilyIndex);
1223bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueCount);
1224bf215546Sopenharmony_ci    if (val->pQueuePriorities) {
1225bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->queueCount);
1226bf215546Sopenharmony_ci        vn_encode_float_array(enc, val->pQueuePriorities, val->queueCount);
1227bf215546Sopenharmony_ci    } else {
1228bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
1229bf215546Sopenharmony_ci    }
1230bf215546Sopenharmony_ci}
1231bf215546Sopenharmony_ci
1232bf215546Sopenharmony_cistatic inline void
1233bf215546Sopenharmony_civn_encode_VkDeviceQueueCreateInfo(struct vn_cs_encoder *enc, const VkDeviceQueueCreateInfo *val)
1234bf215546Sopenharmony_ci{
1235bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO);
1236bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO });
1237bf215546Sopenharmony_ci    vn_encode_VkDeviceQueueCreateInfo_pnext(enc, val->pNext);
1238bf215546Sopenharmony_ci    vn_encode_VkDeviceQueueCreateInfo_self(enc, val);
1239bf215546Sopenharmony_ci}
1240bf215546Sopenharmony_ci
1241bf215546Sopenharmony_ci/* struct VkDevicePrivateDataCreateInfo chain */
1242bf215546Sopenharmony_ci
1243bf215546Sopenharmony_cistatic inline size_t
1244bf215546Sopenharmony_civn_sizeof_VkDevicePrivateDataCreateInfo_pnext(const void *val)
1245bf215546Sopenharmony_ci{
1246bf215546Sopenharmony_ci    /* no known/supported struct */
1247bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1248bf215546Sopenharmony_ci}
1249bf215546Sopenharmony_ci
1250bf215546Sopenharmony_cistatic inline size_t
1251bf215546Sopenharmony_civn_sizeof_VkDevicePrivateDataCreateInfo_self(const VkDevicePrivateDataCreateInfo *val)
1252bf215546Sopenharmony_ci{
1253bf215546Sopenharmony_ci    size_t size = 0;
1254bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1255bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->privateDataSlotRequestCount);
1256bf215546Sopenharmony_ci    return size;
1257bf215546Sopenharmony_ci}
1258bf215546Sopenharmony_ci
1259bf215546Sopenharmony_cistatic inline size_t
1260bf215546Sopenharmony_civn_sizeof_VkDevicePrivateDataCreateInfo(const VkDevicePrivateDataCreateInfo *val)
1261bf215546Sopenharmony_ci{
1262bf215546Sopenharmony_ci    size_t size = 0;
1263bf215546Sopenharmony_ci
1264bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1265bf215546Sopenharmony_ci    size += vn_sizeof_VkDevicePrivateDataCreateInfo_pnext(val->pNext);
1266bf215546Sopenharmony_ci    size += vn_sizeof_VkDevicePrivateDataCreateInfo_self(val);
1267bf215546Sopenharmony_ci
1268bf215546Sopenharmony_ci    return size;
1269bf215546Sopenharmony_ci}
1270bf215546Sopenharmony_ci
1271bf215546Sopenharmony_cistatic inline void
1272bf215546Sopenharmony_civn_encode_VkDevicePrivateDataCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
1273bf215546Sopenharmony_ci{
1274bf215546Sopenharmony_ci    /* no known/supported struct */
1275bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1276bf215546Sopenharmony_ci}
1277bf215546Sopenharmony_ci
1278bf215546Sopenharmony_cistatic inline void
1279bf215546Sopenharmony_civn_encode_VkDevicePrivateDataCreateInfo_self(struct vn_cs_encoder *enc, const VkDevicePrivateDataCreateInfo *val)
1280bf215546Sopenharmony_ci{
1281bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1282bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->privateDataSlotRequestCount);
1283bf215546Sopenharmony_ci}
1284bf215546Sopenharmony_ci
1285bf215546Sopenharmony_cistatic inline void
1286bf215546Sopenharmony_civn_encode_VkDevicePrivateDataCreateInfo(struct vn_cs_encoder *enc, const VkDevicePrivateDataCreateInfo *val)
1287bf215546Sopenharmony_ci{
1288bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO);
1289bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO });
1290bf215546Sopenharmony_ci    vn_encode_VkDevicePrivateDataCreateInfo_pnext(enc, val->pNext);
1291bf215546Sopenharmony_ci    vn_encode_VkDevicePrivateDataCreateInfo_self(enc, val);
1292bf215546Sopenharmony_ci}
1293bf215546Sopenharmony_ci
1294bf215546Sopenharmony_ci/* struct VkPhysicalDevicePrivateDataFeatures chain */
1295bf215546Sopenharmony_ci
1296bf215546Sopenharmony_cistatic inline size_t
1297bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures_pnext(const void *val)
1298bf215546Sopenharmony_ci{
1299bf215546Sopenharmony_ci    /* no known/supported struct */
1300bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1301bf215546Sopenharmony_ci}
1302bf215546Sopenharmony_ci
1303bf215546Sopenharmony_cistatic inline size_t
1304bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures_self(const VkPhysicalDevicePrivateDataFeatures *val)
1305bf215546Sopenharmony_ci{
1306bf215546Sopenharmony_ci    size_t size = 0;
1307bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1308bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->privateData);
1309bf215546Sopenharmony_ci    return size;
1310bf215546Sopenharmony_ci}
1311bf215546Sopenharmony_ci
1312bf215546Sopenharmony_cistatic inline size_t
1313bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures(const VkPhysicalDevicePrivateDataFeatures *val)
1314bf215546Sopenharmony_ci{
1315bf215546Sopenharmony_ci    size_t size = 0;
1316bf215546Sopenharmony_ci
1317bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1318bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_pnext(val->pNext);
1319bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_self(val);
1320bf215546Sopenharmony_ci
1321bf215546Sopenharmony_ci    return size;
1322bf215546Sopenharmony_ci}
1323bf215546Sopenharmony_ci
1324bf215546Sopenharmony_cistatic inline void
1325bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1326bf215546Sopenharmony_ci{
1327bf215546Sopenharmony_ci    /* no known/supported struct */
1328bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1329bf215546Sopenharmony_ci}
1330bf215546Sopenharmony_ci
1331bf215546Sopenharmony_cistatic inline void
1332bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
1333bf215546Sopenharmony_ci{
1334bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1335bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->privateData);
1336bf215546Sopenharmony_ci}
1337bf215546Sopenharmony_ci
1338bf215546Sopenharmony_cistatic inline void
1339bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
1340bf215546Sopenharmony_ci{
1341bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES);
1342bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES });
1343bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(enc, val->pNext);
1344bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, val);
1345bf215546Sopenharmony_ci}
1346bf215546Sopenharmony_ci
1347bf215546Sopenharmony_cistatic inline void
1348bf215546Sopenharmony_civn_decode_VkPhysicalDevicePrivateDataFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
1349bf215546Sopenharmony_ci{
1350bf215546Sopenharmony_ci    /* no known/supported struct */
1351bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
1352bf215546Sopenharmony_ci        assert(false);
1353bf215546Sopenharmony_ci}
1354bf215546Sopenharmony_ci
1355bf215546Sopenharmony_cistatic inline void
1356bf215546Sopenharmony_civn_decode_VkPhysicalDevicePrivateDataFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
1357bf215546Sopenharmony_ci{
1358bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1359bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->privateData);
1360bf215546Sopenharmony_ci}
1361bf215546Sopenharmony_ci
1362bf215546Sopenharmony_cistatic inline void
1363bf215546Sopenharmony_civn_decode_VkPhysicalDevicePrivateDataFeatures(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val)
1364bf215546Sopenharmony_ci{
1365bf215546Sopenharmony_ci    VkStructureType stype;
1366bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
1367bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES);
1368bf215546Sopenharmony_ci
1369bf215546Sopenharmony_ci    assert(val->sType == stype);
1370bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext(dec, val->pNext);
1371bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePrivateDataFeatures_self(dec, val);
1372bf215546Sopenharmony_ci}
1373bf215546Sopenharmony_ci
1374bf215546Sopenharmony_cistatic inline size_t
1375bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures_pnext_partial(const void *val)
1376bf215546Sopenharmony_ci{
1377bf215546Sopenharmony_ci    /* no known/supported struct */
1378bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1379bf215546Sopenharmony_ci}
1380bf215546Sopenharmony_ci
1381bf215546Sopenharmony_cistatic inline size_t
1382bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures_self_partial(const VkPhysicalDevicePrivateDataFeatures *val)
1383bf215546Sopenharmony_ci{
1384bf215546Sopenharmony_ci    size_t size = 0;
1385bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1386bf215546Sopenharmony_ci    /* skip val->privateData */
1387bf215546Sopenharmony_ci    return size;
1388bf215546Sopenharmony_ci}
1389bf215546Sopenharmony_ci
1390bf215546Sopenharmony_cistatic inline size_t
1391bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePrivateDataFeatures_partial(const VkPhysicalDevicePrivateDataFeatures *val)
1392bf215546Sopenharmony_ci{
1393bf215546Sopenharmony_ci    size_t size = 0;
1394bf215546Sopenharmony_ci
1395bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1396bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_pnext_partial(val->pNext);
1397bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_self_partial(val);
1398bf215546Sopenharmony_ci
1399bf215546Sopenharmony_ci    return size;
1400bf215546Sopenharmony_ci}
1401bf215546Sopenharmony_ci
1402bf215546Sopenharmony_cistatic inline void
1403bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
1404bf215546Sopenharmony_ci{
1405bf215546Sopenharmony_ci    /* no known/supported struct */
1406bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1407bf215546Sopenharmony_ci}
1408bf215546Sopenharmony_ci
1409bf215546Sopenharmony_cistatic inline void
1410bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
1411bf215546Sopenharmony_ci{
1412bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1413bf215546Sopenharmony_ci    /* skip val->privateData */
1414bf215546Sopenharmony_ci}
1415bf215546Sopenharmony_ci
1416bf215546Sopenharmony_cistatic inline void
1417bf215546Sopenharmony_civn_encode_VkPhysicalDevicePrivateDataFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val)
1418bf215546Sopenharmony_ci{
1419bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES);
1420bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES });
1421bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext_partial(enc, val->pNext);
1422bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePrivateDataFeatures_self_partial(enc, val);
1423bf215546Sopenharmony_ci}
1424bf215546Sopenharmony_ci
1425bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVariablePointersFeatures chain */
1426bf215546Sopenharmony_ci
1427bf215546Sopenharmony_cistatic inline size_t
1428bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures_pnext(const void *val)
1429bf215546Sopenharmony_ci{
1430bf215546Sopenharmony_ci    /* no known/supported struct */
1431bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1432bf215546Sopenharmony_ci}
1433bf215546Sopenharmony_ci
1434bf215546Sopenharmony_cistatic inline size_t
1435bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self(const VkPhysicalDeviceVariablePointersFeatures *val)
1436bf215546Sopenharmony_ci{
1437bf215546Sopenharmony_ci    size_t size = 0;
1438bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1439bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->variablePointersStorageBuffer);
1440bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->variablePointers);
1441bf215546Sopenharmony_ci    return size;
1442bf215546Sopenharmony_ci}
1443bf215546Sopenharmony_ci
1444bf215546Sopenharmony_cistatic inline size_t
1445bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures(const VkPhysicalDeviceVariablePointersFeatures *val)
1446bf215546Sopenharmony_ci{
1447bf215546Sopenharmony_ci    size_t size = 0;
1448bf215546Sopenharmony_ci
1449bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1450bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_pnext(val->pNext);
1451bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self(val);
1452bf215546Sopenharmony_ci
1453bf215546Sopenharmony_ci    return size;
1454bf215546Sopenharmony_ci}
1455bf215546Sopenharmony_ci
1456bf215546Sopenharmony_cistatic inline void
1457bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1458bf215546Sopenharmony_ci{
1459bf215546Sopenharmony_ci    /* no known/supported struct */
1460bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1461bf215546Sopenharmony_ci}
1462bf215546Sopenharmony_ci
1463bf215546Sopenharmony_cistatic inline void
1464bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
1465bf215546Sopenharmony_ci{
1466bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1467bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer);
1468bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->variablePointers);
1469bf215546Sopenharmony_ci}
1470bf215546Sopenharmony_ci
1471bf215546Sopenharmony_cistatic inline void
1472bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
1473bf215546Sopenharmony_ci{
1474bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES);
1475bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES });
1476bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext(enc, val->pNext);
1477bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(enc, val);
1478bf215546Sopenharmony_ci}
1479bf215546Sopenharmony_ci
1480bf215546Sopenharmony_cistatic inline void
1481bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
1482bf215546Sopenharmony_ci{
1483bf215546Sopenharmony_ci    /* no known/supported struct */
1484bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
1485bf215546Sopenharmony_ci        assert(false);
1486bf215546Sopenharmony_ci}
1487bf215546Sopenharmony_ci
1488bf215546Sopenharmony_cistatic inline void
1489bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVariablePointersFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
1490bf215546Sopenharmony_ci{
1491bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1492bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer);
1493bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->variablePointers);
1494bf215546Sopenharmony_ci}
1495bf215546Sopenharmony_ci
1496bf215546Sopenharmony_cistatic inline void
1497bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVariablePointersFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceVariablePointersFeatures *val)
1498bf215546Sopenharmony_ci{
1499bf215546Sopenharmony_ci    VkStructureType stype;
1500bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
1501bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES);
1502bf215546Sopenharmony_ci
1503bf215546Sopenharmony_ci    assert(val->sType == stype);
1504bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVariablePointersFeatures_pnext(dec, val->pNext);
1505bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVariablePointersFeatures_self(dec, val);
1506bf215546Sopenharmony_ci}
1507bf215546Sopenharmony_ci
1508bf215546Sopenharmony_cistatic inline size_t
1509bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures_pnext_partial(const void *val)
1510bf215546Sopenharmony_ci{
1511bf215546Sopenharmony_ci    /* no known/supported struct */
1512bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1513bf215546Sopenharmony_ci}
1514bf215546Sopenharmony_ci
1515bf215546Sopenharmony_cistatic inline size_t
1516bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self_partial(const VkPhysicalDeviceVariablePointersFeatures *val)
1517bf215546Sopenharmony_ci{
1518bf215546Sopenharmony_ci    size_t size = 0;
1519bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1520bf215546Sopenharmony_ci    /* skip val->variablePointersStorageBuffer */
1521bf215546Sopenharmony_ci    /* skip val->variablePointers */
1522bf215546Sopenharmony_ci    return size;
1523bf215546Sopenharmony_ci}
1524bf215546Sopenharmony_ci
1525bf215546Sopenharmony_cistatic inline size_t
1526bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVariablePointersFeatures_partial(const VkPhysicalDeviceVariablePointersFeatures *val)
1527bf215546Sopenharmony_ci{
1528bf215546Sopenharmony_ci    size_t size = 0;
1529bf215546Sopenharmony_ci
1530bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1531bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_pnext_partial(val->pNext);
1532bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self_partial(val);
1533bf215546Sopenharmony_ci
1534bf215546Sopenharmony_ci    return size;
1535bf215546Sopenharmony_ci}
1536bf215546Sopenharmony_ci
1537bf215546Sopenharmony_cistatic inline void
1538bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
1539bf215546Sopenharmony_ci{
1540bf215546Sopenharmony_ci    /* no known/supported struct */
1541bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1542bf215546Sopenharmony_ci}
1543bf215546Sopenharmony_ci
1544bf215546Sopenharmony_cistatic inline void
1545bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
1546bf215546Sopenharmony_ci{
1547bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1548bf215546Sopenharmony_ci    /* skip val->variablePointersStorageBuffer */
1549bf215546Sopenharmony_ci    /* skip val->variablePointers */
1550bf215546Sopenharmony_ci}
1551bf215546Sopenharmony_ci
1552bf215546Sopenharmony_cistatic inline void
1553bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVariablePointersFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVariablePointersFeatures *val)
1554bf215546Sopenharmony_ci{
1555bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES);
1556bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES });
1557bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVariablePointersFeatures_pnext_partial(enc, val->pNext);
1558bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVariablePointersFeatures_self_partial(enc, val);
1559bf215546Sopenharmony_ci}
1560bf215546Sopenharmony_ci
1561bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMultiviewFeatures chain */
1562bf215546Sopenharmony_ci
1563bf215546Sopenharmony_cistatic inline size_t
1564bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures_pnext(const void *val)
1565bf215546Sopenharmony_ci{
1566bf215546Sopenharmony_ci    /* no known/supported struct */
1567bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1568bf215546Sopenharmony_ci}
1569bf215546Sopenharmony_ci
1570bf215546Sopenharmony_cistatic inline size_t
1571bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures_self(const VkPhysicalDeviceMultiviewFeatures *val)
1572bf215546Sopenharmony_ci{
1573bf215546Sopenharmony_ci    size_t size = 0;
1574bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1575bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiview);
1576bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiviewGeometryShader);
1577bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiviewTessellationShader);
1578bf215546Sopenharmony_ci    return size;
1579bf215546Sopenharmony_ci}
1580bf215546Sopenharmony_ci
1581bf215546Sopenharmony_cistatic inline size_t
1582bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures(const VkPhysicalDeviceMultiviewFeatures *val)
1583bf215546Sopenharmony_ci{
1584bf215546Sopenharmony_ci    size_t size = 0;
1585bf215546Sopenharmony_ci
1586bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1587bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_pnext(val->pNext);
1588bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_self(val);
1589bf215546Sopenharmony_ci
1590bf215546Sopenharmony_ci    return size;
1591bf215546Sopenharmony_ci}
1592bf215546Sopenharmony_ci
1593bf215546Sopenharmony_cistatic inline void
1594bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1595bf215546Sopenharmony_ci{
1596bf215546Sopenharmony_ci    /* no known/supported struct */
1597bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1598bf215546Sopenharmony_ci}
1599bf215546Sopenharmony_ci
1600bf215546Sopenharmony_cistatic inline void
1601bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1602bf215546Sopenharmony_ci{
1603bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1604bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiview);
1605bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiviewGeometryShader);
1606bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiviewTessellationShader);
1607bf215546Sopenharmony_ci}
1608bf215546Sopenharmony_ci
1609bf215546Sopenharmony_cistatic inline void
1610bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1611bf215546Sopenharmony_ci{
1612bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES);
1613bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES });
1614bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewFeatures_pnext(enc, val->pNext);
1615bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewFeatures_self(enc, val);
1616bf215546Sopenharmony_ci}
1617bf215546Sopenharmony_ci
1618bf215546Sopenharmony_cistatic inline void
1619bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
1620bf215546Sopenharmony_ci{
1621bf215546Sopenharmony_ci    /* no known/supported struct */
1622bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
1623bf215546Sopenharmony_ci        assert(false);
1624bf215546Sopenharmony_ci}
1625bf215546Sopenharmony_ci
1626bf215546Sopenharmony_cistatic inline void
1627bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1628bf215546Sopenharmony_ci{
1629bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1630bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiview);
1631bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiviewGeometryShader);
1632bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiviewTessellationShader);
1633bf215546Sopenharmony_ci}
1634bf215546Sopenharmony_ci
1635bf215546Sopenharmony_cistatic inline void
1636bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewFeatures *val)
1637bf215546Sopenharmony_ci{
1638bf215546Sopenharmony_ci    VkStructureType stype;
1639bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
1640bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES);
1641bf215546Sopenharmony_ci
1642bf215546Sopenharmony_ci    assert(val->sType == stype);
1643bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMultiviewFeatures_pnext(dec, val->pNext);
1644bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMultiviewFeatures_self(dec, val);
1645bf215546Sopenharmony_ci}
1646bf215546Sopenharmony_ci
1647bf215546Sopenharmony_cistatic inline size_t
1648bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures_pnext_partial(const void *val)
1649bf215546Sopenharmony_ci{
1650bf215546Sopenharmony_ci    /* no known/supported struct */
1651bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1652bf215546Sopenharmony_ci}
1653bf215546Sopenharmony_ci
1654bf215546Sopenharmony_cistatic inline size_t
1655bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures_self_partial(const VkPhysicalDeviceMultiviewFeatures *val)
1656bf215546Sopenharmony_ci{
1657bf215546Sopenharmony_ci    size_t size = 0;
1658bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1659bf215546Sopenharmony_ci    /* skip val->multiview */
1660bf215546Sopenharmony_ci    /* skip val->multiviewGeometryShader */
1661bf215546Sopenharmony_ci    /* skip val->multiviewTessellationShader */
1662bf215546Sopenharmony_ci    return size;
1663bf215546Sopenharmony_ci}
1664bf215546Sopenharmony_ci
1665bf215546Sopenharmony_cistatic inline size_t
1666bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewFeatures_partial(const VkPhysicalDeviceMultiviewFeatures *val)
1667bf215546Sopenharmony_ci{
1668bf215546Sopenharmony_ci    size_t size = 0;
1669bf215546Sopenharmony_ci
1670bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1671bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_pnext_partial(val->pNext);
1672bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_self_partial(val);
1673bf215546Sopenharmony_ci
1674bf215546Sopenharmony_ci    return size;
1675bf215546Sopenharmony_ci}
1676bf215546Sopenharmony_ci
1677bf215546Sopenharmony_cistatic inline void
1678bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
1679bf215546Sopenharmony_ci{
1680bf215546Sopenharmony_ci    /* no known/supported struct */
1681bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1682bf215546Sopenharmony_ci}
1683bf215546Sopenharmony_ci
1684bf215546Sopenharmony_cistatic inline void
1685bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1686bf215546Sopenharmony_ci{
1687bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1688bf215546Sopenharmony_ci    /* skip val->multiview */
1689bf215546Sopenharmony_ci    /* skip val->multiviewGeometryShader */
1690bf215546Sopenharmony_ci    /* skip val->multiviewTessellationShader */
1691bf215546Sopenharmony_ci}
1692bf215546Sopenharmony_ci
1693bf215546Sopenharmony_cistatic inline void
1694bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewFeatures *val)
1695bf215546Sopenharmony_ci{
1696bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES);
1697bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES });
1698bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewFeatures_pnext_partial(enc, val->pNext);
1699bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewFeatures_self_partial(enc, val);
1700bf215546Sopenharmony_ci}
1701bf215546Sopenharmony_ci
1702bf215546Sopenharmony_ci/* struct VkPhysicalDevice16BitStorageFeatures chain */
1703bf215546Sopenharmony_ci
1704bf215546Sopenharmony_cistatic inline size_t
1705bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures_pnext(const void *val)
1706bf215546Sopenharmony_ci{
1707bf215546Sopenharmony_ci    /* no known/supported struct */
1708bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1709bf215546Sopenharmony_ci}
1710bf215546Sopenharmony_ci
1711bf215546Sopenharmony_cistatic inline size_t
1712bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures_self(const VkPhysicalDevice16BitStorageFeatures *val)
1713bf215546Sopenharmony_ci{
1714bf215546Sopenharmony_ci    size_t size = 0;
1715bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1716bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageBuffer16BitAccess);
1717bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformAndStorageBuffer16BitAccess);
1718bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storagePushConstant16);
1719bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageInputOutput16);
1720bf215546Sopenharmony_ci    return size;
1721bf215546Sopenharmony_ci}
1722bf215546Sopenharmony_ci
1723bf215546Sopenharmony_cistatic inline size_t
1724bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures(const VkPhysicalDevice16BitStorageFeatures *val)
1725bf215546Sopenharmony_ci{
1726bf215546Sopenharmony_ci    size_t size = 0;
1727bf215546Sopenharmony_ci
1728bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1729bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_pnext(val->pNext);
1730bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_self(val);
1731bf215546Sopenharmony_ci
1732bf215546Sopenharmony_ci    return size;
1733bf215546Sopenharmony_ci}
1734bf215546Sopenharmony_ci
1735bf215546Sopenharmony_cistatic inline void
1736bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1737bf215546Sopenharmony_ci{
1738bf215546Sopenharmony_ci    /* no known/supported struct */
1739bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1740bf215546Sopenharmony_ci}
1741bf215546Sopenharmony_ci
1742bf215546Sopenharmony_cistatic inline void
1743bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1744bf215546Sopenharmony_ci{
1745bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1746bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess);
1747bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess);
1748bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storagePushConstant16);
1749bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageInputOutput16);
1750bf215546Sopenharmony_ci}
1751bf215546Sopenharmony_ci
1752bf215546Sopenharmony_cistatic inline void
1753bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1754bf215546Sopenharmony_ci{
1755bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES);
1756bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES });
1757bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice16BitStorageFeatures_pnext(enc, val->pNext);
1758bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice16BitStorageFeatures_self(enc, val);
1759bf215546Sopenharmony_ci}
1760bf215546Sopenharmony_ci
1761bf215546Sopenharmony_cistatic inline void
1762bf215546Sopenharmony_civn_decode_VkPhysicalDevice16BitStorageFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
1763bf215546Sopenharmony_ci{
1764bf215546Sopenharmony_ci    /* no known/supported struct */
1765bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
1766bf215546Sopenharmony_ci        assert(false);
1767bf215546Sopenharmony_ci}
1768bf215546Sopenharmony_ci
1769bf215546Sopenharmony_cistatic inline void
1770bf215546Sopenharmony_civn_decode_VkPhysicalDevice16BitStorageFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1771bf215546Sopenharmony_ci{
1772bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1773bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess);
1774bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess);
1775bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storagePushConstant16);
1776bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageInputOutput16);
1777bf215546Sopenharmony_ci}
1778bf215546Sopenharmony_ci
1779bf215546Sopenharmony_cistatic inline void
1780bf215546Sopenharmony_civn_decode_VkPhysicalDevice16BitStorageFeatures(struct vn_cs_decoder *dec, VkPhysicalDevice16BitStorageFeatures *val)
1781bf215546Sopenharmony_ci{
1782bf215546Sopenharmony_ci    VkStructureType stype;
1783bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
1784bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES);
1785bf215546Sopenharmony_ci
1786bf215546Sopenharmony_ci    assert(val->sType == stype);
1787bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice16BitStorageFeatures_pnext(dec, val->pNext);
1788bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice16BitStorageFeatures_self(dec, val);
1789bf215546Sopenharmony_ci}
1790bf215546Sopenharmony_ci
1791bf215546Sopenharmony_cistatic inline size_t
1792bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures_pnext_partial(const void *val)
1793bf215546Sopenharmony_ci{
1794bf215546Sopenharmony_ci    /* no known/supported struct */
1795bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1796bf215546Sopenharmony_ci}
1797bf215546Sopenharmony_ci
1798bf215546Sopenharmony_cistatic inline size_t
1799bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures_self_partial(const VkPhysicalDevice16BitStorageFeatures *val)
1800bf215546Sopenharmony_ci{
1801bf215546Sopenharmony_ci    size_t size = 0;
1802bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1803bf215546Sopenharmony_ci    /* skip val->storageBuffer16BitAccess */
1804bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer16BitAccess */
1805bf215546Sopenharmony_ci    /* skip val->storagePushConstant16 */
1806bf215546Sopenharmony_ci    /* skip val->storageInputOutput16 */
1807bf215546Sopenharmony_ci    return size;
1808bf215546Sopenharmony_ci}
1809bf215546Sopenharmony_ci
1810bf215546Sopenharmony_cistatic inline size_t
1811bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice16BitStorageFeatures_partial(const VkPhysicalDevice16BitStorageFeatures *val)
1812bf215546Sopenharmony_ci{
1813bf215546Sopenharmony_ci    size_t size = 0;
1814bf215546Sopenharmony_ci
1815bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1816bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_pnext_partial(val->pNext);
1817bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_self_partial(val);
1818bf215546Sopenharmony_ci
1819bf215546Sopenharmony_ci    return size;
1820bf215546Sopenharmony_ci}
1821bf215546Sopenharmony_ci
1822bf215546Sopenharmony_cistatic inline void
1823bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
1824bf215546Sopenharmony_ci{
1825bf215546Sopenharmony_ci    /* no known/supported struct */
1826bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1827bf215546Sopenharmony_ci}
1828bf215546Sopenharmony_ci
1829bf215546Sopenharmony_cistatic inline void
1830bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1831bf215546Sopenharmony_ci{
1832bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1833bf215546Sopenharmony_ci    /* skip val->storageBuffer16BitAccess */
1834bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer16BitAccess */
1835bf215546Sopenharmony_ci    /* skip val->storagePushConstant16 */
1836bf215546Sopenharmony_ci    /* skip val->storageInputOutput16 */
1837bf215546Sopenharmony_ci}
1838bf215546Sopenharmony_ci
1839bf215546Sopenharmony_cistatic inline void
1840bf215546Sopenharmony_civn_encode_VkPhysicalDevice16BitStorageFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice16BitStorageFeatures *val)
1841bf215546Sopenharmony_ci{
1842bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES);
1843bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES });
1844bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice16BitStorageFeatures_pnext_partial(enc, val->pNext);
1845bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice16BitStorageFeatures_self_partial(enc, val);
1846bf215546Sopenharmony_ci}
1847bf215546Sopenharmony_ci
1848bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures chain */
1849bf215546Sopenharmony_ci
1850bf215546Sopenharmony_cistatic inline size_t
1851bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(const void *val)
1852bf215546Sopenharmony_ci{
1853bf215546Sopenharmony_ci    /* no known/supported struct */
1854bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1855bf215546Sopenharmony_ci}
1856bf215546Sopenharmony_ci
1857bf215546Sopenharmony_cistatic inline size_t
1858bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1859bf215546Sopenharmony_ci{
1860bf215546Sopenharmony_ci    size_t size = 0;
1861bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1862bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSubgroupExtendedTypes);
1863bf215546Sopenharmony_ci    return size;
1864bf215546Sopenharmony_ci}
1865bf215546Sopenharmony_ci
1866bf215546Sopenharmony_cistatic inline size_t
1867bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1868bf215546Sopenharmony_ci{
1869bf215546Sopenharmony_ci    size_t size = 0;
1870bf215546Sopenharmony_ci
1871bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1872bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(val->pNext);
1873bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(val);
1874bf215546Sopenharmony_ci
1875bf215546Sopenharmony_ci    return size;
1876bf215546Sopenharmony_ci}
1877bf215546Sopenharmony_ci
1878bf215546Sopenharmony_cistatic inline void
1879bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
1880bf215546Sopenharmony_ci{
1881bf215546Sopenharmony_ci    /* no known/supported struct */
1882bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1883bf215546Sopenharmony_ci}
1884bf215546Sopenharmony_ci
1885bf215546Sopenharmony_cistatic inline void
1886bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1887bf215546Sopenharmony_ci{
1888bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1889bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes);
1890bf215546Sopenharmony_ci}
1891bf215546Sopenharmony_ci
1892bf215546Sopenharmony_cistatic inline void
1893bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1894bf215546Sopenharmony_ci{
1895bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES);
1896bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES });
1897bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(enc, val->pNext);
1898bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(enc, val);
1899bf215546Sopenharmony_ci}
1900bf215546Sopenharmony_ci
1901bf215546Sopenharmony_cistatic inline void
1902bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
1903bf215546Sopenharmony_ci{
1904bf215546Sopenharmony_ci    /* no known/supported struct */
1905bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
1906bf215546Sopenharmony_ci        assert(false);
1907bf215546Sopenharmony_ci}
1908bf215546Sopenharmony_ci
1909bf215546Sopenharmony_cistatic inline void
1910bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1911bf215546Sopenharmony_ci{
1912bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1913bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes);
1914bf215546Sopenharmony_ci}
1915bf215546Sopenharmony_ci
1916bf215546Sopenharmony_cistatic inline void
1917bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1918bf215546Sopenharmony_ci{
1919bf215546Sopenharmony_ci    VkStructureType stype;
1920bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
1921bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES);
1922bf215546Sopenharmony_ci
1923bf215546Sopenharmony_ci    assert(val->sType == stype);
1924bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext(dec, val->pNext);
1925bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(dec, val);
1926bf215546Sopenharmony_ci}
1927bf215546Sopenharmony_ci
1928bf215546Sopenharmony_cistatic inline size_t
1929bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial(const void *val)
1930bf215546Sopenharmony_ci{
1931bf215546Sopenharmony_ci    /* no known/supported struct */
1932bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1933bf215546Sopenharmony_ci}
1934bf215546Sopenharmony_ci
1935bf215546Sopenharmony_cistatic inline size_t
1936bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1937bf215546Sopenharmony_ci{
1938bf215546Sopenharmony_ci    size_t size = 0;
1939bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1940bf215546Sopenharmony_ci    /* skip val->shaderSubgroupExtendedTypes */
1941bf215546Sopenharmony_ci    return size;
1942bf215546Sopenharmony_ci}
1943bf215546Sopenharmony_ci
1944bf215546Sopenharmony_cistatic inline size_t
1945bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_partial(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1946bf215546Sopenharmony_ci{
1947bf215546Sopenharmony_ci    size_t size = 0;
1948bf215546Sopenharmony_ci
1949bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
1950bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial(val->pNext);
1951bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial(val);
1952bf215546Sopenharmony_ci
1953bf215546Sopenharmony_ci    return size;
1954bf215546Sopenharmony_ci}
1955bf215546Sopenharmony_ci
1956bf215546Sopenharmony_cistatic inline void
1957bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
1958bf215546Sopenharmony_ci{
1959bf215546Sopenharmony_ci    /* no known/supported struct */
1960bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
1961bf215546Sopenharmony_ci}
1962bf215546Sopenharmony_ci
1963bf215546Sopenharmony_cistatic inline void
1964bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1965bf215546Sopenharmony_ci{
1966bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1967bf215546Sopenharmony_ci    /* skip val->shaderSubgroupExtendedTypes */
1968bf215546Sopenharmony_ci}
1969bf215546Sopenharmony_ci
1970bf215546Sopenharmony_cistatic inline void
1971bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *val)
1972bf215546Sopenharmony_ci{
1973bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES);
1974bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES });
1975bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_pnext_partial(enc, val->pNext);
1976bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial(enc, val);
1977bf215546Sopenharmony_ci}
1978bf215546Sopenharmony_ci
1979bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSamplerYcbcrConversionFeatures chain */
1980bf215546Sopenharmony_ci
1981bf215546Sopenharmony_cistatic inline size_t
1982bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(const void *val)
1983bf215546Sopenharmony_ci{
1984bf215546Sopenharmony_ci    /* no known/supported struct */
1985bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
1986bf215546Sopenharmony_ci}
1987bf215546Sopenharmony_ci
1988bf215546Sopenharmony_cistatic inline size_t
1989bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1990bf215546Sopenharmony_ci{
1991bf215546Sopenharmony_ci    size_t size = 0;
1992bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
1993bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->samplerYcbcrConversion);
1994bf215546Sopenharmony_ci    return size;
1995bf215546Sopenharmony_ci}
1996bf215546Sopenharmony_ci
1997bf215546Sopenharmony_cistatic inline size_t
1998bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
1999bf215546Sopenharmony_ci{
2000bf215546Sopenharmony_ci    size_t size = 0;
2001bf215546Sopenharmony_ci
2002bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2003bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(val->pNext);
2004bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(val);
2005bf215546Sopenharmony_ci
2006bf215546Sopenharmony_ci    return size;
2007bf215546Sopenharmony_ci}
2008bf215546Sopenharmony_ci
2009bf215546Sopenharmony_cistatic inline void
2010bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2011bf215546Sopenharmony_ci{
2012bf215546Sopenharmony_ci    /* no known/supported struct */
2013bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2014bf215546Sopenharmony_ci}
2015bf215546Sopenharmony_ci
2016bf215546Sopenharmony_cistatic inline void
2017bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2018bf215546Sopenharmony_ci{
2019bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2020bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->samplerYcbcrConversion);
2021bf215546Sopenharmony_ci}
2022bf215546Sopenharmony_ci
2023bf215546Sopenharmony_cistatic inline void
2024bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2025bf215546Sopenharmony_ci{
2026bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES);
2027bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES });
2028bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(enc, val->pNext);
2029bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(enc, val);
2030bf215546Sopenharmony_ci}
2031bf215546Sopenharmony_ci
2032bf215546Sopenharmony_cistatic inline void
2033bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2034bf215546Sopenharmony_ci{
2035bf215546Sopenharmony_ci    /* no known/supported struct */
2036bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2037bf215546Sopenharmony_ci        assert(false);
2038bf215546Sopenharmony_ci}
2039bf215546Sopenharmony_ci
2040bf215546Sopenharmony_cistatic inline void
2041bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2042bf215546Sopenharmony_ci{
2043bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2044bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->samplerYcbcrConversion);
2045bf215546Sopenharmony_ci}
2046bf215546Sopenharmony_ci
2047bf215546Sopenharmony_cistatic inline void
2048bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2049bf215546Sopenharmony_ci{
2050bf215546Sopenharmony_ci    VkStructureType stype;
2051bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2052bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES);
2053bf215546Sopenharmony_ci
2054bf215546Sopenharmony_ci    assert(val->sType == stype);
2055bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext(dec, val->pNext);
2056bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(dec, val);
2057bf215546Sopenharmony_ci}
2058bf215546Sopenharmony_ci
2059bf215546Sopenharmony_cistatic inline size_t
2060bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial(const void *val)
2061bf215546Sopenharmony_ci{
2062bf215546Sopenharmony_ci    /* no known/supported struct */
2063bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2064bf215546Sopenharmony_ci}
2065bf215546Sopenharmony_ci
2066bf215546Sopenharmony_cistatic inline size_t
2067bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial(const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2068bf215546Sopenharmony_ci{
2069bf215546Sopenharmony_ci    size_t size = 0;
2070bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2071bf215546Sopenharmony_ci    /* skip val->samplerYcbcrConversion */
2072bf215546Sopenharmony_ci    return size;
2073bf215546Sopenharmony_ci}
2074bf215546Sopenharmony_ci
2075bf215546Sopenharmony_cistatic inline size_t
2076bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_partial(const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2077bf215546Sopenharmony_ci{
2078bf215546Sopenharmony_ci    size_t size = 0;
2079bf215546Sopenharmony_ci
2080bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2081bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial(val->pNext);
2082bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial(val);
2083bf215546Sopenharmony_ci
2084bf215546Sopenharmony_ci    return size;
2085bf215546Sopenharmony_ci}
2086bf215546Sopenharmony_ci
2087bf215546Sopenharmony_cistatic inline void
2088bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2089bf215546Sopenharmony_ci{
2090bf215546Sopenharmony_ci    /* no known/supported struct */
2091bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2092bf215546Sopenharmony_ci}
2093bf215546Sopenharmony_ci
2094bf215546Sopenharmony_cistatic inline void
2095bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2096bf215546Sopenharmony_ci{
2097bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2098bf215546Sopenharmony_ci    /* skip val->samplerYcbcrConversion */
2099bf215546Sopenharmony_ci}
2100bf215546Sopenharmony_ci
2101bf215546Sopenharmony_cistatic inline void
2102bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerYcbcrConversionFeatures *val)
2103bf215546Sopenharmony_ci{
2104bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES);
2105bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES });
2106bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_pnext_partial(enc, val->pNext);
2107bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial(enc, val);
2108bf215546Sopenharmony_ci}
2109bf215546Sopenharmony_ci
2110bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProtectedMemoryFeatures chain */
2111bf215546Sopenharmony_ci
2112bf215546Sopenharmony_cistatic inline size_t
2113bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_pnext(const void *val)
2114bf215546Sopenharmony_ci{
2115bf215546Sopenharmony_ci    /* no known/supported struct */
2116bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2117bf215546Sopenharmony_ci}
2118bf215546Sopenharmony_ci
2119bf215546Sopenharmony_cistatic inline size_t
2120bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self(const VkPhysicalDeviceProtectedMemoryFeatures *val)
2121bf215546Sopenharmony_ci{
2122bf215546Sopenharmony_ci    size_t size = 0;
2123bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2124bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->protectedMemory);
2125bf215546Sopenharmony_ci    return size;
2126bf215546Sopenharmony_ci}
2127bf215546Sopenharmony_ci
2128bf215546Sopenharmony_cistatic inline size_t
2129bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures(const VkPhysicalDeviceProtectedMemoryFeatures *val)
2130bf215546Sopenharmony_ci{
2131bf215546Sopenharmony_ci    size_t size = 0;
2132bf215546Sopenharmony_ci
2133bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2134bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_pnext(val->pNext);
2135bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self(val);
2136bf215546Sopenharmony_ci
2137bf215546Sopenharmony_ci    return size;
2138bf215546Sopenharmony_ci}
2139bf215546Sopenharmony_ci
2140bf215546Sopenharmony_cistatic inline void
2141bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2142bf215546Sopenharmony_ci{
2143bf215546Sopenharmony_ci    /* no known/supported struct */
2144bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2145bf215546Sopenharmony_ci}
2146bf215546Sopenharmony_ci
2147bf215546Sopenharmony_cistatic inline void
2148bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
2149bf215546Sopenharmony_ci{
2150bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2151bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->protectedMemory);
2152bf215546Sopenharmony_ci}
2153bf215546Sopenharmony_ci
2154bf215546Sopenharmony_cistatic inline void
2155bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
2156bf215546Sopenharmony_ci{
2157bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES);
2158bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES });
2159bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(enc, val->pNext);
2160bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, val);
2161bf215546Sopenharmony_ci}
2162bf215546Sopenharmony_ci
2163bf215546Sopenharmony_cistatic inline void
2164bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2165bf215546Sopenharmony_ci{
2166bf215546Sopenharmony_ci    /* no known/supported struct */
2167bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2168bf215546Sopenharmony_ci        assert(false);
2169bf215546Sopenharmony_ci}
2170bf215546Sopenharmony_ci
2171bf215546Sopenharmony_cistatic inline void
2172bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
2173bf215546Sopenharmony_ci{
2174bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2175bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->protectedMemory);
2176bf215546Sopenharmony_ci}
2177bf215546Sopenharmony_ci
2178bf215546Sopenharmony_cistatic inline void
2179bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryFeatures *val)
2180bf215546Sopenharmony_ci{
2181bf215546Sopenharmony_ci    VkStructureType stype;
2182bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2183bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES);
2184bf215546Sopenharmony_ci
2185bf215546Sopenharmony_ci    assert(val->sType == stype);
2186bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_pnext(dec, val->pNext);
2187bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self(dec, val);
2188bf215546Sopenharmony_ci}
2189bf215546Sopenharmony_ci
2190bf215546Sopenharmony_cistatic inline size_t
2191bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial(const void *val)
2192bf215546Sopenharmony_ci{
2193bf215546Sopenharmony_ci    /* no known/supported struct */
2194bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2195bf215546Sopenharmony_ci}
2196bf215546Sopenharmony_ci
2197bf215546Sopenharmony_cistatic inline size_t
2198bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self_partial(const VkPhysicalDeviceProtectedMemoryFeatures *val)
2199bf215546Sopenharmony_ci{
2200bf215546Sopenharmony_ci    size_t size = 0;
2201bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2202bf215546Sopenharmony_ci    /* skip val->protectedMemory */
2203bf215546Sopenharmony_ci    return size;
2204bf215546Sopenharmony_ci}
2205bf215546Sopenharmony_ci
2206bf215546Sopenharmony_cistatic inline size_t
2207bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_partial(const VkPhysicalDeviceProtectedMemoryFeatures *val)
2208bf215546Sopenharmony_ci{
2209bf215546Sopenharmony_ci    size_t size = 0;
2210bf215546Sopenharmony_ci
2211bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2212bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial(val->pNext);
2213bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self_partial(val);
2214bf215546Sopenharmony_ci
2215bf215546Sopenharmony_ci    return size;
2216bf215546Sopenharmony_ci}
2217bf215546Sopenharmony_ci
2218bf215546Sopenharmony_cistatic inline void
2219bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2220bf215546Sopenharmony_ci{
2221bf215546Sopenharmony_ci    /* no known/supported struct */
2222bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2223bf215546Sopenharmony_ci}
2224bf215546Sopenharmony_ci
2225bf215546Sopenharmony_cistatic inline void
2226bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
2227bf215546Sopenharmony_ci{
2228bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2229bf215546Sopenharmony_ci    /* skip val->protectedMemory */
2230bf215546Sopenharmony_ci}
2231bf215546Sopenharmony_ci
2232bf215546Sopenharmony_cistatic inline void
2233bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryFeatures *val)
2234bf215546Sopenharmony_ci{
2235bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES);
2236bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES });
2237bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_pnext_partial(enc, val->pNext);
2238bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial(enc, val);
2239bf215546Sopenharmony_ci}
2240bf215546Sopenharmony_ci
2241bf215546Sopenharmony_ci/* struct VkPhysicalDeviceInlineUniformBlockFeatures chain */
2242bf215546Sopenharmony_ci
2243bf215546Sopenharmony_cistatic inline size_t
2244bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(const void *val)
2245bf215546Sopenharmony_ci{
2246bf215546Sopenharmony_ci    /* no known/supported struct */
2247bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2248bf215546Sopenharmony_ci}
2249bf215546Sopenharmony_ci
2250bf215546Sopenharmony_cistatic inline size_t
2251bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self(const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2252bf215546Sopenharmony_ci{
2253bf215546Sopenharmony_ci    size_t size = 0;
2254bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2255bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->inlineUniformBlock);
2256bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingInlineUniformBlockUpdateAfterBind);
2257bf215546Sopenharmony_ci    return size;
2258bf215546Sopenharmony_ci}
2259bf215546Sopenharmony_ci
2260bf215546Sopenharmony_cistatic inline size_t
2261bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures(const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2262bf215546Sopenharmony_ci{
2263bf215546Sopenharmony_ci    size_t size = 0;
2264bf215546Sopenharmony_ci
2265bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2266bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(val->pNext);
2267bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self(val);
2268bf215546Sopenharmony_ci
2269bf215546Sopenharmony_ci    return size;
2270bf215546Sopenharmony_ci}
2271bf215546Sopenharmony_ci
2272bf215546Sopenharmony_cistatic inline void
2273bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2274bf215546Sopenharmony_ci{
2275bf215546Sopenharmony_ci    /* no known/supported struct */
2276bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2277bf215546Sopenharmony_ci}
2278bf215546Sopenharmony_ci
2279bf215546Sopenharmony_cistatic inline void
2280bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2281bf215546Sopenharmony_ci{
2282bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2283bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->inlineUniformBlock);
2284bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
2285bf215546Sopenharmony_ci}
2286bf215546Sopenharmony_ci
2287bf215546Sopenharmony_cistatic inline void
2288bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2289bf215546Sopenharmony_ci{
2290bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES);
2291bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES });
2292bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(enc, val->pNext);
2293bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, val);
2294bf215546Sopenharmony_ci}
2295bf215546Sopenharmony_ci
2296bf215546Sopenharmony_cistatic inline void
2297bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2298bf215546Sopenharmony_ci{
2299bf215546Sopenharmony_ci    /* no known/supported struct */
2300bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2301bf215546Sopenharmony_ci        assert(false);
2302bf215546Sopenharmony_ci}
2303bf215546Sopenharmony_ci
2304bf215546Sopenharmony_cistatic inline void
2305bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
2306bf215546Sopenharmony_ci{
2307bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2308bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->inlineUniformBlock);
2309bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
2310bf215546Sopenharmony_ci}
2311bf215546Sopenharmony_ci
2312bf215546Sopenharmony_cistatic inline void
2313bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val)
2314bf215546Sopenharmony_ci{
2315bf215546Sopenharmony_ci    VkStructureType stype;
2316bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2317bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES);
2318bf215546Sopenharmony_ci
2319bf215546Sopenharmony_ci    assert(val->sType == stype);
2320bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(dec, val->pNext);
2321bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self(dec, val);
2322bf215546Sopenharmony_ci}
2323bf215546Sopenharmony_ci
2324bf215546Sopenharmony_cistatic inline size_t
2325bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial(const void *val)
2326bf215546Sopenharmony_ci{
2327bf215546Sopenharmony_ci    /* no known/supported struct */
2328bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2329bf215546Sopenharmony_ci}
2330bf215546Sopenharmony_ci
2331bf215546Sopenharmony_cistatic inline size_t
2332bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial(const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2333bf215546Sopenharmony_ci{
2334bf215546Sopenharmony_ci    size_t size = 0;
2335bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2336bf215546Sopenharmony_ci    /* skip val->inlineUniformBlock */
2337bf215546Sopenharmony_ci    /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
2338bf215546Sopenharmony_ci    return size;
2339bf215546Sopenharmony_ci}
2340bf215546Sopenharmony_ci
2341bf215546Sopenharmony_cistatic inline size_t
2342bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_partial(const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2343bf215546Sopenharmony_ci{
2344bf215546Sopenharmony_ci    size_t size = 0;
2345bf215546Sopenharmony_ci
2346bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2347bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial(val->pNext);
2348bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial(val);
2349bf215546Sopenharmony_ci
2350bf215546Sopenharmony_ci    return size;
2351bf215546Sopenharmony_ci}
2352bf215546Sopenharmony_ci
2353bf215546Sopenharmony_cistatic inline void
2354bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2355bf215546Sopenharmony_ci{
2356bf215546Sopenharmony_ci    /* no known/supported struct */
2357bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2358bf215546Sopenharmony_ci}
2359bf215546Sopenharmony_ci
2360bf215546Sopenharmony_cistatic inline void
2361bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2362bf215546Sopenharmony_ci{
2363bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2364bf215546Sopenharmony_ci    /* skip val->inlineUniformBlock */
2365bf215546Sopenharmony_ci    /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
2366bf215546Sopenharmony_ci}
2367bf215546Sopenharmony_ci
2368bf215546Sopenharmony_cistatic inline void
2369bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val)
2370bf215546Sopenharmony_ci{
2371bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES);
2372bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES });
2373bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial(enc, val->pNext);
2374bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial(enc, val);
2375bf215546Sopenharmony_ci}
2376bf215546Sopenharmony_ci
2377bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMaintenance4Features chain */
2378bf215546Sopenharmony_ci
2379bf215546Sopenharmony_cistatic inline size_t
2380bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features_pnext(const void *val)
2381bf215546Sopenharmony_ci{
2382bf215546Sopenharmony_ci    /* no known/supported struct */
2383bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2384bf215546Sopenharmony_ci}
2385bf215546Sopenharmony_ci
2386bf215546Sopenharmony_cistatic inline size_t
2387bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features_self(const VkPhysicalDeviceMaintenance4Features *val)
2388bf215546Sopenharmony_ci{
2389bf215546Sopenharmony_ci    size_t size = 0;
2390bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2391bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->maintenance4);
2392bf215546Sopenharmony_ci    return size;
2393bf215546Sopenharmony_ci}
2394bf215546Sopenharmony_ci
2395bf215546Sopenharmony_cistatic inline size_t
2396bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features(const VkPhysicalDeviceMaintenance4Features *val)
2397bf215546Sopenharmony_ci{
2398bf215546Sopenharmony_ci    size_t size = 0;
2399bf215546Sopenharmony_ci
2400bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2401bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_pnext(val->pNext);
2402bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_self(val);
2403bf215546Sopenharmony_ci
2404bf215546Sopenharmony_ci    return size;
2405bf215546Sopenharmony_ci}
2406bf215546Sopenharmony_ci
2407bf215546Sopenharmony_cistatic inline void
2408bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features_pnext(struct vn_cs_encoder *enc, const void *val)
2409bf215546Sopenharmony_ci{
2410bf215546Sopenharmony_ci    /* no known/supported struct */
2411bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2412bf215546Sopenharmony_ci}
2413bf215546Sopenharmony_ci
2414bf215546Sopenharmony_cistatic inline void
2415bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
2416bf215546Sopenharmony_ci{
2417bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2418bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->maintenance4);
2419bf215546Sopenharmony_ci}
2420bf215546Sopenharmony_ci
2421bf215546Sopenharmony_cistatic inline void
2422bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
2423bf215546Sopenharmony_ci{
2424bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES);
2425bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES });
2426bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(enc, val->pNext);
2427bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, val);
2428bf215546Sopenharmony_ci}
2429bf215546Sopenharmony_ci
2430bf215546Sopenharmony_cistatic inline void
2431bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Features_pnext(struct vn_cs_decoder *dec, const void *val)
2432bf215546Sopenharmony_ci{
2433bf215546Sopenharmony_ci    /* no known/supported struct */
2434bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2435bf215546Sopenharmony_ci        assert(false);
2436bf215546Sopenharmony_ci}
2437bf215546Sopenharmony_ci
2438bf215546Sopenharmony_cistatic inline void
2439bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
2440bf215546Sopenharmony_ci{
2441bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2442bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->maintenance4);
2443bf215546Sopenharmony_ci}
2444bf215546Sopenharmony_ci
2445bf215546Sopenharmony_cistatic inline void
2446bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Features(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val)
2447bf215546Sopenharmony_ci{
2448bf215546Sopenharmony_ci    VkStructureType stype;
2449bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2450bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES);
2451bf215546Sopenharmony_ci
2452bf215546Sopenharmony_ci    assert(val->sType == stype);
2453bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance4Features_pnext(dec, val->pNext);
2454bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance4Features_self(dec, val);
2455bf215546Sopenharmony_ci}
2456bf215546Sopenharmony_ci
2457bf215546Sopenharmony_cistatic inline size_t
2458bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features_pnext_partial(const void *val)
2459bf215546Sopenharmony_ci{
2460bf215546Sopenharmony_ci    /* no known/supported struct */
2461bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2462bf215546Sopenharmony_ci}
2463bf215546Sopenharmony_ci
2464bf215546Sopenharmony_cistatic inline size_t
2465bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features_self_partial(const VkPhysicalDeviceMaintenance4Features *val)
2466bf215546Sopenharmony_ci{
2467bf215546Sopenharmony_ci    size_t size = 0;
2468bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2469bf215546Sopenharmony_ci    /* skip val->maintenance4 */
2470bf215546Sopenharmony_ci    return size;
2471bf215546Sopenharmony_ci}
2472bf215546Sopenharmony_ci
2473bf215546Sopenharmony_cistatic inline size_t
2474bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Features_partial(const VkPhysicalDeviceMaintenance4Features *val)
2475bf215546Sopenharmony_ci{
2476bf215546Sopenharmony_ci    size_t size = 0;
2477bf215546Sopenharmony_ci
2478bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2479bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_pnext_partial(val->pNext);
2480bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_self_partial(val);
2481bf215546Sopenharmony_ci
2482bf215546Sopenharmony_ci    return size;
2483bf215546Sopenharmony_ci}
2484bf215546Sopenharmony_ci
2485bf215546Sopenharmony_cistatic inline void
2486bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2487bf215546Sopenharmony_ci{
2488bf215546Sopenharmony_ci    /* no known/supported struct */
2489bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2490bf215546Sopenharmony_ci}
2491bf215546Sopenharmony_ci
2492bf215546Sopenharmony_cistatic inline void
2493bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
2494bf215546Sopenharmony_ci{
2495bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2496bf215546Sopenharmony_ci    /* skip val->maintenance4 */
2497bf215546Sopenharmony_ci}
2498bf215546Sopenharmony_ci
2499bf215546Sopenharmony_cistatic inline void
2500bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val)
2501bf215546Sopenharmony_ci{
2502bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES);
2503bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES });
2504bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Features_pnext_partial(enc, val->pNext);
2505bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Features_self_partial(enc, val);
2506bf215546Sopenharmony_ci}
2507bf215546Sopenharmony_ci
2508bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderDrawParametersFeatures chain */
2509bf215546Sopenharmony_ci
2510bf215546Sopenharmony_cistatic inline size_t
2511bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(const void *val)
2512bf215546Sopenharmony_ci{
2513bf215546Sopenharmony_ci    /* no known/supported struct */
2514bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2515bf215546Sopenharmony_ci}
2516bf215546Sopenharmony_ci
2517bf215546Sopenharmony_cistatic inline size_t
2518bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self(const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2519bf215546Sopenharmony_ci{
2520bf215546Sopenharmony_ci    size_t size = 0;
2521bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2522bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDrawParameters);
2523bf215546Sopenharmony_ci    return size;
2524bf215546Sopenharmony_ci}
2525bf215546Sopenharmony_ci
2526bf215546Sopenharmony_cistatic inline size_t
2527bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures(const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2528bf215546Sopenharmony_ci{
2529bf215546Sopenharmony_ci    size_t size = 0;
2530bf215546Sopenharmony_ci
2531bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2532bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(val->pNext);
2533bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self(val);
2534bf215546Sopenharmony_ci
2535bf215546Sopenharmony_ci    return size;
2536bf215546Sopenharmony_ci}
2537bf215546Sopenharmony_ci
2538bf215546Sopenharmony_cistatic inline void
2539bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2540bf215546Sopenharmony_ci{
2541bf215546Sopenharmony_ci    /* no known/supported struct */
2542bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2543bf215546Sopenharmony_ci}
2544bf215546Sopenharmony_ci
2545bf215546Sopenharmony_cistatic inline void
2546bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2547bf215546Sopenharmony_ci{
2548bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2549bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderDrawParameters);
2550bf215546Sopenharmony_ci}
2551bf215546Sopenharmony_ci
2552bf215546Sopenharmony_cistatic inline void
2553bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2554bf215546Sopenharmony_ci{
2555bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES);
2556bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES });
2557bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(enc, val->pNext);
2558bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, val);
2559bf215546Sopenharmony_ci}
2560bf215546Sopenharmony_ci
2561bf215546Sopenharmony_cistatic inline void
2562bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2563bf215546Sopenharmony_ci{
2564bf215546Sopenharmony_ci    /* no known/supported struct */
2565bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2566bf215546Sopenharmony_ci        assert(false);
2567bf215546Sopenharmony_ci}
2568bf215546Sopenharmony_ci
2569bf215546Sopenharmony_cistatic inline void
2570bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
2571bf215546Sopenharmony_ci{
2572bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2573bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDrawParameters);
2574bf215546Sopenharmony_ci}
2575bf215546Sopenharmony_ci
2576bf215546Sopenharmony_cistatic inline void
2577bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val)
2578bf215546Sopenharmony_ci{
2579bf215546Sopenharmony_ci    VkStructureType stype;
2580bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2581bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES);
2582bf215546Sopenharmony_ci
2583bf215546Sopenharmony_ci    assert(val->sType == stype);
2584bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(dec, val->pNext);
2585bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self(dec, val);
2586bf215546Sopenharmony_ci}
2587bf215546Sopenharmony_ci
2588bf215546Sopenharmony_cistatic inline size_t
2589bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial(const void *val)
2590bf215546Sopenharmony_ci{
2591bf215546Sopenharmony_ci    /* no known/supported struct */
2592bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2593bf215546Sopenharmony_ci}
2594bf215546Sopenharmony_ci
2595bf215546Sopenharmony_cistatic inline size_t
2596bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial(const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2597bf215546Sopenharmony_ci{
2598bf215546Sopenharmony_ci    size_t size = 0;
2599bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2600bf215546Sopenharmony_ci    /* skip val->shaderDrawParameters */
2601bf215546Sopenharmony_ci    return size;
2602bf215546Sopenharmony_ci}
2603bf215546Sopenharmony_ci
2604bf215546Sopenharmony_cistatic inline size_t
2605bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_partial(const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2606bf215546Sopenharmony_ci{
2607bf215546Sopenharmony_ci    size_t size = 0;
2608bf215546Sopenharmony_ci
2609bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2610bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial(val->pNext);
2611bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial(val);
2612bf215546Sopenharmony_ci
2613bf215546Sopenharmony_ci    return size;
2614bf215546Sopenharmony_ci}
2615bf215546Sopenharmony_ci
2616bf215546Sopenharmony_cistatic inline void
2617bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2618bf215546Sopenharmony_ci{
2619bf215546Sopenharmony_ci    /* no known/supported struct */
2620bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2621bf215546Sopenharmony_ci}
2622bf215546Sopenharmony_ci
2623bf215546Sopenharmony_cistatic inline void
2624bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2625bf215546Sopenharmony_ci{
2626bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2627bf215546Sopenharmony_ci    /* skip val->shaderDrawParameters */
2628bf215546Sopenharmony_ci}
2629bf215546Sopenharmony_ci
2630bf215546Sopenharmony_cistatic inline void
2631bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val)
2632bf215546Sopenharmony_ci{
2633bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES);
2634bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES });
2635bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial(enc, val->pNext);
2636bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial(enc, val);
2637bf215546Sopenharmony_ci}
2638bf215546Sopenharmony_ci
2639bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderFloat16Int8Features chain */
2640bf215546Sopenharmony_ci
2641bf215546Sopenharmony_cistatic inline size_t
2642bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_pnext(const void *val)
2643bf215546Sopenharmony_ci{
2644bf215546Sopenharmony_ci    /* no known/supported struct */
2645bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2646bf215546Sopenharmony_ci}
2647bf215546Sopenharmony_ci
2648bf215546Sopenharmony_cistatic inline size_t
2649bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self(const VkPhysicalDeviceShaderFloat16Int8Features *val)
2650bf215546Sopenharmony_ci{
2651bf215546Sopenharmony_ci    size_t size = 0;
2652bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2653bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderFloat16);
2654bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInt8);
2655bf215546Sopenharmony_ci    return size;
2656bf215546Sopenharmony_ci}
2657bf215546Sopenharmony_ci
2658bf215546Sopenharmony_cistatic inline size_t
2659bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features(const VkPhysicalDeviceShaderFloat16Int8Features *val)
2660bf215546Sopenharmony_ci{
2661bf215546Sopenharmony_ci    size_t size = 0;
2662bf215546Sopenharmony_ci
2663bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2664bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_pnext(val->pNext);
2665bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self(val);
2666bf215546Sopenharmony_ci
2667bf215546Sopenharmony_ci    return size;
2668bf215546Sopenharmony_ci}
2669bf215546Sopenharmony_ci
2670bf215546Sopenharmony_cistatic inline void
2671bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_encoder *enc, const void *val)
2672bf215546Sopenharmony_ci{
2673bf215546Sopenharmony_ci    /* no known/supported struct */
2674bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2675bf215546Sopenharmony_ci}
2676bf215546Sopenharmony_ci
2677bf215546Sopenharmony_cistatic inline void
2678bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2679bf215546Sopenharmony_ci{
2680bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2681bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderFloat16);
2682bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInt8);
2683bf215546Sopenharmony_ci}
2684bf215546Sopenharmony_ci
2685bf215546Sopenharmony_cistatic inline void
2686bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2687bf215546Sopenharmony_ci{
2688bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES);
2689bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES });
2690bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(enc, val->pNext);
2691bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, val);
2692bf215546Sopenharmony_ci}
2693bf215546Sopenharmony_ci
2694bf215546Sopenharmony_cistatic inline void
2695bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_decoder *dec, const void *val)
2696bf215546Sopenharmony_ci{
2697bf215546Sopenharmony_ci    /* no known/supported struct */
2698bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2699bf215546Sopenharmony_ci        assert(false);
2700bf215546Sopenharmony_ci}
2701bf215546Sopenharmony_ci
2702bf215546Sopenharmony_cistatic inline void
2703bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2704bf215546Sopenharmony_ci{
2705bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2706bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderFloat16);
2707bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInt8);
2708bf215546Sopenharmony_ci}
2709bf215546Sopenharmony_ci
2710bf215546Sopenharmony_cistatic inline void
2711bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val)
2712bf215546Sopenharmony_ci{
2713bf215546Sopenharmony_ci    VkStructureType stype;
2714bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2715bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES);
2716bf215546Sopenharmony_ci
2717bf215546Sopenharmony_ci    assert(val->sType == stype);
2718bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(dec, val->pNext);
2719bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self(dec, val);
2720bf215546Sopenharmony_ci}
2721bf215546Sopenharmony_ci
2722bf215546Sopenharmony_cistatic inline size_t
2723bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial(const void *val)
2724bf215546Sopenharmony_ci{
2725bf215546Sopenharmony_ci    /* no known/supported struct */
2726bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2727bf215546Sopenharmony_ci}
2728bf215546Sopenharmony_ci
2729bf215546Sopenharmony_cistatic inline size_t
2730bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self_partial(const VkPhysicalDeviceShaderFloat16Int8Features *val)
2731bf215546Sopenharmony_ci{
2732bf215546Sopenharmony_ci    size_t size = 0;
2733bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2734bf215546Sopenharmony_ci    /* skip val->shaderFloat16 */
2735bf215546Sopenharmony_ci    /* skip val->shaderInt8 */
2736bf215546Sopenharmony_ci    return size;
2737bf215546Sopenharmony_ci}
2738bf215546Sopenharmony_ci
2739bf215546Sopenharmony_cistatic inline size_t
2740bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_partial(const VkPhysicalDeviceShaderFloat16Int8Features *val)
2741bf215546Sopenharmony_ci{
2742bf215546Sopenharmony_ci    size_t size = 0;
2743bf215546Sopenharmony_ci
2744bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2745bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial(val->pNext);
2746bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self_partial(val);
2747bf215546Sopenharmony_ci
2748bf215546Sopenharmony_ci    return size;
2749bf215546Sopenharmony_ci}
2750bf215546Sopenharmony_ci
2751bf215546Sopenharmony_cistatic inline void
2752bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2753bf215546Sopenharmony_ci{
2754bf215546Sopenharmony_ci    /* no known/supported struct */
2755bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2756bf215546Sopenharmony_ci}
2757bf215546Sopenharmony_ci
2758bf215546Sopenharmony_cistatic inline void
2759bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2760bf215546Sopenharmony_ci{
2761bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2762bf215546Sopenharmony_ci    /* skip val->shaderFloat16 */
2763bf215546Sopenharmony_ci    /* skip val->shaderInt8 */
2764bf215546Sopenharmony_ci}
2765bf215546Sopenharmony_ci
2766bf215546Sopenharmony_cistatic inline void
2767bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderFloat16Int8Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val)
2768bf215546Sopenharmony_ci{
2769bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES);
2770bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES });
2771bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial(enc, val->pNext);
2772bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial(enc, val);
2773bf215546Sopenharmony_ci}
2774bf215546Sopenharmony_ci
2775bf215546Sopenharmony_ci/* struct VkPhysicalDeviceHostQueryResetFeatures chain */
2776bf215546Sopenharmony_ci
2777bf215546Sopenharmony_cistatic inline size_t
2778bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_pnext(const void *val)
2779bf215546Sopenharmony_ci{
2780bf215546Sopenharmony_ci    /* no known/supported struct */
2781bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2782bf215546Sopenharmony_ci}
2783bf215546Sopenharmony_ci
2784bf215546Sopenharmony_cistatic inline size_t
2785bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self(const VkPhysicalDeviceHostQueryResetFeatures *val)
2786bf215546Sopenharmony_ci{
2787bf215546Sopenharmony_ci    size_t size = 0;
2788bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2789bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->hostQueryReset);
2790bf215546Sopenharmony_ci    return size;
2791bf215546Sopenharmony_ci}
2792bf215546Sopenharmony_ci
2793bf215546Sopenharmony_cistatic inline size_t
2794bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures(const VkPhysicalDeviceHostQueryResetFeatures *val)
2795bf215546Sopenharmony_ci{
2796bf215546Sopenharmony_ci    size_t size = 0;
2797bf215546Sopenharmony_ci
2798bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2799bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_pnext(val->pNext);
2800bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self(val);
2801bf215546Sopenharmony_ci
2802bf215546Sopenharmony_ci    return size;
2803bf215546Sopenharmony_ci}
2804bf215546Sopenharmony_ci
2805bf215546Sopenharmony_cistatic inline void
2806bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2807bf215546Sopenharmony_ci{
2808bf215546Sopenharmony_ci    /* no known/supported struct */
2809bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2810bf215546Sopenharmony_ci}
2811bf215546Sopenharmony_ci
2812bf215546Sopenharmony_cistatic inline void
2813bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2814bf215546Sopenharmony_ci{
2815bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2816bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->hostQueryReset);
2817bf215546Sopenharmony_ci}
2818bf215546Sopenharmony_ci
2819bf215546Sopenharmony_cistatic inline void
2820bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2821bf215546Sopenharmony_ci{
2822bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES);
2823bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES });
2824bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(enc, val->pNext);
2825bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, val);
2826bf215546Sopenharmony_ci}
2827bf215546Sopenharmony_ci
2828bf215546Sopenharmony_cistatic inline void
2829bf215546Sopenharmony_civn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2830bf215546Sopenharmony_ci{
2831bf215546Sopenharmony_ci    /* no known/supported struct */
2832bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
2833bf215546Sopenharmony_ci        assert(false);
2834bf215546Sopenharmony_ci}
2835bf215546Sopenharmony_ci
2836bf215546Sopenharmony_cistatic inline void
2837bf215546Sopenharmony_civn_decode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2838bf215546Sopenharmony_ci{
2839bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2840bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->hostQueryReset);
2841bf215546Sopenharmony_ci}
2842bf215546Sopenharmony_ci
2843bf215546Sopenharmony_cistatic inline void
2844bf215546Sopenharmony_civn_decode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val)
2845bf215546Sopenharmony_ci{
2846bf215546Sopenharmony_ci    VkStructureType stype;
2847bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
2848bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES);
2849bf215546Sopenharmony_ci
2850bf215546Sopenharmony_ci    assert(val->sType == stype);
2851bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext(dec, val->pNext);
2852bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self(dec, val);
2853bf215546Sopenharmony_ci}
2854bf215546Sopenharmony_ci
2855bf215546Sopenharmony_cistatic inline size_t
2856bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial(const void *val)
2857bf215546Sopenharmony_ci{
2858bf215546Sopenharmony_ci    /* no known/supported struct */
2859bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2860bf215546Sopenharmony_ci}
2861bf215546Sopenharmony_ci
2862bf215546Sopenharmony_cistatic inline size_t
2863bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self_partial(const VkPhysicalDeviceHostQueryResetFeatures *val)
2864bf215546Sopenharmony_ci{
2865bf215546Sopenharmony_ci    size_t size = 0;
2866bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2867bf215546Sopenharmony_ci    /* skip val->hostQueryReset */
2868bf215546Sopenharmony_ci    return size;
2869bf215546Sopenharmony_ci}
2870bf215546Sopenharmony_ci
2871bf215546Sopenharmony_cistatic inline size_t
2872bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_partial(const VkPhysicalDeviceHostQueryResetFeatures *val)
2873bf215546Sopenharmony_ci{
2874bf215546Sopenharmony_ci    size_t size = 0;
2875bf215546Sopenharmony_ci
2876bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2877bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial(val->pNext);
2878bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self_partial(val);
2879bf215546Sopenharmony_ci
2880bf215546Sopenharmony_ci    return size;
2881bf215546Sopenharmony_ci}
2882bf215546Sopenharmony_ci
2883bf215546Sopenharmony_cistatic inline void
2884bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
2885bf215546Sopenharmony_ci{
2886bf215546Sopenharmony_ci    /* no known/supported struct */
2887bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2888bf215546Sopenharmony_ci}
2889bf215546Sopenharmony_ci
2890bf215546Sopenharmony_cistatic inline void
2891bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2892bf215546Sopenharmony_ci{
2893bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2894bf215546Sopenharmony_ci    /* skip val->hostQueryReset */
2895bf215546Sopenharmony_ci}
2896bf215546Sopenharmony_ci
2897bf215546Sopenharmony_cistatic inline void
2898bf215546Sopenharmony_civn_encode_VkPhysicalDeviceHostQueryResetFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val)
2899bf215546Sopenharmony_ci{
2900bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES);
2901bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES });
2902bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial(enc, val->pNext);
2903bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self_partial(enc, val);
2904bf215546Sopenharmony_ci}
2905bf215546Sopenharmony_ci
2906bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDescriptorIndexingFeatures chain */
2907bf215546Sopenharmony_ci
2908bf215546Sopenharmony_cistatic inline size_t
2909bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(const void *val)
2910bf215546Sopenharmony_ci{
2911bf215546Sopenharmony_ci    /* no known/supported struct */
2912bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
2913bf215546Sopenharmony_ci}
2914bf215546Sopenharmony_ci
2915bf215546Sopenharmony_cistatic inline size_t
2916bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self(const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2917bf215546Sopenharmony_ci{
2918bf215546Sopenharmony_ci    size_t size = 0;
2919bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2920bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayDynamicIndexing);
2921bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformTexelBufferArrayDynamicIndexing);
2922bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageTexelBufferArrayDynamicIndexing);
2923bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformBufferArrayNonUniformIndexing);
2924bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSampledImageArrayNonUniformIndexing);
2925bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageBufferArrayNonUniformIndexing);
2926bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageArrayNonUniformIndexing);
2927bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayNonUniformIndexing);
2928bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformTexelBufferArrayNonUniformIndexing);
2929bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageTexelBufferArrayNonUniformIndexing);
2930bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUniformBufferUpdateAfterBind);
2931bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingSampledImageUpdateAfterBind);
2932bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageImageUpdateAfterBind);
2933bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageBufferUpdateAfterBind);
2934bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUniformTexelBufferUpdateAfterBind);
2935bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageTexelBufferUpdateAfterBind);
2936bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUpdateUnusedWhilePending);
2937bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingPartiallyBound);
2938bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingVariableDescriptorCount);
2939bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->runtimeDescriptorArray);
2940bf215546Sopenharmony_ci    return size;
2941bf215546Sopenharmony_ci}
2942bf215546Sopenharmony_ci
2943bf215546Sopenharmony_cistatic inline size_t
2944bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures(const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2945bf215546Sopenharmony_ci{
2946bf215546Sopenharmony_ci    size_t size = 0;
2947bf215546Sopenharmony_ci
2948bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
2949bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(val->pNext);
2950bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self(val);
2951bf215546Sopenharmony_ci
2952bf215546Sopenharmony_ci    return size;
2953bf215546Sopenharmony_ci}
2954bf215546Sopenharmony_ci
2955bf215546Sopenharmony_cistatic inline void
2956bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
2957bf215546Sopenharmony_ci{
2958bf215546Sopenharmony_ci    /* no known/supported struct */
2959bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
2960bf215546Sopenharmony_ci}
2961bf215546Sopenharmony_ci
2962bf215546Sopenharmony_cistatic inline void
2963bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2964bf215546Sopenharmony_ci{
2965bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
2966bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing);
2967bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing);
2968bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing);
2969bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing);
2970bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing);
2971bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing);
2972bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing);
2973bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing);
2974bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
2975bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
2976bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind);
2977bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind);
2978bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind);
2979bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind);
2980bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
2981bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
2982bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending);
2983bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound);
2984bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount);
2985bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->runtimeDescriptorArray);
2986bf215546Sopenharmony_ci}
2987bf215546Sopenharmony_ci
2988bf215546Sopenharmony_cistatic inline void
2989bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
2990bf215546Sopenharmony_ci{
2991bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES);
2992bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES });
2993bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(enc, val->pNext);
2994bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(enc, val);
2995bf215546Sopenharmony_ci}
2996bf215546Sopenharmony_ci
2997bf215546Sopenharmony_cistatic inline void
2998bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
2999bf215546Sopenharmony_ci{
3000bf215546Sopenharmony_ci    /* no known/supported struct */
3001bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3002bf215546Sopenharmony_ci        assert(false);
3003bf215546Sopenharmony_ci}
3004bf215546Sopenharmony_ci
3005bf215546Sopenharmony_cistatic inline void
3006bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
3007bf215546Sopenharmony_ci{
3008bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3009bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing);
3010bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing);
3011bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing);
3012bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing);
3013bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing);
3014bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing);
3015bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing);
3016bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing);
3017bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
3018bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
3019bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind);
3020bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind);
3021bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind);
3022bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind);
3023bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
3024bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
3025bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending);
3026bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound);
3027bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount);
3028bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->runtimeDescriptorArray);
3029bf215546Sopenharmony_ci}
3030bf215546Sopenharmony_ci
3031bf215546Sopenharmony_cistatic inline void
3032bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingFeatures *val)
3033bf215546Sopenharmony_ci{
3034bf215546Sopenharmony_ci    VkStructureType stype;
3035bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3036bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES);
3037bf215546Sopenharmony_ci
3038bf215546Sopenharmony_ci    assert(val->sType == stype);
3039bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(dec, val->pNext);
3040bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self(dec, val);
3041bf215546Sopenharmony_ci}
3042bf215546Sopenharmony_ci
3043bf215546Sopenharmony_cistatic inline size_t
3044bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial(const void *val)
3045bf215546Sopenharmony_ci{
3046bf215546Sopenharmony_ci    /* no known/supported struct */
3047bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3048bf215546Sopenharmony_ci}
3049bf215546Sopenharmony_ci
3050bf215546Sopenharmony_cistatic inline size_t
3051bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial(const VkPhysicalDeviceDescriptorIndexingFeatures *val)
3052bf215546Sopenharmony_ci{
3053bf215546Sopenharmony_ci    size_t size = 0;
3054bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3055bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayDynamicIndexing */
3056bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
3057bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
3058bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexing */
3059bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexing */
3060bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexing */
3061bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexing */
3062bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
3063bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
3064bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
3065bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
3066bf215546Sopenharmony_ci    /* skip val->descriptorBindingSampledImageUpdateAfterBind */
3067bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageImageUpdateAfterBind */
3068bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
3069bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
3070bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
3071bf215546Sopenharmony_ci    /* skip val->descriptorBindingUpdateUnusedWhilePending */
3072bf215546Sopenharmony_ci    /* skip val->descriptorBindingPartiallyBound */
3073bf215546Sopenharmony_ci    /* skip val->descriptorBindingVariableDescriptorCount */
3074bf215546Sopenharmony_ci    /* skip val->runtimeDescriptorArray */
3075bf215546Sopenharmony_ci    return size;
3076bf215546Sopenharmony_ci}
3077bf215546Sopenharmony_ci
3078bf215546Sopenharmony_cistatic inline size_t
3079bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_partial(const VkPhysicalDeviceDescriptorIndexingFeatures *val)
3080bf215546Sopenharmony_ci{
3081bf215546Sopenharmony_ci    size_t size = 0;
3082bf215546Sopenharmony_ci
3083bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3084bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial(val->pNext);
3085bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial(val);
3086bf215546Sopenharmony_ci
3087bf215546Sopenharmony_ci    return size;
3088bf215546Sopenharmony_ci}
3089bf215546Sopenharmony_ci
3090bf215546Sopenharmony_cistatic inline void
3091bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3092bf215546Sopenharmony_ci{
3093bf215546Sopenharmony_ci    /* no known/supported struct */
3094bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3095bf215546Sopenharmony_ci}
3096bf215546Sopenharmony_ci
3097bf215546Sopenharmony_cistatic inline void
3098bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
3099bf215546Sopenharmony_ci{
3100bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3101bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayDynamicIndexing */
3102bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
3103bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
3104bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexing */
3105bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexing */
3106bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexing */
3107bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexing */
3108bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
3109bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
3110bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
3111bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
3112bf215546Sopenharmony_ci    /* skip val->descriptorBindingSampledImageUpdateAfterBind */
3113bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageImageUpdateAfterBind */
3114bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
3115bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
3116bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
3117bf215546Sopenharmony_ci    /* skip val->descriptorBindingUpdateUnusedWhilePending */
3118bf215546Sopenharmony_ci    /* skip val->descriptorBindingPartiallyBound */
3119bf215546Sopenharmony_ci    /* skip val->descriptorBindingVariableDescriptorCount */
3120bf215546Sopenharmony_ci    /* skip val->runtimeDescriptorArray */
3121bf215546Sopenharmony_ci}
3122bf215546Sopenharmony_ci
3123bf215546Sopenharmony_cistatic inline void
3124bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val)
3125bf215546Sopenharmony_ci{
3126bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES);
3127bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES });
3128bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext_partial(enc, val->pNext);
3129bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial(enc, val);
3130bf215546Sopenharmony_ci}
3131bf215546Sopenharmony_ci
3132bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTimelineSemaphoreFeatures chain */
3133bf215546Sopenharmony_ci
3134bf215546Sopenharmony_cistatic inline size_t
3135bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(const void *val)
3136bf215546Sopenharmony_ci{
3137bf215546Sopenharmony_ci    /* no known/supported struct */
3138bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3139bf215546Sopenharmony_ci}
3140bf215546Sopenharmony_ci
3141bf215546Sopenharmony_cistatic inline size_t
3142bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self(const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3143bf215546Sopenharmony_ci{
3144bf215546Sopenharmony_ci    size_t size = 0;
3145bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3146bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->timelineSemaphore);
3147bf215546Sopenharmony_ci    return size;
3148bf215546Sopenharmony_ci}
3149bf215546Sopenharmony_ci
3150bf215546Sopenharmony_cistatic inline size_t
3151bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures(const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3152bf215546Sopenharmony_ci{
3153bf215546Sopenharmony_ci    size_t size = 0;
3154bf215546Sopenharmony_ci
3155bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3156bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(val->pNext);
3157bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self(val);
3158bf215546Sopenharmony_ci
3159bf215546Sopenharmony_ci    return size;
3160bf215546Sopenharmony_ci}
3161bf215546Sopenharmony_ci
3162bf215546Sopenharmony_cistatic inline void
3163bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3164bf215546Sopenharmony_ci{
3165bf215546Sopenharmony_ci    /* no known/supported struct */
3166bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3167bf215546Sopenharmony_ci}
3168bf215546Sopenharmony_ci
3169bf215546Sopenharmony_cistatic inline void
3170bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3171bf215546Sopenharmony_ci{
3172bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3173bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->timelineSemaphore);
3174bf215546Sopenharmony_ci}
3175bf215546Sopenharmony_ci
3176bf215546Sopenharmony_cistatic inline void
3177bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3178bf215546Sopenharmony_ci{
3179bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES);
3180bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES });
3181bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(enc, val->pNext);
3182bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(enc, val);
3183bf215546Sopenharmony_ci}
3184bf215546Sopenharmony_ci
3185bf215546Sopenharmony_cistatic inline void
3186bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
3187bf215546Sopenharmony_ci{
3188bf215546Sopenharmony_ci    /* no known/supported struct */
3189bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3190bf215546Sopenharmony_ci        assert(false);
3191bf215546Sopenharmony_ci}
3192bf215546Sopenharmony_ci
3193bf215546Sopenharmony_cistatic inline void
3194bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3195bf215546Sopenharmony_ci{
3196bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3197bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->timelineSemaphore);
3198bf215546Sopenharmony_ci}
3199bf215546Sopenharmony_ci
3200bf215546Sopenharmony_cistatic inline void
3201bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3202bf215546Sopenharmony_ci{
3203bf215546Sopenharmony_ci    VkStructureType stype;
3204bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3205bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES);
3206bf215546Sopenharmony_ci
3207bf215546Sopenharmony_ci    assert(val->sType == stype);
3208bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext(dec, val->pNext);
3209bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(dec, val);
3210bf215546Sopenharmony_ci}
3211bf215546Sopenharmony_ci
3212bf215546Sopenharmony_cistatic inline size_t
3213bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial(const void *val)
3214bf215546Sopenharmony_ci{
3215bf215546Sopenharmony_ci    /* no known/supported struct */
3216bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3217bf215546Sopenharmony_ci}
3218bf215546Sopenharmony_ci
3219bf215546Sopenharmony_cistatic inline size_t
3220bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial(const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3221bf215546Sopenharmony_ci{
3222bf215546Sopenharmony_ci    size_t size = 0;
3223bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3224bf215546Sopenharmony_ci    /* skip val->timelineSemaphore */
3225bf215546Sopenharmony_ci    return size;
3226bf215546Sopenharmony_ci}
3227bf215546Sopenharmony_ci
3228bf215546Sopenharmony_cistatic inline size_t
3229bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_partial(const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3230bf215546Sopenharmony_ci{
3231bf215546Sopenharmony_ci    size_t size = 0;
3232bf215546Sopenharmony_ci
3233bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3234bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial(val->pNext);
3235bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial(val);
3236bf215546Sopenharmony_ci
3237bf215546Sopenharmony_ci    return size;
3238bf215546Sopenharmony_ci}
3239bf215546Sopenharmony_ci
3240bf215546Sopenharmony_cistatic inline void
3241bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3242bf215546Sopenharmony_ci{
3243bf215546Sopenharmony_ci    /* no known/supported struct */
3244bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3245bf215546Sopenharmony_ci}
3246bf215546Sopenharmony_ci
3247bf215546Sopenharmony_cistatic inline void
3248bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3249bf215546Sopenharmony_ci{
3250bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3251bf215546Sopenharmony_ci    /* skip val->timelineSemaphore */
3252bf215546Sopenharmony_ci}
3253bf215546Sopenharmony_ci
3254bf215546Sopenharmony_cistatic inline void
3255bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreFeatures *val)
3256bf215546Sopenharmony_ci{
3257bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES);
3258bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES });
3259bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_pnext_partial(enc, val->pNext);
3260bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial(enc, val);
3261bf215546Sopenharmony_ci}
3262bf215546Sopenharmony_ci
3263bf215546Sopenharmony_ci/* struct VkPhysicalDevice8BitStorageFeatures chain */
3264bf215546Sopenharmony_ci
3265bf215546Sopenharmony_cistatic inline size_t
3266bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures_pnext(const void *val)
3267bf215546Sopenharmony_ci{
3268bf215546Sopenharmony_ci    /* no known/supported struct */
3269bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3270bf215546Sopenharmony_ci}
3271bf215546Sopenharmony_ci
3272bf215546Sopenharmony_cistatic inline size_t
3273bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures_self(const VkPhysicalDevice8BitStorageFeatures *val)
3274bf215546Sopenharmony_ci{
3275bf215546Sopenharmony_ci    size_t size = 0;
3276bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3277bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageBuffer8BitAccess);
3278bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformAndStorageBuffer8BitAccess);
3279bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storagePushConstant8);
3280bf215546Sopenharmony_ci    return size;
3281bf215546Sopenharmony_ci}
3282bf215546Sopenharmony_ci
3283bf215546Sopenharmony_cistatic inline size_t
3284bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures(const VkPhysicalDevice8BitStorageFeatures *val)
3285bf215546Sopenharmony_ci{
3286bf215546Sopenharmony_ci    size_t size = 0;
3287bf215546Sopenharmony_ci
3288bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3289bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_pnext(val->pNext);
3290bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_self(val);
3291bf215546Sopenharmony_ci
3292bf215546Sopenharmony_ci    return size;
3293bf215546Sopenharmony_ci}
3294bf215546Sopenharmony_ci
3295bf215546Sopenharmony_cistatic inline void
3296bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3297bf215546Sopenharmony_ci{
3298bf215546Sopenharmony_ci    /* no known/supported struct */
3299bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3300bf215546Sopenharmony_ci}
3301bf215546Sopenharmony_ci
3302bf215546Sopenharmony_cistatic inline void
3303bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
3304bf215546Sopenharmony_ci{
3305bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3306bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess);
3307bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess);
3308bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storagePushConstant8);
3309bf215546Sopenharmony_ci}
3310bf215546Sopenharmony_ci
3311bf215546Sopenharmony_cistatic inline void
3312bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
3313bf215546Sopenharmony_ci{
3314bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES);
3315bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES });
3316bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice8BitStorageFeatures_pnext(enc, val->pNext);
3317bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice8BitStorageFeatures_self(enc, val);
3318bf215546Sopenharmony_ci}
3319bf215546Sopenharmony_ci
3320bf215546Sopenharmony_cistatic inline void
3321bf215546Sopenharmony_civn_decode_VkPhysicalDevice8BitStorageFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
3322bf215546Sopenharmony_ci{
3323bf215546Sopenharmony_ci    /* no known/supported struct */
3324bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3325bf215546Sopenharmony_ci        assert(false);
3326bf215546Sopenharmony_ci}
3327bf215546Sopenharmony_ci
3328bf215546Sopenharmony_cistatic inline void
3329bf215546Sopenharmony_civn_decode_VkPhysicalDevice8BitStorageFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
3330bf215546Sopenharmony_ci{
3331bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3332bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess);
3333bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess);
3334bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storagePushConstant8);
3335bf215546Sopenharmony_ci}
3336bf215546Sopenharmony_ci
3337bf215546Sopenharmony_cistatic inline void
3338bf215546Sopenharmony_civn_decode_VkPhysicalDevice8BitStorageFeatures(struct vn_cs_decoder *dec, VkPhysicalDevice8BitStorageFeatures *val)
3339bf215546Sopenharmony_ci{
3340bf215546Sopenharmony_ci    VkStructureType stype;
3341bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3342bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES);
3343bf215546Sopenharmony_ci
3344bf215546Sopenharmony_ci    assert(val->sType == stype);
3345bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice8BitStorageFeatures_pnext(dec, val->pNext);
3346bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice8BitStorageFeatures_self(dec, val);
3347bf215546Sopenharmony_ci}
3348bf215546Sopenharmony_ci
3349bf215546Sopenharmony_cistatic inline size_t
3350bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures_pnext_partial(const void *val)
3351bf215546Sopenharmony_ci{
3352bf215546Sopenharmony_ci    /* no known/supported struct */
3353bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3354bf215546Sopenharmony_ci}
3355bf215546Sopenharmony_ci
3356bf215546Sopenharmony_cistatic inline size_t
3357bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures_self_partial(const VkPhysicalDevice8BitStorageFeatures *val)
3358bf215546Sopenharmony_ci{
3359bf215546Sopenharmony_ci    size_t size = 0;
3360bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3361bf215546Sopenharmony_ci    /* skip val->storageBuffer8BitAccess */
3362bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer8BitAccess */
3363bf215546Sopenharmony_ci    /* skip val->storagePushConstant8 */
3364bf215546Sopenharmony_ci    return size;
3365bf215546Sopenharmony_ci}
3366bf215546Sopenharmony_ci
3367bf215546Sopenharmony_cistatic inline size_t
3368bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice8BitStorageFeatures_partial(const VkPhysicalDevice8BitStorageFeatures *val)
3369bf215546Sopenharmony_ci{
3370bf215546Sopenharmony_ci    size_t size = 0;
3371bf215546Sopenharmony_ci
3372bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3373bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_pnext_partial(val->pNext);
3374bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_self_partial(val);
3375bf215546Sopenharmony_ci
3376bf215546Sopenharmony_ci    return size;
3377bf215546Sopenharmony_ci}
3378bf215546Sopenharmony_ci
3379bf215546Sopenharmony_cistatic inline void
3380bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3381bf215546Sopenharmony_ci{
3382bf215546Sopenharmony_ci    /* no known/supported struct */
3383bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3384bf215546Sopenharmony_ci}
3385bf215546Sopenharmony_ci
3386bf215546Sopenharmony_cistatic inline void
3387bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
3388bf215546Sopenharmony_ci{
3389bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3390bf215546Sopenharmony_ci    /* skip val->storageBuffer8BitAccess */
3391bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer8BitAccess */
3392bf215546Sopenharmony_ci    /* skip val->storagePushConstant8 */
3393bf215546Sopenharmony_ci}
3394bf215546Sopenharmony_ci
3395bf215546Sopenharmony_cistatic inline void
3396bf215546Sopenharmony_civn_encode_VkPhysicalDevice8BitStorageFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice8BitStorageFeatures *val)
3397bf215546Sopenharmony_ci{
3398bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES);
3399bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES });
3400bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice8BitStorageFeatures_pnext_partial(enc, val->pNext);
3401bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice8BitStorageFeatures_self_partial(enc, val);
3402bf215546Sopenharmony_ci}
3403bf215546Sopenharmony_ci
3404bf215546Sopenharmony_ci/* struct VkPhysicalDeviceConditionalRenderingFeaturesEXT chain */
3405bf215546Sopenharmony_ci
3406bf215546Sopenharmony_cistatic inline size_t
3407bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(const void *val)
3408bf215546Sopenharmony_ci{
3409bf215546Sopenharmony_ci    /* no known/supported struct */
3410bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3411bf215546Sopenharmony_ci}
3412bf215546Sopenharmony_ci
3413bf215546Sopenharmony_cistatic inline size_t
3414bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3415bf215546Sopenharmony_ci{
3416bf215546Sopenharmony_ci    size_t size = 0;
3417bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3418bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->conditionalRendering);
3419bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->inheritedConditionalRendering);
3420bf215546Sopenharmony_ci    return size;
3421bf215546Sopenharmony_ci}
3422bf215546Sopenharmony_ci
3423bf215546Sopenharmony_cistatic inline size_t
3424bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT(const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3425bf215546Sopenharmony_ci{
3426bf215546Sopenharmony_ci    size_t size = 0;
3427bf215546Sopenharmony_ci
3428bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3429bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(val->pNext);
3430bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(val);
3431bf215546Sopenharmony_ci
3432bf215546Sopenharmony_ci    return size;
3433bf215546Sopenharmony_ci}
3434bf215546Sopenharmony_ci
3435bf215546Sopenharmony_cistatic inline void
3436bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3437bf215546Sopenharmony_ci{
3438bf215546Sopenharmony_ci    /* no known/supported struct */
3439bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3440bf215546Sopenharmony_ci}
3441bf215546Sopenharmony_ci
3442bf215546Sopenharmony_cistatic inline void
3443bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3444bf215546Sopenharmony_ci{
3445bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3446bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->conditionalRendering);
3447bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->inheritedConditionalRendering);
3448bf215546Sopenharmony_ci}
3449bf215546Sopenharmony_ci
3450bf215546Sopenharmony_cistatic inline void
3451bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3452bf215546Sopenharmony_ci{
3453bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT);
3454bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT });
3455bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(enc, val->pNext);
3456bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(enc, val);
3457bf215546Sopenharmony_ci}
3458bf215546Sopenharmony_ci
3459bf215546Sopenharmony_cistatic inline void
3460bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
3461bf215546Sopenharmony_ci{
3462bf215546Sopenharmony_ci    /* no known/supported struct */
3463bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3464bf215546Sopenharmony_ci        assert(false);
3465bf215546Sopenharmony_ci}
3466bf215546Sopenharmony_ci
3467bf215546Sopenharmony_cistatic inline void
3468bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3469bf215546Sopenharmony_ci{
3470bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3471bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->conditionalRendering);
3472bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->inheritedConditionalRendering);
3473bf215546Sopenharmony_ci}
3474bf215546Sopenharmony_ci
3475bf215546Sopenharmony_cistatic inline void
3476bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3477bf215546Sopenharmony_ci{
3478bf215546Sopenharmony_ci    VkStructureType stype;
3479bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3480bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT);
3481bf215546Sopenharmony_ci
3482bf215546Sopenharmony_ci    assert(val->sType == stype);
3483bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext(dec, val->pNext);
3484bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(dec, val);
3485bf215546Sopenharmony_ci}
3486bf215546Sopenharmony_ci
3487bf215546Sopenharmony_cistatic inline size_t
3488bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial(const void *val)
3489bf215546Sopenharmony_ci{
3490bf215546Sopenharmony_ci    /* no known/supported struct */
3491bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3492bf215546Sopenharmony_ci}
3493bf215546Sopenharmony_ci
3494bf215546Sopenharmony_cistatic inline size_t
3495bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial(const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3496bf215546Sopenharmony_ci{
3497bf215546Sopenharmony_ci    size_t size = 0;
3498bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3499bf215546Sopenharmony_ci    /* skip val->conditionalRendering */
3500bf215546Sopenharmony_ci    /* skip val->inheritedConditionalRendering */
3501bf215546Sopenharmony_ci    return size;
3502bf215546Sopenharmony_ci}
3503bf215546Sopenharmony_ci
3504bf215546Sopenharmony_cistatic inline size_t
3505bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_partial(const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3506bf215546Sopenharmony_ci{
3507bf215546Sopenharmony_ci    size_t size = 0;
3508bf215546Sopenharmony_ci
3509bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3510bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial(val->pNext);
3511bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial(val);
3512bf215546Sopenharmony_ci
3513bf215546Sopenharmony_ci    return size;
3514bf215546Sopenharmony_ci}
3515bf215546Sopenharmony_ci
3516bf215546Sopenharmony_cistatic inline void
3517bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3518bf215546Sopenharmony_ci{
3519bf215546Sopenharmony_ci    /* no known/supported struct */
3520bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3521bf215546Sopenharmony_ci}
3522bf215546Sopenharmony_ci
3523bf215546Sopenharmony_cistatic inline void
3524bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3525bf215546Sopenharmony_ci{
3526bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3527bf215546Sopenharmony_ci    /* skip val->conditionalRendering */
3528bf215546Sopenharmony_ci    /* skip val->inheritedConditionalRendering */
3529bf215546Sopenharmony_ci}
3530bf215546Sopenharmony_ci
3531bf215546Sopenharmony_cistatic inline void
3532bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceConditionalRenderingFeaturesEXT *val)
3533bf215546Sopenharmony_ci{
3534bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT);
3535bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT });
3536bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_pnext_partial(enc, val->pNext);
3537bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial(enc, val);
3538bf215546Sopenharmony_ci}
3539bf215546Sopenharmony_ci
3540bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkanMemoryModelFeatures chain */
3541bf215546Sopenharmony_ci
3542bf215546Sopenharmony_cistatic inline size_t
3543bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(const void *val)
3544bf215546Sopenharmony_ci{
3545bf215546Sopenharmony_ci    /* no known/supported struct */
3546bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3547bf215546Sopenharmony_ci}
3548bf215546Sopenharmony_ci
3549bf215546Sopenharmony_cistatic inline size_t
3550bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self(const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3551bf215546Sopenharmony_ci{
3552bf215546Sopenharmony_ci    size_t size = 0;
3553bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3554bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModel);
3555bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModelDeviceScope);
3556bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModelAvailabilityVisibilityChains);
3557bf215546Sopenharmony_ci    return size;
3558bf215546Sopenharmony_ci}
3559bf215546Sopenharmony_ci
3560bf215546Sopenharmony_cistatic inline size_t
3561bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures(const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3562bf215546Sopenharmony_ci{
3563bf215546Sopenharmony_ci    size_t size = 0;
3564bf215546Sopenharmony_ci
3565bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3566bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(val->pNext);
3567bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self(val);
3568bf215546Sopenharmony_ci
3569bf215546Sopenharmony_ci    return size;
3570bf215546Sopenharmony_ci}
3571bf215546Sopenharmony_ci
3572bf215546Sopenharmony_cistatic inline void
3573bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
3574bf215546Sopenharmony_ci{
3575bf215546Sopenharmony_ci    /* no known/supported struct */
3576bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3577bf215546Sopenharmony_ci}
3578bf215546Sopenharmony_ci
3579bf215546Sopenharmony_cistatic inline void
3580bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3581bf215546Sopenharmony_ci{
3582bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3583bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModel);
3584bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope);
3585bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains);
3586bf215546Sopenharmony_ci}
3587bf215546Sopenharmony_ci
3588bf215546Sopenharmony_cistatic inline void
3589bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3590bf215546Sopenharmony_ci{
3591bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES);
3592bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES });
3593bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(enc, val->pNext);
3594bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(enc, val);
3595bf215546Sopenharmony_ci}
3596bf215546Sopenharmony_ci
3597bf215546Sopenharmony_cistatic inline void
3598bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
3599bf215546Sopenharmony_ci{
3600bf215546Sopenharmony_ci    /* no known/supported struct */
3601bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3602bf215546Sopenharmony_ci        assert(false);
3603bf215546Sopenharmony_ci}
3604bf215546Sopenharmony_ci
3605bf215546Sopenharmony_cistatic inline void
3606bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3607bf215546Sopenharmony_ci{
3608bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3609bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModel);
3610bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope);
3611bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains);
3612bf215546Sopenharmony_ci}
3613bf215546Sopenharmony_ci
3614bf215546Sopenharmony_cistatic inline void
3615bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3616bf215546Sopenharmony_ci{
3617bf215546Sopenharmony_ci    VkStructureType stype;
3618bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3619bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES);
3620bf215546Sopenharmony_ci
3621bf215546Sopenharmony_ci    assert(val->sType == stype);
3622bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext(dec, val->pNext);
3623bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(dec, val);
3624bf215546Sopenharmony_ci}
3625bf215546Sopenharmony_ci
3626bf215546Sopenharmony_cistatic inline size_t
3627bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial(const void *val)
3628bf215546Sopenharmony_ci{
3629bf215546Sopenharmony_ci    /* no known/supported struct */
3630bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3631bf215546Sopenharmony_ci}
3632bf215546Sopenharmony_ci
3633bf215546Sopenharmony_cistatic inline size_t
3634bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial(const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3635bf215546Sopenharmony_ci{
3636bf215546Sopenharmony_ci    size_t size = 0;
3637bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3638bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModel */
3639bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelDeviceScope */
3640bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
3641bf215546Sopenharmony_ci    return size;
3642bf215546Sopenharmony_ci}
3643bf215546Sopenharmony_ci
3644bf215546Sopenharmony_cistatic inline size_t
3645bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_partial(const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3646bf215546Sopenharmony_ci{
3647bf215546Sopenharmony_ci    size_t size = 0;
3648bf215546Sopenharmony_ci
3649bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3650bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial(val->pNext);
3651bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial(val);
3652bf215546Sopenharmony_ci
3653bf215546Sopenharmony_ci    return size;
3654bf215546Sopenharmony_ci}
3655bf215546Sopenharmony_ci
3656bf215546Sopenharmony_cistatic inline void
3657bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3658bf215546Sopenharmony_ci{
3659bf215546Sopenharmony_ci    /* no known/supported struct */
3660bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3661bf215546Sopenharmony_ci}
3662bf215546Sopenharmony_ci
3663bf215546Sopenharmony_cistatic inline void
3664bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3665bf215546Sopenharmony_ci{
3666bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3667bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModel */
3668bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelDeviceScope */
3669bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
3670bf215546Sopenharmony_ci}
3671bf215546Sopenharmony_ci
3672bf215546Sopenharmony_cistatic inline void
3673bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkanMemoryModelFeatures *val)
3674bf215546Sopenharmony_ci{
3675bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES);
3676bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES });
3677bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_pnext_partial(enc, val->pNext);
3678bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial(enc, val);
3679bf215546Sopenharmony_ci}
3680bf215546Sopenharmony_ci
3681bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderAtomicInt64Features chain */
3682bf215546Sopenharmony_ci
3683bf215546Sopenharmony_cistatic inline size_t
3684bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_pnext(const void *val)
3685bf215546Sopenharmony_ci{
3686bf215546Sopenharmony_ci    /* no known/supported struct */
3687bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3688bf215546Sopenharmony_ci}
3689bf215546Sopenharmony_ci
3690bf215546Sopenharmony_cistatic inline size_t
3691bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self(const VkPhysicalDeviceShaderAtomicInt64Features *val)
3692bf215546Sopenharmony_ci{
3693bf215546Sopenharmony_ci    size_t size = 0;
3694bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3695bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderBufferInt64Atomics);
3696bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSharedInt64Atomics);
3697bf215546Sopenharmony_ci    return size;
3698bf215546Sopenharmony_ci}
3699bf215546Sopenharmony_ci
3700bf215546Sopenharmony_cistatic inline size_t
3701bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features(const VkPhysicalDeviceShaderAtomicInt64Features *val)
3702bf215546Sopenharmony_ci{
3703bf215546Sopenharmony_ci    size_t size = 0;
3704bf215546Sopenharmony_ci
3705bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3706bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_pnext(val->pNext);
3707bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self(val);
3708bf215546Sopenharmony_ci
3709bf215546Sopenharmony_ci    return size;
3710bf215546Sopenharmony_ci}
3711bf215546Sopenharmony_ci
3712bf215546Sopenharmony_cistatic inline void
3713bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(struct vn_cs_encoder *enc, const void *val)
3714bf215546Sopenharmony_ci{
3715bf215546Sopenharmony_ci    /* no known/supported struct */
3716bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3717bf215546Sopenharmony_ci}
3718bf215546Sopenharmony_ci
3719bf215546Sopenharmony_cistatic inline void
3720bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
3721bf215546Sopenharmony_ci{
3722bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3723bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics);
3724bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics);
3725bf215546Sopenharmony_ci}
3726bf215546Sopenharmony_ci
3727bf215546Sopenharmony_cistatic inline void
3728bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
3729bf215546Sopenharmony_ci{
3730bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES);
3731bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES });
3732bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(enc, val->pNext);
3733bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(enc, val);
3734bf215546Sopenharmony_ci}
3735bf215546Sopenharmony_ci
3736bf215546Sopenharmony_cistatic inline void
3737bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(struct vn_cs_decoder *dec, const void *val)
3738bf215546Sopenharmony_ci{
3739bf215546Sopenharmony_ci    /* no known/supported struct */
3740bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3741bf215546Sopenharmony_ci        assert(false);
3742bf215546Sopenharmony_ci}
3743bf215546Sopenharmony_ci
3744bf215546Sopenharmony_cistatic inline void
3745bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
3746bf215546Sopenharmony_ci{
3747bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3748bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics);
3749bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics);
3750bf215546Sopenharmony_ci}
3751bf215546Sopenharmony_ci
3752bf215546Sopenharmony_cistatic inline void
3753bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderAtomicInt64Features(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderAtomicInt64Features *val)
3754bf215546Sopenharmony_ci{
3755bf215546Sopenharmony_ci    VkStructureType stype;
3756bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3757bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES);
3758bf215546Sopenharmony_ci
3759bf215546Sopenharmony_ci    assert(val->sType == stype);
3760bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_pnext(dec, val->pNext);
3761bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self(dec, val);
3762bf215546Sopenharmony_ci}
3763bf215546Sopenharmony_ci
3764bf215546Sopenharmony_cistatic inline size_t
3765bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial(const void *val)
3766bf215546Sopenharmony_ci{
3767bf215546Sopenharmony_ci    /* no known/supported struct */
3768bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3769bf215546Sopenharmony_ci}
3770bf215546Sopenharmony_ci
3771bf215546Sopenharmony_cistatic inline size_t
3772bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self_partial(const VkPhysicalDeviceShaderAtomicInt64Features *val)
3773bf215546Sopenharmony_ci{
3774bf215546Sopenharmony_ci    size_t size = 0;
3775bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3776bf215546Sopenharmony_ci    /* skip val->shaderBufferInt64Atomics */
3777bf215546Sopenharmony_ci    /* skip val->shaderSharedInt64Atomics */
3778bf215546Sopenharmony_ci    return size;
3779bf215546Sopenharmony_ci}
3780bf215546Sopenharmony_ci
3781bf215546Sopenharmony_cistatic inline size_t
3782bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_partial(const VkPhysicalDeviceShaderAtomicInt64Features *val)
3783bf215546Sopenharmony_ci{
3784bf215546Sopenharmony_ci    size_t size = 0;
3785bf215546Sopenharmony_ci
3786bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3787bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial(val->pNext);
3788bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self_partial(val);
3789bf215546Sopenharmony_ci
3790bf215546Sopenharmony_ci    return size;
3791bf215546Sopenharmony_ci}
3792bf215546Sopenharmony_ci
3793bf215546Sopenharmony_cistatic inline void
3794bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3795bf215546Sopenharmony_ci{
3796bf215546Sopenharmony_ci    /* no known/supported struct */
3797bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3798bf215546Sopenharmony_ci}
3799bf215546Sopenharmony_ci
3800bf215546Sopenharmony_cistatic inline void
3801bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
3802bf215546Sopenharmony_ci{
3803bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3804bf215546Sopenharmony_ci    /* skip val->shaderBufferInt64Atomics */
3805bf215546Sopenharmony_ci    /* skip val->shaderSharedInt64Atomics */
3806bf215546Sopenharmony_ci}
3807bf215546Sopenharmony_ci
3808bf215546Sopenharmony_cistatic inline void
3809bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderAtomicInt64Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderAtomicInt64Features *val)
3810bf215546Sopenharmony_ci{
3811bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES);
3812bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES });
3813bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_pnext_partial(enc, val->pNext);
3814bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial(enc, val);
3815bf215546Sopenharmony_ci}
3816bf215546Sopenharmony_ci
3817bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT chain */
3818bf215546Sopenharmony_ci
3819bf215546Sopenharmony_cistatic inline size_t
3820bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(const void *val)
3821bf215546Sopenharmony_ci{
3822bf215546Sopenharmony_ci    /* no known/supported struct */
3823bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3824bf215546Sopenharmony_ci}
3825bf215546Sopenharmony_ci
3826bf215546Sopenharmony_cistatic inline size_t
3827bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3828bf215546Sopenharmony_ci{
3829bf215546Sopenharmony_ci    size_t size = 0;
3830bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3831bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vertexAttributeInstanceRateDivisor);
3832bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vertexAttributeInstanceRateZeroDivisor);
3833bf215546Sopenharmony_ci    return size;
3834bf215546Sopenharmony_ci}
3835bf215546Sopenharmony_ci
3836bf215546Sopenharmony_cistatic inline size_t
3837bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3838bf215546Sopenharmony_ci{
3839bf215546Sopenharmony_ci    size_t size = 0;
3840bf215546Sopenharmony_ci
3841bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3842bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(val->pNext);
3843bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(val);
3844bf215546Sopenharmony_ci
3845bf215546Sopenharmony_ci    return size;
3846bf215546Sopenharmony_ci}
3847bf215546Sopenharmony_ci
3848bf215546Sopenharmony_cistatic inline void
3849bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3850bf215546Sopenharmony_ci{
3851bf215546Sopenharmony_ci    /* no known/supported struct */
3852bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3853bf215546Sopenharmony_ci}
3854bf215546Sopenharmony_ci
3855bf215546Sopenharmony_cistatic inline void
3856bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3857bf215546Sopenharmony_ci{
3858bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3859bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vertexAttributeInstanceRateDivisor);
3860bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vertexAttributeInstanceRateZeroDivisor);
3861bf215546Sopenharmony_ci}
3862bf215546Sopenharmony_ci
3863bf215546Sopenharmony_cistatic inline void
3864bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3865bf215546Sopenharmony_ci{
3866bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT);
3867bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT });
3868bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(enc, val->pNext);
3869bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(enc, val);
3870bf215546Sopenharmony_ci}
3871bf215546Sopenharmony_ci
3872bf215546Sopenharmony_cistatic inline void
3873bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
3874bf215546Sopenharmony_ci{
3875bf215546Sopenharmony_ci    /* no known/supported struct */
3876bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
3877bf215546Sopenharmony_ci        assert(false);
3878bf215546Sopenharmony_ci}
3879bf215546Sopenharmony_ci
3880bf215546Sopenharmony_cistatic inline void
3881bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3882bf215546Sopenharmony_ci{
3883bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3884bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vertexAttributeInstanceRateDivisor);
3885bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vertexAttributeInstanceRateZeroDivisor);
3886bf215546Sopenharmony_ci}
3887bf215546Sopenharmony_ci
3888bf215546Sopenharmony_cistatic inline void
3889bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3890bf215546Sopenharmony_ci{
3891bf215546Sopenharmony_ci    VkStructureType stype;
3892bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
3893bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT);
3894bf215546Sopenharmony_ci
3895bf215546Sopenharmony_ci    assert(val->sType == stype);
3896bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext(dec, val->pNext);
3897bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(dec, val);
3898bf215546Sopenharmony_ci}
3899bf215546Sopenharmony_ci
3900bf215546Sopenharmony_cistatic inline size_t
3901bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial(const void *val)
3902bf215546Sopenharmony_ci{
3903bf215546Sopenharmony_ci    /* no known/supported struct */
3904bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3905bf215546Sopenharmony_ci}
3906bf215546Sopenharmony_ci
3907bf215546Sopenharmony_cistatic inline size_t
3908bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3909bf215546Sopenharmony_ci{
3910bf215546Sopenharmony_ci    size_t size = 0;
3911bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3912bf215546Sopenharmony_ci    /* skip val->vertexAttributeInstanceRateDivisor */
3913bf215546Sopenharmony_ci    /* skip val->vertexAttributeInstanceRateZeroDivisor */
3914bf215546Sopenharmony_ci    return size;
3915bf215546Sopenharmony_ci}
3916bf215546Sopenharmony_ci
3917bf215546Sopenharmony_cistatic inline size_t
3918bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_partial(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3919bf215546Sopenharmony_ci{
3920bf215546Sopenharmony_ci    size_t size = 0;
3921bf215546Sopenharmony_ci
3922bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3923bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial(val->pNext);
3924bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial(val);
3925bf215546Sopenharmony_ci
3926bf215546Sopenharmony_ci    return size;
3927bf215546Sopenharmony_ci}
3928bf215546Sopenharmony_ci
3929bf215546Sopenharmony_cistatic inline void
3930bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
3931bf215546Sopenharmony_ci{
3932bf215546Sopenharmony_ci    /* no known/supported struct */
3933bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3934bf215546Sopenharmony_ci}
3935bf215546Sopenharmony_ci
3936bf215546Sopenharmony_cistatic inline void
3937bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3938bf215546Sopenharmony_ci{
3939bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3940bf215546Sopenharmony_ci    /* skip val->vertexAttributeInstanceRateDivisor */
3941bf215546Sopenharmony_ci    /* skip val->vertexAttributeInstanceRateZeroDivisor */
3942bf215546Sopenharmony_ci}
3943bf215546Sopenharmony_ci
3944bf215546Sopenharmony_cistatic inline void
3945bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *val)
3946bf215546Sopenharmony_ci{
3947bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT);
3948bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT });
3949bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_pnext_partial(enc, val->pNext);
3950bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial(enc, val);
3951bf215546Sopenharmony_ci}
3952bf215546Sopenharmony_ci
3953bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTransformFeedbackFeaturesEXT chain */
3954bf215546Sopenharmony_ci
3955bf215546Sopenharmony_cistatic inline size_t
3956bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(const void *val)
3957bf215546Sopenharmony_ci{
3958bf215546Sopenharmony_ci    /* no known/supported struct */
3959bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
3960bf215546Sopenharmony_ci}
3961bf215546Sopenharmony_ci
3962bf215546Sopenharmony_cistatic inline size_t
3963bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3964bf215546Sopenharmony_ci{
3965bf215546Sopenharmony_ci    size_t size = 0;
3966bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3967bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedback);
3968bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->geometryStreams);
3969bf215546Sopenharmony_ci    return size;
3970bf215546Sopenharmony_ci}
3971bf215546Sopenharmony_ci
3972bf215546Sopenharmony_cistatic inline size_t
3973bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT(const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3974bf215546Sopenharmony_ci{
3975bf215546Sopenharmony_ci    size_t size = 0;
3976bf215546Sopenharmony_ci
3977bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
3978bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(val->pNext);
3979bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(val);
3980bf215546Sopenharmony_ci
3981bf215546Sopenharmony_ci    return size;
3982bf215546Sopenharmony_ci}
3983bf215546Sopenharmony_ci
3984bf215546Sopenharmony_cistatic inline void
3985bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
3986bf215546Sopenharmony_ci{
3987bf215546Sopenharmony_ci    /* no known/supported struct */
3988bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
3989bf215546Sopenharmony_ci}
3990bf215546Sopenharmony_ci
3991bf215546Sopenharmony_cistatic inline void
3992bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
3993bf215546Sopenharmony_ci{
3994bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
3995bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->transformFeedback);
3996bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->geometryStreams);
3997bf215546Sopenharmony_ci}
3998bf215546Sopenharmony_ci
3999bf215546Sopenharmony_cistatic inline void
4000bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4001bf215546Sopenharmony_ci{
4002bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT);
4003bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT });
4004bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(enc, val->pNext);
4005bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(enc, val);
4006bf215546Sopenharmony_ci}
4007bf215546Sopenharmony_ci
4008bf215546Sopenharmony_cistatic inline void
4009bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
4010bf215546Sopenharmony_ci{
4011bf215546Sopenharmony_ci    /* no known/supported struct */
4012bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4013bf215546Sopenharmony_ci        assert(false);
4014bf215546Sopenharmony_ci}
4015bf215546Sopenharmony_ci
4016bf215546Sopenharmony_cistatic inline void
4017bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4018bf215546Sopenharmony_ci{
4019bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4020bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedback);
4021bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->geometryStreams);
4022bf215546Sopenharmony_ci}
4023bf215546Sopenharmony_ci
4024bf215546Sopenharmony_cistatic inline void
4025bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4026bf215546Sopenharmony_ci{
4027bf215546Sopenharmony_ci    VkStructureType stype;
4028bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4029bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT);
4030bf215546Sopenharmony_ci
4031bf215546Sopenharmony_ci    assert(val->sType == stype);
4032bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext(dec, val->pNext);
4033bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(dec, val);
4034bf215546Sopenharmony_ci}
4035bf215546Sopenharmony_ci
4036bf215546Sopenharmony_cistatic inline size_t
4037bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial(const void *val)
4038bf215546Sopenharmony_ci{
4039bf215546Sopenharmony_ci    /* no known/supported struct */
4040bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4041bf215546Sopenharmony_ci}
4042bf215546Sopenharmony_ci
4043bf215546Sopenharmony_cistatic inline size_t
4044bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial(const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4045bf215546Sopenharmony_ci{
4046bf215546Sopenharmony_ci    size_t size = 0;
4047bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4048bf215546Sopenharmony_ci    /* skip val->transformFeedback */
4049bf215546Sopenharmony_ci    /* skip val->geometryStreams */
4050bf215546Sopenharmony_ci    return size;
4051bf215546Sopenharmony_ci}
4052bf215546Sopenharmony_ci
4053bf215546Sopenharmony_cistatic inline size_t
4054bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_partial(const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4055bf215546Sopenharmony_ci{
4056bf215546Sopenharmony_ci    size_t size = 0;
4057bf215546Sopenharmony_ci
4058bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4059bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial(val->pNext);
4060bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial(val);
4061bf215546Sopenharmony_ci
4062bf215546Sopenharmony_ci    return size;
4063bf215546Sopenharmony_ci}
4064bf215546Sopenharmony_ci
4065bf215546Sopenharmony_cistatic inline void
4066bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4067bf215546Sopenharmony_ci{
4068bf215546Sopenharmony_ci    /* no known/supported struct */
4069bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4070bf215546Sopenharmony_ci}
4071bf215546Sopenharmony_ci
4072bf215546Sopenharmony_cistatic inline void
4073bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4074bf215546Sopenharmony_ci{
4075bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4076bf215546Sopenharmony_ci    /* skip val->transformFeedback */
4077bf215546Sopenharmony_ci    /* skip val->geometryStreams */
4078bf215546Sopenharmony_ci}
4079bf215546Sopenharmony_ci
4080bf215546Sopenharmony_cistatic inline void
4081bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackFeaturesEXT *val)
4082bf215546Sopenharmony_ci{
4083bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT);
4084bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT });
4085bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_pnext_partial(enc, val->pNext);
4086bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial(enc, val);
4087bf215546Sopenharmony_ci}
4088bf215546Sopenharmony_ci
4089bf215546Sopenharmony_ci/* struct VkPhysicalDeviceScalarBlockLayoutFeatures chain */
4090bf215546Sopenharmony_ci
4091bf215546Sopenharmony_cistatic inline size_t
4092bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(const void *val)
4093bf215546Sopenharmony_ci{
4094bf215546Sopenharmony_ci    /* no known/supported struct */
4095bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4096bf215546Sopenharmony_ci}
4097bf215546Sopenharmony_ci
4098bf215546Sopenharmony_cistatic inline size_t
4099bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self(const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4100bf215546Sopenharmony_ci{
4101bf215546Sopenharmony_ci    size_t size = 0;
4102bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4103bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->scalarBlockLayout);
4104bf215546Sopenharmony_ci    return size;
4105bf215546Sopenharmony_ci}
4106bf215546Sopenharmony_ci
4107bf215546Sopenharmony_cistatic inline size_t
4108bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures(const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4109bf215546Sopenharmony_ci{
4110bf215546Sopenharmony_ci    size_t size = 0;
4111bf215546Sopenharmony_ci
4112bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4113bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(val->pNext);
4114bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self(val);
4115bf215546Sopenharmony_ci
4116bf215546Sopenharmony_ci    return size;
4117bf215546Sopenharmony_ci}
4118bf215546Sopenharmony_ci
4119bf215546Sopenharmony_cistatic inline void
4120bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4121bf215546Sopenharmony_ci{
4122bf215546Sopenharmony_ci    /* no known/supported struct */
4123bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4124bf215546Sopenharmony_ci}
4125bf215546Sopenharmony_ci
4126bf215546Sopenharmony_cistatic inline void
4127bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4128bf215546Sopenharmony_ci{
4129bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4130bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->scalarBlockLayout);
4131bf215546Sopenharmony_ci}
4132bf215546Sopenharmony_ci
4133bf215546Sopenharmony_cistatic inline void
4134bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4135bf215546Sopenharmony_ci{
4136bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES);
4137bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES });
4138bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(enc, val->pNext);
4139bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(enc, val);
4140bf215546Sopenharmony_ci}
4141bf215546Sopenharmony_ci
4142bf215546Sopenharmony_cistatic inline void
4143bf215546Sopenharmony_civn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
4144bf215546Sopenharmony_ci{
4145bf215546Sopenharmony_ci    /* no known/supported struct */
4146bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4147bf215546Sopenharmony_ci        assert(false);
4148bf215546Sopenharmony_ci}
4149bf215546Sopenharmony_ci
4150bf215546Sopenharmony_cistatic inline void
4151bf215546Sopenharmony_civn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4152bf215546Sopenharmony_ci{
4153bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4154bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->scalarBlockLayout);
4155bf215546Sopenharmony_ci}
4156bf215546Sopenharmony_ci
4157bf215546Sopenharmony_cistatic inline void
4158bf215546Sopenharmony_civn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4159bf215546Sopenharmony_ci{
4160bf215546Sopenharmony_ci    VkStructureType stype;
4161bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4162bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES);
4163bf215546Sopenharmony_ci
4164bf215546Sopenharmony_ci    assert(val->sType == stype);
4165bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext(dec, val->pNext);
4166bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(dec, val);
4167bf215546Sopenharmony_ci}
4168bf215546Sopenharmony_ci
4169bf215546Sopenharmony_cistatic inline size_t
4170bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial(const void *val)
4171bf215546Sopenharmony_ci{
4172bf215546Sopenharmony_ci    /* no known/supported struct */
4173bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4174bf215546Sopenharmony_ci}
4175bf215546Sopenharmony_ci
4176bf215546Sopenharmony_cistatic inline size_t
4177bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial(const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4178bf215546Sopenharmony_ci{
4179bf215546Sopenharmony_ci    size_t size = 0;
4180bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4181bf215546Sopenharmony_ci    /* skip val->scalarBlockLayout */
4182bf215546Sopenharmony_ci    return size;
4183bf215546Sopenharmony_ci}
4184bf215546Sopenharmony_ci
4185bf215546Sopenharmony_cistatic inline size_t
4186bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_partial(const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4187bf215546Sopenharmony_ci{
4188bf215546Sopenharmony_ci    size_t size = 0;
4189bf215546Sopenharmony_ci
4190bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4191bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial(val->pNext);
4192bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial(val);
4193bf215546Sopenharmony_ci
4194bf215546Sopenharmony_ci    return size;
4195bf215546Sopenharmony_ci}
4196bf215546Sopenharmony_ci
4197bf215546Sopenharmony_cistatic inline void
4198bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4199bf215546Sopenharmony_ci{
4200bf215546Sopenharmony_ci    /* no known/supported struct */
4201bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4202bf215546Sopenharmony_ci}
4203bf215546Sopenharmony_ci
4204bf215546Sopenharmony_cistatic inline void
4205bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4206bf215546Sopenharmony_ci{
4207bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4208bf215546Sopenharmony_ci    /* skip val->scalarBlockLayout */
4209bf215546Sopenharmony_ci}
4210bf215546Sopenharmony_ci
4211bf215546Sopenharmony_cistatic inline void
4212bf215546Sopenharmony_civn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceScalarBlockLayoutFeatures *val)
4213bf215546Sopenharmony_ci{
4214bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES);
4215bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES });
4216bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_pnext_partial(enc, val->pNext);
4217bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial(enc, val);
4218bf215546Sopenharmony_ci}
4219bf215546Sopenharmony_ci
4220bf215546Sopenharmony_ci/* struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures chain */
4221bf215546Sopenharmony_ci
4222bf215546Sopenharmony_cistatic inline size_t
4223bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(const void *val)
4224bf215546Sopenharmony_ci{
4225bf215546Sopenharmony_ci    /* no known/supported struct */
4226bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4227bf215546Sopenharmony_ci}
4228bf215546Sopenharmony_ci
4229bf215546Sopenharmony_cistatic inline size_t
4230bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4231bf215546Sopenharmony_ci{
4232bf215546Sopenharmony_ci    size_t size = 0;
4233bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4234bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformBufferStandardLayout);
4235bf215546Sopenharmony_ci    return size;
4236bf215546Sopenharmony_ci}
4237bf215546Sopenharmony_ci
4238bf215546Sopenharmony_cistatic inline size_t
4239bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4240bf215546Sopenharmony_ci{
4241bf215546Sopenharmony_ci    size_t size = 0;
4242bf215546Sopenharmony_ci
4243bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4244bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(val->pNext);
4245bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(val);
4246bf215546Sopenharmony_ci
4247bf215546Sopenharmony_ci    return size;
4248bf215546Sopenharmony_ci}
4249bf215546Sopenharmony_ci
4250bf215546Sopenharmony_cistatic inline void
4251bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4252bf215546Sopenharmony_ci{
4253bf215546Sopenharmony_ci    /* no known/supported struct */
4254bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4255bf215546Sopenharmony_ci}
4256bf215546Sopenharmony_ci
4257bf215546Sopenharmony_cistatic inline void
4258bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4259bf215546Sopenharmony_ci{
4260bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4261bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout);
4262bf215546Sopenharmony_ci}
4263bf215546Sopenharmony_ci
4264bf215546Sopenharmony_cistatic inline void
4265bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4266bf215546Sopenharmony_ci{
4267bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES);
4268bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES });
4269bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(enc, val->pNext);
4270bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(enc, val);
4271bf215546Sopenharmony_ci}
4272bf215546Sopenharmony_ci
4273bf215546Sopenharmony_cistatic inline void
4274bf215546Sopenharmony_civn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
4275bf215546Sopenharmony_ci{
4276bf215546Sopenharmony_ci    /* no known/supported struct */
4277bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4278bf215546Sopenharmony_ci        assert(false);
4279bf215546Sopenharmony_ci}
4280bf215546Sopenharmony_ci
4281bf215546Sopenharmony_cistatic inline void
4282bf215546Sopenharmony_civn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4283bf215546Sopenharmony_ci{
4284bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4285bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout);
4286bf215546Sopenharmony_ci}
4287bf215546Sopenharmony_ci
4288bf215546Sopenharmony_cistatic inline void
4289bf215546Sopenharmony_civn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4290bf215546Sopenharmony_ci{
4291bf215546Sopenharmony_ci    VkStructureType stype;
4292bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4293bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES);
4294bf215546Sopenharmony_ci
4295bf215546Sopenharmony_ci    assert(val->sType == stype);
4296bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext(dec, val->pNext);
4297bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(dec, val);
4298bf215546Sopenharmony_ci}
4299bf215546Sopenharmony_ci
4300bf215546Sopenharmony_cistatic inline size_t
4301bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial(const void *val)
4302bf215546Sopenharmony_ci{
4303bf215546Sopenharmony_ci    /* no known/supported struct */
4304bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4305bf215546Sopenharmony_ci}
4306bf215546Sopenharmony_ci
4307bf215546Sopenharmony_cistatic inline size_t
4308bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4309bf215546Sopenharmony_ci{
4310bf215546Sopenharmony_ci    size_t size = 0;
4311bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4312bf215546Sopenharmony_ci    /* skip val->uniformBufferStandardLayout */
4313bf215546Sopenharmony_ci    return size;
4314bf215546Sopenharmony_ci}
4315bf215546Sopenharmony_ci
4316bf215546Sopenharmony_cistatic inline size_t
4317bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_partial(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4318bf215546Sopenharmony_ci{
4319bf215546Sopenharmony_ci    size_t size = 0;
4320bf215546Sopenharmony_ci
4321bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4322bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial(val->pNext);
4323bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial(val);
4324bf215546Sopenharmony_ci
4325bf215546Sopenharmony_ci    return size;
4326bf215546Sopenharmony_ci}
4327bf215546Sopenharmony_ci
4328bf215546Sopenharmony_cistatic inline void
4329bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4330bf215546Sopenharmony_ci{
4331bf215546Sopenharmony_ci    /* no known/supported struct */
4332bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4333bf215546Sopenharmony_ci}
4334bf215546Sopenharmony_ci
4335bf215546Sopenharmony_cistatic inline void
4336bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4337bf215546Sopenharmony_ci{
4338bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4339bf215546Sopenharmony_ci    /* skip val->uniformBufferStandardLayout */
4340bf215546Sopenharmony_ci}
4341bf215546Sopenharmony_ci
4342bf215546Sopenharmony_cistatic inline void
4343bf215546Sopenharmony_civn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *val)
4344bf215546Sopenharmony_ci{
4345bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES);
4346bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES });
4347bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_pnext_partial(enc, val->pNext);
4348bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial(enc, val);
4349bf215546Sopenharmony_ci}
4350bf215546Sopenharmony_ci
4351bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDepthClipEnableFeaturesEXT chain */
4352bf215546Sopenharmony_ci
4353bf215546Sopenharmony_cistatic inline size_t
4354bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(const void *val)
4355bf215546Sopenharmony_ci{
4356bf215546Sopenharmony_ci    /* no known/supported struct */
4357bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4358bf215546Sopenharmony_ci}
4359bf215546Sopenharmony_ci
4360bf215546Sopenharmony_cistatic inline size_t
4361bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4362bf215546Sopenharmony_ci{
4363bf215546Sopenharmony_ci    size_t size = 0;
4364bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4365bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->depthClipEnable);
4366bf215546Sopenharmony_ci    return size;
4367bf215546Sopenharmony_ci}
4368bf215546Sopenharmony_ci
4369bf215546Sopenharmony_cistatic inline size_t
4370bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4371bf215546Sopenharmony_ci{
4372bf215546Sopenharmony_ci    size_t size = 0;
4373bf215546Sopenharmony_ci
4374bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4375bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(val->pNext);
4376bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(val);
4377bf215546Sopenharmony_ci
4378bf215546Sopenharmony_ci    return size;
4379bf215546Sopenharmony_ci}
4380bf215546Sopenharmony_ci
4381bf215546Sopenharmony_cistatic inline void
4382bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
4383bf215546Sopenharmony_ci{
4384bf215546Sopenharmony_ci    /* no known/supported struct */
4385bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4386bf215546Sopenharmony_ci}
4387bf215546Sopenharmony_ci
4388bf215546Sopenharmony_cistatic inline void
4389bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4390bf215546Sopenharmony_ci{
4391bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4392bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->depthClipEnable);
4393bf215546Sopenharmony_ci}
4394bf215546Sopenharmony_ci
4395bf215546Sopenharmony_cistatic inline void
4396bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4397bf215546Sopenharmony_ci{
4398bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT);
4399bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT });
4400bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(enc, val->pNext);
4401bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(enc, val);
4402bf215546Sopenharmony_ci}
4403bf215546Sopenharmony_ci
4404bf215546Sopenharmony_cistatic inline void
4405bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
4406bf215546Sopenharmony_ci{
4407bf215546Sopenharmony_ci    /* no known/supported struct */
4408bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4409bf215546Sopenharmony_ci        assert(false);
4410bf215546Sopenharmony_ci}
4411bf215546Sopenharmony_ci
4412bf215546Sopenharmony_cistatic inline void
4413bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4414bf215546Sopenharmony_ci{
4415bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4416bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->depthClipEnable);
4417bf215546Sopenharmony_ci}
4418bf215546Sopenharmony_ci
4419bf215546Sopenharmony_cistatic inline void
4420bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4421bf215546Sopenharmony_ci{
4422bf215546Sopenharmony_ci    VkStructureType stype;
4423bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4424bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT);
4425bf215546Sopenharmony_ci
4426bf215546Sopenharmony_ci    assert(val->sType == stype);
4427bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext(dec, val->pNext);
4428bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(dec, val);
4429bf215546Sopenharmony_ci}
4430bf215546Sopenharmony_ci
4431bf215546Sopenharmony_cistatic inline size_t
4432bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial(const void *val)
4433bf215546Sopenharmony_ci{
4434bf215546Sopenharmony_ci    /* no known/supported struct */
4435bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4436bf215546Sopenharmony_ci}
4437bf215546Sopenharmony_ci
4438bf215546Sopenharmony_cistatic inline size_t
4439bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial(const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4440bf215546Sopenharmony_ci{
4441bf215546Sopenharmony_ci    size_t size = 0;
4442bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4443bf215546Sopenharmony_ci    /* skip val->depthClipEnable */
4444bf215546Sopenharmony_ci    return size;
4445bf215546Sopenharmony_ci}
4446bf215546Sopenharmony_ci
4447bf215546Sopenharmony_cistatic inline size_t
4448bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_partial(const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4449bf215546Sopenharmony_ci{
4450bf215546Sopenharmony_ci    size_t size = 0;
4451bf215546Sopenharmony_ci
4452bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4453bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial(val->pNext);
4454bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial(val);
4455bf215546Sopenharmony_ci
4456bf215546Sopenharmony_ci    return size;
4457bf215546Sopenharmony_ci}
4458bf215546Sopenharmony_ci
4459bf215546Sopenharmony_cistatic inline void
4460bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4461bf215546Sopenharmony_ci{
4462bf215546Sopenharmony_ci    /* no known/supported struct */
4463bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4464bf215546Sopenharmony_ci}
4465bf215546Sopenharmony_ci
4466bf215546Sopenharmony_cistatic inline void
4467bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4468bf215546Sopenharmony_ci{
4469bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4470bf215546Sopenharmony_ci    /* skip val->depthClipEnable */
4471bf215546Sopenharmony_ci}
4472bf215546Sopenharmony_ci
4473bf215546Sopenharmony_cistatic inline void
4474bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipEnableFeaturesEXT *val)
4475bf215546Sopenharmony_ci{
4476bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT);
4477bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT });
4478bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_pnext_partial(enc, val->pNext);
4479bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial(enc, val);
4480bf215546Sopenharmony_ci}
4481bf215546Sopenharmony_ci
4482bf215546Sopenharmony_ci/* struct VkPhysicalDeviceBufferDeviceAddressFeatures chain */
4483bf215546Sopenharmony_ci
4484bf215546Sopenharmony_cistatic inline size_t
4485bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(const void *val)
4486bf215546Sopenharmony_ci{
4487bf215546Sopenharmony_ci    /* no known/supported struct */
4488bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4489bf215546Sopenharmony_ci}
4490bf215546Sopenharmony_ci
4491bf215546Sopenharmony_cistatic inline size_t
4492bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self(const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4493bf215546Sopenharmony_ci{
4494bf215546Sopenharmony_ci    size_t size = 0;
4495bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4496bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddress);
4497bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddressCaptureReplay);
4498bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddressMultiDevice);
4499bf215546Sopenharmony_ci    return size;
4500bf215546Sopenharmony_ci}
4501bf215546Sopenharmony_ci
4502bf215546Sopenharmony_cistatic inline size_t
4503bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures(const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4504bf215546Sopenharmony_ci{
4505bf215546Sopenharmony_ci    size_t size = 0;
4506bf215546Sopenharmony_ci
4507bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4508bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(val->pNext);
4509bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self(val);
4510bf215546Sopenharmony_ci
4511bf215546Sopenharmony_ci    return size;
4512bf215546Sopenharmony_ci}
4513bf215546Sopenharmony_ci
4514bf215546Sopenharmony_cistatic inline void
4515bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4516bf215546Sopenharmony_ci{
4517bf215546Sopenharmony_ci    /* no known/supported struct */
4518bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4519bf215546Sopenharmony_ci}
4520bf215546Sopenharmony_ci
4521bf215546Sopenharmony_cistatic inline void
4522bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4523bf215546Sopenharmony_ci{
4524bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4525bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddress);
4526bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay);
4527bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice);
4528bf215546Sopenharmony_ci}
4529bf215546Sopenharmony_ci
4530bf215546Sopenharmony_cistatic inline void
4531bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4532bf215546Sopenharmony_ci{
4533bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES);
4534bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES });
4535bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(enc, val->pNext);
4536bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(enc, val);
4537bf215546Sopenharmony_ci}
4538bf215546Sopenharmony_ci
4539bf215546Sopenharmony_cistatic inline void
4540bf215546Sopenharmony_civn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
4541bf215546Sopenharmony_ci{
4542bf215546Sopenharmony_ci    /* no known/supported struct */
4543bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4544bf215546Sopenharmony_ci        assert(false);
4545bf215546Sopenharmony_ci}
4546bf215546Sopenharmony_ci
4547bf215546Sopenharmony_cistatic inline void
4548bf215546Sopenharmony_civn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4549bf215546Sopenharmony_ci{
4550bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4551bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddress);
4552bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay);
4553bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice);
4554bf215546Sopenharmony_ci}
4555bf215546Sopenharmony_ci
4556bf215546Sopenharmony_cistatic inline void
4557bf215546Sopenharmony_civn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4558bf215546Sopenharmony_ci{
4559bf215546Sopenharmony_ci    VkStructureType stype;
4560bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4561bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES);
4562bf215546Sopenharmony_ci
4563bf215546Sopenharmony_ci    assert(val->sType == stype);
4564bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext(dec, val->pNext);
4565bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(dec, val);
4566bf215546Sopenharmony_ci}
4567bf215546Sopenharmony_ci
4568bf215546Sopenharmony_cistatic inline size_t
4569bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial(const void *val)
4570bf215546Sopenharmony_ci{
4571bf215546Sopenharmony_ci    /* no known/supported struct */
4572bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4573bf215546Sopenharmony_ci}
4574bf215546Sopenharmony_ci
4575bf215546Sopenharmony_cistatic inline size_t
4576bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial(const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4577bf215546Sopenharmony_ci{
4578bf215546Sopenharmony_ci    size_t size = 0;
4579bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4580bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddress */
4581bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressCaptureReplay */
4582bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressMultiDevice */
4583bf215546Sopenharmony_ci    return size;
4584bf215546Sopenharmony_ci}
4585bf215546Sopenharmony_ci
4586bf215546Sopenharmony_cistatic inline size_t
4587bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_partial(const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4588bf215546Sopenharmony_ci{
4589bf215546Sopenharmony_ci    size_t size = 0;
4590bf215546Sopenharmony_ci
4591bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4592bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial(val->pNext);
4593bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial(val);
4594bf215546Sopenharmony_ci
4595bf215546Sopenharmony_ci    return size;
4596bf215546Sopenharmony_ci}
4597bf215546Sopenharmony_ci
4598bf215546Sopenharmony_cistatic inline void
4599bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4600bf215546Sopenharmony_ci{
4601bf215546Sopenharmony_ci    /* no known/supported struct */
4602bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4603bf215546Sopenharmony_ci}
4604bf215546Sopenharmony_ci
4605bf215546Sopenharmony_cistatic inline void
4606bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4607bf215546Sopenharmony_ci{
4608bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4609bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddress */
4610bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressCaptureReplay */
4611bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressMultiDevice */
4612bf215546Sopenharmony_ci}
4613bf215546Sopenharmony_ci
4614bf215546Sopenharmony_cistatic inline void
4615bf215546Sopenharmony_civn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceBufferDeviceAddressFeatures *val)
4616bf215546Sopenharmony_ci{
4617bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES);
4618bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES });
4619bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_pnext_partial(enc, val->pNext);
4620bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial(enc, val);
4621bf215546Sopenharmony_ci}
4622bf215546Sopenharmony_ci
4623bf215546Sopenharmony_ci/* struct VkPhysicalDeviceImagelessFramebufferFeatures chain */
4624bf215546Sopenharmony_ci
4625bf215546Sopenharmony_cistatic inline size_t
4626bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(const void *val)
4627bf215546Sopenharmony_ci{
4628bf215546Sopenharmony_ci    /* no known/supported struct */
4629bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4630bf215546Sopenharmony_ci}
4631bf215546Sopenharmony_ci
4632bf215546Sopenharmony_cistatic inline size_t
4633bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self(const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4634bf215546Sopenharmony_ci{
4635bf215546Sopenharmony_ci    size_t size = 0;
4636bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4637bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->imagelessFramebuffer);
4638bf215546Sopenharmony_ci    return size;
4639bf215546Sopenharmony_ci}
4640bf215546Sopenharmony_ci
4641bf215546Sopenharmony_cistatic inline size_t
4642bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures(const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4643bf215546Sopenharmony_ci{
4644bf215546Sopenharmony_ci    size_t size = 0;
4645bf215546Sopenharmony_ci
4646bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4647bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(val->pNext);
4648bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self(val);
4649bf215546Sopenharmony_ci
4650bf215546Sopenharmony_ci    return size;
4651bf215546Sopenharmony_ci}
4652bf215546Sopenharmony_ci
4653bf215546Sopenharmony_cistatic inline void
4654bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4655bf215546Sopenharmony_ci{
4656bf215546Sopenharmony_ci    /* no known/supported struct */
4657bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4658bf215546Sopenharmony_ci}
4659bf215546Sopenharmony_ci
4660bf215546Sopenharmony_cistatic inline void
4661bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4662bf215546Sopenharmony_ci{
4663bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4664bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->imagelessFramebuffer);
4665bf215546Sopenharmony_ci}
4666bf215546Sopenharmony_ci
4667bf215546Sopenharmony_cistatic inline void
4668bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4669bf215546Sopenharmony_ci{
4670bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES);
4671bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES });
4672bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(enc, val->pNext);
4673bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, val);
4674bf215546Sopenharmony_ci}
4675bf215546Sopenharmony_ci
4676bf215546Sopenharmony_cistatic inline void
4677bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
4678bf215546Sopenharmony_ci{
4679bf215546Sopenharmony_ci    /* no known/supported struct */
4680bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4681bf215546Sopenharmony_ci        assert(false);
4682bf215546Sopenharmony_ci}
4683bf215546Sopenharmony_ci
4684bf215546Sopenharmony_cistatic inline void
4685bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
4686bf215546Sopenharmony_ci{
4687bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4688bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->imagelessFramebuffer);
4689bf215546Sopenharmony_ci}
4690bf215546Sopenharmony_ci
4691bf215546Sopenharmony_cistatic inline void
4692bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImagelessFramebufferFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceImagelessFramebufferFeatures *val)
4693bf215546Sopenharmony_ci{
4694bf215546Sopenharmony_ci    VkStructureType stype;
4695bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4696bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES);
4697bf215546Sopenharmony_ci
4698bf215546Sopenharmony_ci    assert(val->sType == stype);
4699bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext(dec, val->pNext);
4700bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self(dec, val);
4701bf215546Sopenharmony_ci}
4702bf215546Sopenharmony_ci
4703bf215546Sopenharmony_cistatic inline size_t
4704bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial(const void *val)
4705bf215546Sopenharmony_ci{
4706bf215546Sopenharmony_ci    /* no known/supported struct */
4707bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4708bf215546Sopenharmony_ci}
4709bf215546Sopenharmony_ci
4710bf215546Sopenharmony_cistatic inline size_t
4711bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial(const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4712bf215546Sopenharmony_ci{
4713bf215546Sopenharmony_ci    size_t size = 0;
4714bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4715bf215546Sopenharmony_ci    /* skip val->imagelessFramebuffer */
4716bf215546Sopenharmony_ci    return size;
4717bf215546Sopenharmony_ci}
4718bf215546Sopenharmony_ci
4719bf215546Sopenharmony_cistatic inline size_t
4720bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_partial(const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4721bf215546Sopenharmony_ci{
4722bf215546Sopenharmony_ci    size_t size = 0;
4723bf215546Sopenharmony_ci
4724bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4725bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial(val->pNext);
4726bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial(val);
4727bf215546Sopenharmony_ci
4728bf215546Sopenharmony_ci    return size;
4729bf215546Sopenharmony_ci}
4730bf215546Sopenharmony_ci
4731bf215546Sopenharmony_cistatic inline void
4732bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4733bf215546Sopenharmony_ci{
4734bf215546Sopenharmony_ci    /* no known/supported struct */
4735bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4736bf215546Sopenharmony_ci}
4737bf215546Sopenharmony_ci
4738bf215546Sopenharmony_cistatic inline void
4739bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4740bf215546Sopenharmony_ci{
4741bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4742bf215546Sopenharmony_ci    /* skip val->imagelessFramebuffer */
4743bf215546Sopenharmony_ci}
4744bf215546Sopenharmony_ci
4745bf215546Sopenharmony_cistatic inline void
4746bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImagelessFramebufferFeatures *val)
4747bf215546Sopenharmony_ci{
4748bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES);
4749bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES });
4750bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_pnext_partial(enc, val->pNext);
4751bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial(enc, val);
4752bf215546Sopenharmony_ci}
4753bf215546Sopenharmony_ci
4754bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures chain */
4755bf215546Sopenharmony_ci
4756bf215546Sopenharmony_cistatic inline size_t
4757bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(const void *val)
4758bf215546Sopenharmony_ci{
4759bf215546Sopenharmony_ci    /* no known/supported struct */
4760bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4761bf215546Sopenharmony_ci}
4762bf215546Sopenharmony_ci
4763bf215546Sopenharmony_cistatic inline size_t
4764bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4765bf215546Sopenharmony_ci{
4766bf215546Sopenharmony_ci    size_t size = 0;
4767bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4768bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->textureCompressionASTC_HDR);
4769bf215546Sopenharmony_ci    return size;
4770bf215546Sopenharmony_ci}
4771bf215546Sopenharmony_ci
4772bf215546Sopenharmony_cistatic inline size_t
4773bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4774bf215546Sopenharmony_ci{
4775bf215546Sopenharmony_ci    size_t size = 0;
4776bf215546Sopenharmony_ci
4777bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4778bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(val->pNext);
4779bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(val);
4780bf215546Sopenharmony_ci
4781bf215546Sopenharmony_ci    return size;
4782bf215546Sopenharmony_ci}
4783bf215546Sopenharmony_ci
4784bf215546Sopenharmony_cistatic inline void
4785bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
4786bf215546Sopenharmony_ci{
4787bf215546Sopenharmony_ci    /* no known/supported struct */
4788bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4789bf215546Sopenharmony_ci}
4790bf215546Sopenharmony_ci
4791bf215546Sopenharmony_cistatic inline void
4792bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4793bf215546Sopenharmony_ci{
4794bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4795bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR);
4796bf215546Sopenharmony_ci}
4797bf215546Sopenharmony_ci
4798bf215546Sopenharmony_cistatic inline void
4799bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4800bf215546Sopenharmony_ci{
4801bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES);
4802bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES });
4803bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(enc, val->pNext);
4804bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, val);
4805bf215546Sopenharmony_ci}
4806bf215546Sopenharmony_ci
4807bf215546Sopenharmony_cistatic inline void
4808bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
4809bf215546Sopenharmony_ci{
4810bf215546Sopenharmony_ci    /* no known/supported struct */
4811bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4812bf215546Sopenharmony_ci        assert(false);
4813bf215546Sopenharmony_ci}
4814bf215546Sopenharmony_ci
4815bf215546Sopenharmony_cistatic inline void
4816bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4817bf215546Sopenharmony_ci{
4818bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4819bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR);
4820bf215546Sopenharmony_ci}
4821bf215546Sopenharmony_ci
4822bf215546Sopenharmony_cistatic inline void
4823bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4824bf215546Sopenharmony_ci{
4825bf215546Sopenharmony_ci    VkStructureType stype;
4826bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4827bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES);
4828bf215546Sopenharmony_ci
4829bf215546Sopenharmony_ci    assert(val->sType == stype);
4830bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(dec, val->pNext);
4831bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(dec, val);
4832bf215546Sopenharmony_ci}
4833bf215546Sopenharmony_ci
4834bf215546Sopenharmony_cistatic inline size_t
4835bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial(const void *val)
4836bf215546Sopenharmony_ci{
4837bf215546Sopenharmony_ci    /* no known/supported struct */
4838bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4839bf215546Sopenharmony_ci}
4840bf215546Sopenharmony_ci
4841bf215546Sopenharmony_cistatic inline size_t
4842bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4843bf215546Sopenharmony_ci{
4844bf215546Sopenharmony_ci    size_t size = 0;
4845bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4846bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_HDR */
4847bf215546Sopenharmony_ci    return size;
4848bf215546Sopenharmony_ci}
4849bf215546Sopenharmony_ci
4850bf215546Sopenharmony_cistatic inline size_t
4851bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_partial(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4852bf215546Sopenharmony_ci{
4853bf215546Sopenharmony_ci    size_t size = 0;
4854bf215546Sopenharmony_ci
4855bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4856bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial(val->pNext);
4857bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial(val);
4858bf215546Sopenharmony_ci
4859bf215546Sopenharmony_ci    return size;
4860bf215546Sopenharmony_ci}
4861bf215546Sopenharmony_ci
4862bf215546Sopenharmony_cistatic inline void
4863bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4864bf215546Sopenharmony_ci{
4865bf215546Sopenharmony_ci    /* no known/supported struct */
4866bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4867bf215546Sopenharmony_ci}
4868bf215546Sopenharmony_ci
4869bf215546Sopenharmony_cistatic inline void
4870bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4871bf215546Sopenharmony_ci{
4872bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4873bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_HDR */
4874bf215546Sopenharmony_ci}
4875bf215546Sopenharmony_ci
4876bf215546Sopenharmony_cistatic inline void
4877bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val)
4878bf215546Sopenharmony_ci{
4879bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES);
4880bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES });
4881bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial(enc, val->pNext);
4882bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial(enc, val);
4883bf215546Sopenharmony_ci}
4884bf215546Sopenharmony_ci
4885bf215546Sopenharmony_ci/* struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT chain */
4886bf215546Sopenharmony_ci
4887bf215546Sopenharmony_cistatic inline size_t
4888bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(const void *val)
4889bf215546Sopenharmony_ci{
4890bf215546Sopenharmony_ci    /* no known/supported struct */
4891bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4892bf215546Sopenharmony_ci}
4893bf215546Sopenharmony_ci
4894bf215546Sopenharmony_cistatic inline size_t
4895bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4896bf215546Sopenharmony_ci{
4897bf215546Sopenharmony_ci    size_t size = 0;
4898bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4899bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->indexTypeUint8);
4900bf215546Sopenharmony_ci    return size;
4901bf215546Sopenharmony_ci}
4902bf215546Sopenharmony_ci
4903bf215546Sopenharmony_cistatic inline size_t
4904bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4905bf215546Sopenharmony_ci{
4906bf215546Sopenharmony_ci    size_t size = 0;
4907bf215546Sopenharmony_ci
4908bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4909bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(val->pNext);
4910bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(val);
4911bf215546Sopenharmony_ci
4912bf215546Sopenharmony_ci    return size;
4913bf215546Sopenharmony_ci}
4914bf215546Sopenharmony_ci
4915bf215546Sopenharmony_cistatic inline void
4916bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
4917bf215546Sopenharmony_ci{
4918bf215546Sopenharmony_ci    /* no known/supported struct */
4919bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4920bf215546Sopenharmony_ci}
4921bf215546Sopenharmony_ci
4922bf215546Sopenharmony_cistatic inline void
4923bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4924bf215546Sopenharmony_ci{
4925bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4926bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->indexTypeUint8);
4927bf215546Sopenharmony_ci}
4928bf215546Sopenharmony_ci
4929bf215546Sopenharmony_cistatic inline void
4930bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4931bf215546Sopenharmony_ci{
4932bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT);
4933bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT });
4934bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(enc, val->pNext);
4935bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(enc, val);
4936bf215546Sopenharmony_ci}
4937bf215546Sopenharmony_ci
4938bf215546Sopenharmony_cistatic inline void
4939bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
4940bf215546Sopenharmony_ci{
4941bf215546Sopenharmony_ci    /* no known/supported struct */
4942bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
4943bf215546Sopenharmony_ci        assert(false);
4944bf215546Sopenharmony_ci}
4945bf215546Sopenharmony_ci
4946bf215546Sopenharmony_cistatic inline void
4947bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4948bf215546Sopenharmony_ci{
4949bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4950bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->indexTypeUint8);
4951bf215546Sopenharmony_ci}
4952bf215546Sopenharmony_ci
4953bf215546Sopenharmony_cistatic inline void
4954bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4955bf215546Sopenharmony_ci{
4956bf215546Sopenharmony_ci    VkStructureType stype;
4957bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
4958bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT);
4959bf215546Sopenharmony_ci
4960bf215546Sopenharmony_ci    assert(val->sType == stype);
4961bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext(dec, val->pNext);
4962bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(dec, val);
4963bf215546Sopenharmony_ci}
4964bf215546Sopenharmony_ci
4965bf215546Sopenharmony_cistatic inline size_t
4966bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial(const void *val)
4967bf215546Sopenharmony_ci{
4968bf215546Sopenharmony_ci    /* no known/supported struct */
4969bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
4970bf215546Sopenharmony_ci}
4971bf215546Sopenharmony_ci
4972bf215546Sopenharmony_cistatic inline size_t
4973bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4974bf215546Sopenharmony_ci{
4975bf215546Sopenharmony_ci    size_t size = 0;
4976bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
4977bf215546Sopenharmony_ci    /* skip val->indexTypeUint8 */
4978bf215546Sopenharmony_ci    return size;
4979bf215546Sopenharmony_ci}
4980bf215546Sopenharmony_ci
4981bf215546Sopenharmony_cistatic inline size_t
4982bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_partial(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
4983bf215546Sopenharmony_ci{
4984bf215546Sopenharmony_ci    size_t size = 0;
4985bf215546Sopenharmony_ci
4986bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
4987bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial(val->pNext);
4988bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial(val);
4989bf215546Sopenharmony_ci
4990bf215546Sopenharmony_ci    return size;
4991bf215546Sopenharmony_ci}
4992bf215546Sopenharmony_ci
4993bf215546Sopenharmony_cistatic inline void
4994bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
4995bf215546Sopenharmony_ci{
4996bf215546Sopenharmony_ci    /* no known/supported struct */
4997bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
4998bf215546Sopenharmony_ci}
4999bf215546Sopenharmony_ci
5000bf215546Sopenharmony_cistatic inline void
5001bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
5002bf215546Sopenharmony_ci{
5003bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5004bf215546Sopenharmony_ci    /* skip val->indexTypeUint8 */
5005bf215546Sopenharmony_ci}
5006bf215546Sopenharmony_ci
5007bf215546Sopenharmony_cistatic inline void
5008bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *val)
5009bf215546Sopenharmony_ci{
5010bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT);
5011bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT });
5012bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_pnext_partial(enc, val->pNext);
5013bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial(enc, val);
5014bf215546Sopenharmony_ci}
5015bf215546Sopenharmony_ci
5016bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures chain */
5017bf215546Sopenharmony_ci
5018bf215546Sopenharmony_cistatic inline size_t
5019bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(const void *val)
5020bf215546Sopenharmony_ci{
5021bf215546Sopenharmony_ci    /* no known/supported struct */
5022bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5023bf215546Sopenharmony_ci}
5024bf215546Sopenharmony_ci
5025bf215546Sopenharmony_cistatic inline size_t
5026bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5027bf215546Sopenharmony_ci{
5028bf215546Sopenharmony_ci    size_t size = 0;
5029bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5030bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->separateDepthStencilLayouts);
5031bf215546Sopenharmony_ci    return size;
5032bf215546Sopenharmony_ci}
5033bf215546Sopenharmony_ci
5034bf215546Sopenharmony_cistatic inline size_t
5035bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5036bf215546Sopenharmony_ci{
5037bf215546Sopenharmony_ci    size_t size = 0;
5038bf215546Sopenharmony_ci
5039bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5040bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(val->pNext);
5041bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(val);
5042bf215546Sopenharmony_ci
5043bf215546Sopenharmony_ci    return size;
5044bf215546Sopenharmony_ci}
5045bf215546Sopenharmony_ci
5046bf215546Sopenharmony_cistatic inline void
5047bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5048bf215546Sopenharmony_ci{
5049bf215546Sopenharmony_ci    /* no known/supported struct */
5050bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5051bf215546Sopenharmony_ci}
5052bf215546Sopenharmony_ci
5053bf215546Sopenharmony_cistatic inline void
5054bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5055bf215546Sopenharmony_ci{
5056bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5057bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts);
5058bf215546Sopenharmony_ci}
5059bf215546Sopenharmony_ci
5060bf215546Sopenharmony_cistatic inline void
5061bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5062bf215546Sopenharmony_ci{
5063bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES);
5064bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES });
5065bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(enc, val->pNext);
5066bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, val);
5067bf215546Sopenharmony_ci}
5068bf215546Sopenharmony_ci
5069bf215546Sopenharmony_cistatic inline void
5070bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
5071bf215546Sopenharmony_ci{
5072bf215546Sopenharmony_ci    /* no known/supported struct */
5073bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5074bf215546Sopenharmony_ci        assert(false);
5075bf215546Sopenharmony_ci}
5076bf215546Sopenharmony_ci
5077bf215546Sopenharmony_cistatic inline void
5078bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5079bf215546Sopenharmony_ci{
5080bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5081bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts);
5082bf215546Sopenharmony_ci}
5083bf215546Sopenharmony_ci
5084bf215546Sopenharmony_cistatic inline void
5085bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5086bf215546Sopenharmony_ci{
5087bf215546Sopenharmony_ci    VkStructureType stype;
5088bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5089bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES);
5090bf215546Sopenharmony_ci
5091bf215546Sopenharmony_ci    assert(val->sType == stype);
5092bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(dec, val->pNext);
5093bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(dec, val);
5094bf215546Sopenharmony_ci}
5095bf215546Sopenharmony_ci
5096bf215546Sopenharmony_cistatic inline size_t
5097bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial(const void *val)
5098bf215546Sopenharmony_ci{
5099bf215546Sopenharmony_ci    /* no known/supported struct */
5100bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5101bf215546Sopenharmony_ci}
5102bf215546Sopenharmony_ci
5103bf215546Sopenharmony_cistatic inline size_t
5104bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5105bf215546Sopenharmony_ci{
5106bf215546Sopenharmony_ci    size_t size = 0;
5107bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5108bf215546Sopenharmony_ci    /* skip val->separateDepthStencilLayouts */
5109bf215546Sopenharmony_ci    return size;
5110bf215546Sopenharmony_ci}
5111bf215546Sopenharmony_ci
5112bf215546Sopenharmony_cistatic inline size_t
5113bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5114bf215546Sopenharmony_ci{
5115bf215546Sopenharmony_ci    size_t size = 0;
5116bf215546Sopenharmony_ci
5117bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5118bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial(val->pNext);
5119bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial(val);
5120bf215546Sopenharmony_ci
5121bf215546Sopenharmony_ci    return size;
5122bf215546Sopenharmony_ci}
5123bf215546Sopenharmony_ci
5124bf215546Sopenharmony_cistatic inline void
5125bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5126bf215546Sopenharmony_ci{
5127bf215546Sopenharmony_ci    /* no known/supported struct */
5128bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5129bf215546Sopenharmony_ci}
5130bf215546Sopenharmony_ci
5131bf215546Sopenharmony_cistatic inline void
5132bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5133bf215546Sopenharmony_ci{
5134bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5135bf215546Sopenharmony_ci    /* skip val->separateDepthStencilLayouts */
5136bf215546Sopenharmony_ci}
5137bf215546Sopenharmony_ci
5138bf215546Sopenharmony_cistatic inline void
5139bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val)
5140bf215546Sopenharmony_ci{
5141bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES);
5142bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES });
5143bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial(enc, val->pNext);
5144bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial(enc, val);
5145bf215546Sopenharmony_ci}
5146bf215546Sopenharmony_ci
5147bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures chain */
5148bf215546Sopenharmony_ci
5149bf215546Sopenharmony_cistatic inline size_t
5150bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(const void *val)
5151bf215546Sopenharmony_ci{
5152bf215546Sopenharmony_ci    /* no known/supported struct */
5153bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5154bf215546Sopenharmony_ci}
5155bf215546Sopenharmony_ci
5156bf215546Sopenharmony_cistatic inline size_t
5157bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5158bf215546Sopenharmony_ci{
5159bf215546Sopenharmony_ci    size_t size = 0;
5160bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5161bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDemoteToHelperInvocation);
5162bf215546Sopenharmony_ci    return size;
5163bf215546Sopenharmony_ci}
5164bf215546Sopenharmony_ci
5165bf215546Sopenharmony_cistatic inline size_t
5166bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5167bf215546Sopenharmony_ci{
5168bf215546Sopenharmony_ci    size_t size = 0;
5169bf215546Sopenharmony_ci
5170bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5171bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(val->pNext);
5172bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(val);
5173bf215546Sopenharmony_ci
5174bf215546Sopenharmony_ci    return size;
5175bf215546Sopenharmony_ci}
5176bf215546Sopenharmony_ci
5177bf215546Sopenharmony_cistatic inline void
5178bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5179bf215546Sopenharmony_ci{
5180bf215546Sopenharmony_ci    /* no known/supported struct */
5181bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5182bf215546Sopenharmony_ci}
5183bf215546Sopenharmony_ci
5184bf215546Sopenharmony_cistatic inline void
5185bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5186bf215546Sopenharmony_ci{
5187bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5188bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation);
5189bf215546Sopenharmony_ci}
5190bf215546Sopenharmony_ci
5191bf215546Sopenharmony_cistatic inline void
5192bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5193bf215546Sopenharmony_ci{
5194bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES);
5195bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES });
5196bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(enc, val->pNext);
5197bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, val);
5198bf215546Sopenharmony_ci}
5199bf215546Sopenharmony_ci
5200bf215546Sopenharmony_cistatic inline void
5201bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
5202bf215546Sopenharmony_ci{
5203bf215546Sopenharmony_ci    /* no known/supported struct */
5204bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5205bf215546Sopenharmony_ci        assert(false);
5206bf215546Sopenharmony_ci}
5207bf215546Sopenharmony_ci
5208bf215546Sopenharmony_cistatic inline void
5209bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5210bf215546Sopenharmony_ci{
5211bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5212bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation);
5213bf215546Sopenharmony_ci}
5214bf215546Sopenharmony_ci
5215bf215546Sopenharmony_cistatic inline void
5216bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5217bf215546Sopenharmony_ci{
5218bf215546Sopenharmony_ci    VkStructureType stype;
5219bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5220bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES);
5221bf215546Sopenharmony_ci
5222bf215546Sopenharmony_ci    assert(val->sType == stype);
5223bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(dec, val->pNext);
5224bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(dec, val);
5225bf215546Sopenharmony_ci}
5226bf215546Sopenharmony_ci
5227bf215546Sopenharmony_cistatic inline size_t
5228bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial(const void *val)
5229bf215546Sopenharmony_ci{
5230bf215546Sopenharmony_ci    /* no known/supported struct */
5231bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5232bf215546Sopenharmony_ci}
5233bf215546Sopenharmony_ci
5234bf215546Sopenharmony_cistatic inline size_t
5235bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5236bf215546Sopenharmony_ci{
5237bf215546Sopenharmony_ci    size_t size = 0;
5238bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5239bf215546Sopenharmony_ci    /* skip val->shaderDemoteToHelperInvocation */
5240bf215546Sopenharmony_ci    return size;
5241bf215546Sopenharmony_ci}
5242bf215546Sopenharmony_ci
5243bf215546Sopenharmony_cistatic inline size_t
5244bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_partial(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5245bf215546Sopenharmony_ci{
5246bf215546Sopenharmony_ci    size_t size = 0;
5247bf215546Sopenharmony_ci
5248bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5249bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial(val->pNext);
5250bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial(val);
5251bf215546Sopenharmony_ci
5252bf215546Sopenharmony_ci    return size;
5253bf215546Sopenharmony_ci}
5254bf215546Sopenharmony_ci
5255bf215546Sopenharmony_cistatic inline void
5256bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5257bf215546Sopenharmony_ci{
5258bf215546Sopenharmony_ci    /* no known/supported struct */
5259bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5260bf215546Sopenharmony_ci}
5261bf215546Sopenharmony_ci
5262bf215546Sopenharmony_cistatic inline void
5263bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5264bf215546Sopenharmony_ci{
5265bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5266bf215546Sopenharmony_ci    /* skip val->shaderDemoteToHelperInvocation */
5267bf215546Sopenharmony_ci}
5268bf215546Sopenharmony_ci
5269bf215546Sopenharmony_cistatic inline void
5270bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val)
5271bf215546Sopenharmony_ci{
5272bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES);
5273bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES });
5274bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial(enc, val->pNext);
5275bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial(enc, val);
5276bf215546Sopenharmony_ci}
5277bf215546Sopenharmony_ci
5278bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT chain */
5279bf215546Sopenharmony_ci
5280bf215546Sopenharmony_cistatic inline size_t
5281bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(const void *val)
5282bf215546Sopenharmony_ci{
5283bf215546Sopenharmony_ci    /* no known/supported struct */
5284bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5285bf215546Sopenharmony_ci}
5286bf215546Sopenharmony_ci
5287bf215546Sopenharmony_cistatic inline size_t
5288bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5289bf215546Sopenharmony_ci{
5290bf215546Sopenharmony_ci    size_t size = 0;
5291bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5292bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->texelBufferAlignment);
5293bf215546Sopenharmony_ci    return size;
5294bf215546Sopenharmony_ci}
5295bf215546Sopenharmony_ci
5296bf215546Sopenharmony_cistatic inline size_t
5297bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5298bf215546Sopenharmony_ci{
5299bf215546Sopenharmony_ci    size_t size = 0;
5300bf215546Sopenharmony_ci
5301bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5302bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(val->pNext);
5303bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(val);
5304bf215546Sopenharmony_ci
5305bf215546Sopenharmony_ci    return size;
5306bf215546Sopenharmony_ci}
5307bf215546Sopenharmony_ci
5308bf215546Sopenharmony_cistatic inline void
5309bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5310bf215546Sopenharmony_ci{
5311bf215546Sopenharmony_ci    /* no known/supported struct */
5312bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5313bf215546Sopenharmony_ci}
5314bf215546Sopenharmony_ci
5315bf215546Sopenharmony_cistatic inline void
5316bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5317bf215546Sopenharmony_ci{
5318bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5319bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->texelBufferAlignment);
5320bf215546Sopenharmony_ci}
5321bf215546Sopenharmony_ci
5322bf215546Sopenharmony_cistatic inline void
5323bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5324bf215546Sopenharmony_ci{
5325bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT);
5326bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT });
5327bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(enc, val->pNext);
5328bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, val);
5329bf215546Sopenharmony_ci}
5330bf215546Sopenharmony_ci
5331bf215546Sopenharmony_cistatic inline void
5332bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
5333bf215546Sopenharmony_ci{
5334bf215546Sopenharmony_ci    /* no known/supported struct */
5335bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5336bf215546Sopenharmony_ci        assert(false);
5337bf215546Sopenharmony_ci}
5338bf215546Sopenharmony_ci
5339bf215546Sopenharmony_cistatic inline void
5340bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5341bf215546Sopenharmony_ci{
5342bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5343bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->texelBufferAlignment);
5344bf215546Sopenharmony_ci}
5345bf215546Sopenharmony_ci
5346bf215546Sopenharmony_cistatic inline void
5347bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5348bf215546Sopenharmony_ci{
5349bf215546Sopenharmony_ci    VkStructureType stype;
5350bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5351bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT);
5352bf215546Sopenharmony_ci
5353bf215546Sopenharmony_ci    assert(val->sType == stype);
5354bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(dec, val->pNext);
5355bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(dec, val);
5356bf215546Sopenharmony_ci}
5357bf215546Sopenharmony_ci
5358bf215546Sopenharmony_cistatic inline size_t
5359bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial(const void *val)
5360bf215546Sopenharmony_ci{
5361bf215546Sopenharmony_ci    /* no known/supported struct */
5362bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5363bf215546Sopenharmony_ci}
5364bf215546Sopenharmony_ci
5365bf215546Sopenharmony_cistatic inline size_t
5366bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5367bf215546Sopenharmony_ci{
5368bf215546Sopenharmony_ci    size_t size = 0;
5369bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5370bf215546Sopenharmony_ci    /* skip val->texelBufferAlignment */
5371bf215546Sopenharmony_ci    return size;
5372bf215546Sopenharmony_ci}
5373bf215546Sopenharmony_ci
5374bf215546Sopenharmony_cistatic inline size_t
5375bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_partial(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5376bf215546Sopenharmony_ci{
5377bf215546Sopenharmony_ci    size_t size = 0;
5378bf215546Sopenharmony_ci
5379bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5380bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial(val->pNext);
5381bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial(val);
5382bf215546Sopenharmony_ci
5383bf215546Sopenharmony_ci    return size;
5384bf215546Sopenharmony_ci}
5385bf215546Sopenharmony_ci
5386bf215546Sopenharmony_cistatic inline void
5387bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5388bf215546Sopenharmony_ci{
5389bf215546Sopenharmony_ci    /* no known/supported struct */
5390bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5391bf215546Sopenharmony_ci}
5392bf215546Sopenharmony_ci
5393bf215546Sopenharmony_cistatic inline void
5394bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5395bf215546Sopenharmony_ci{
5396bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5397bf215546Sopenharmony_ci    /* skip val->texelBufferAlignment */
5398bf215546Sopenharmony_ci}
5399bf215546Sopenharmony_ci
5400bf215546Sopenharmony_cistatic inline void
5401bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val)
5402bf215546Sopenharmony_ci{
5403bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT);
5404bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT });
5405bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial(enc, val->pNext);
5406bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial(enc, val);
5407bf215546Sopenharmony_ci}
5408bf215546Sopenharmony_ci
5409bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSubgroupSizeControlFeatures chain */
5410bf215546Sopenharmony_ci
5411bf215546Sopenharmony_cistatic inline size_t
5412bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(const void *val)
5413bf215546Sopenharmony_ci{
5414bf215546Sopenharmony_ci    /* no known/supported struct */
5415bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5416bf215546Sopenharmony_ci}
5417bf215546Sopenharmony_ci
5418bf215546Sopenharmony_cistatic inline size_t
5419bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self(const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5420bf215546Sopenharmony_ci{
5421bf215546Sopenharmony_ci    size_t size = 0;
5422bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5423bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->subgroupSizeControl);
5424bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->computeFullSubgroups);
5425bf215546Sopenharmony_ci    return size;
5426bf215546Sopenharmony_ci}
5427bf215546Sopenharmony_ci
5428bf215546Sopenharmony_cistatic inline size_t
5429bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures(const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5430bf215546Sopenharmony_ci{
5431bf215546Sopenharmony_ci    size_t size = 0;
5432bf215546Sopenharmony_ci
5433bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5434bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(val->pNext);
5435bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self(val);
5436bf215546Sopenharmony_ci
5437bf215546Sopenharmony_ci    return size;
5438bf215546Sopenharmony_ci}
5439bf215546Sopenharmony_ci
5440bf215546Sopenharmony_cistatic inline void
5441bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5442bf215546Sopenharmony_ci{
5443bf215546Sopenharmony_ci    /* no known/supported struct */
5444bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5445bf215546Sopenharmony_ci}
5446bf215546Sopenharmony_ci
5447bf215546Sopenharmony_cistatic inline void
5448bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5449bf215546Sopenharmony_ci{
5450bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5451bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->subgroupSizeControl);
5452bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->computeFullSubgroups);
5453bf215546Sopenharmony_ci}
5454bf215546Sopenharmony_ci
5455bf215546Sopenharmony_cistatic inline void
5456bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5457bf215546Sopenharmony_ci{
5458bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES);
5459bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES });
5460bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(enc, val->pNext);
5461bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, val);
5462bf215546Sopenharmony_ci}
5463bf215546Sopenharmony_ci
5464bf215546Sopenharmony_cistatic inline void
5465bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
5466bf215546Sopenharmony_ci{
5467bf215546Sopenharmony_ci    /* no known/supported struct */
5468bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5469bf215546Sopenharmony_ci        assert(false);
5470bf215546Sopenharmony_ci}
5471bf215546Sopenharmony_ci
5472bf215546Sopenharmony_cistatic inline void
5473bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5474bf215546Sopenharmony_ci{
5475bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5476bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->subgroupSizeControl);
5477bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->computeFullSubgroups);
5478bf215546Sopenharmony_ci}
5479bf215546Sopenharmony_ci
5480bf215546Sopenharmony_cistatic inline void
5481bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5482bf215546Sopenharmony_ci{
5483bf215546Sopenharmony_ci    VkStructureType stype;
5484bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5485bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES);
5486bf215546Sopenharmony_ci
5487bf215546Sopenharmony_ci    assert(val->sType == stype);
5488bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(dec, val->pNext);
5489bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(dec, val);
5490bf215546Sopenharmony_ci}
5491bf215546Sopenharmony_ci
5492bf215546Sopenharmony_cistatic inline size_t
5493bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial(const void *val)
5494bf215546Sopenharmony_ci{
5495bf215546Sopenharmony_ci    /* no known/supported struct */
5496bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5497bf215546Sopenharmony_ci}
5498bf215546Sopenharmony_ci
5499bf215546Sopenharmony_cistatic inline size_t
5500bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial(const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5501bf215546Sopenharmony_ci{
5502bf215546Sopenharmony_ci    size_t size = 0;
5503bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5504bf215546Sopenharmony_ci    /* skip val->subgroupSizeControl */
5505bf215546Sopenharmony_ci    /* skip val->computeFullSubgroups */
5506bf215546Sopenharmony_ci    return size;
5507bf215546Sopenharmony_ci}
5508bf215546Sopenharmony_ci
5509bf215546Sopenharmony_cistatic inline size_t
5510bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_partial(const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5511bf215546Sopenharmony_ci{
5512bf215546Sopenharmony_ci    size_t size = 0;
5513bf215546Sopenharmony_ci
5514bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5515bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial(val->pNext);
5516bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial(val);
5517bf215546Sopenharmony_ci
5518bf215546Sopenharmony_ci    return size;
5519bf215546Sopenharmony_ci}
5520bf215546Sopenharmony_ci
5521bf215546Sopenharmony_cistatic inline void
5522bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5523bf215546Sopenharmony_ci{
5524bf215546Sopenharmony_ci    /* no known/supported struct */
5525bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5526bf215546Sopenharmony_ci}
5527bf215546Sopenharmony_ci
5528bf215546Sopenharmony_cistatic inline void
5529bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5530bf215546Sopenharmony_ci{
5531bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5532bf215546Sopenharmony_ci    /* skip val->subgroupSizeControl */
5533bf215546Sopenharmony_ci    /* skip val->computeFullSubgroups */
5534bf215546Sopenharmony_ci}
5535bf215546Sopenharmony_ci
5536bf215546Sopenharmony_cistatic inline void
5537bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val)
5538bf215546Sopenharmony_ci{
5539bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES);
5540bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES });
5541bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial(enc, val->pNext);
5542bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial(enc, val);
5543bf215546Sopenharmony_ci}
5544bf215546Sopenharmony_ci
5545bf215546Sopenharmony_ci/* struct VkPhysicalDeviceLineRasterizationFeaturesEXT chain */
5546bf215546Sopenharmony_ci
5547bf215546Sopenharmony_cistatic inline size_t
5548bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(const void *val)
5549bf215546Sopenharmony_ci{
5550bf215546Sopenharmony_ci    /* no known/supported struct */
5551bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5552bf215546Sopenharmony_ci}
5553bf215546Sopenharmony_ci
5554bf215546Sopenharmony_cistatic inline size_t
5555bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5556bf215546Sopenharmony_ci{
5557bf215546Sopenharmony_ci    size_t size = 0;
5558bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5559bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->rectangularLines);
5560bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bresenhamLines);
5561bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->smoothLines);
5562bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->stippledRectangularLines);
5563bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->stippledBresenhamLines);
5564bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->stippledSmoothLines);
5565bf215546Sopenharmony_ci    return size;
5566bf215546Sopenharmony_ci}
5567bf215546Sopenharmony_ci
5568bf215546Sopenharmony_cistatic inline size_t
5569bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT(const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5570bf215546Sopenharmony_ci{
5571bf215546Sopenharmony_ci    size_t size = 0;
5572bf215546Sopenharmony_ci
5573bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5574bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(val->pNext);
5575bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(val);
5576bf215546Sopenharmony_ci
5577bf215546Sopenharmony_ci    return size;
5578bf215546Sopenharmony_ci}
5579bf215546Sopenharmony_ci
5580bf215546Sopenharmony_cistatic inline void
5581bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
5582bf215546Sopenharmony_ci{
5583bf215546Sopenharmony_ci    /* no known/supported struct */
5584bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5585bf215546Sopenharmony_ci}
5586bf215546Sopenharmony_ci
5587bf215546Sopenharmony_cistatic inline void
5588bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5589bf215546Sopenharmony_ci{
5590bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5591bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->rectangularLines);
5592bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bresenhamLines);
5593bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->smoothLines);
5594bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->stippledRectangularLines);
5595bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->stippledBresenhamLines);
5596bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->stippledSmoothLines);
5597bf215546Sopenharmony_ci}
5598bf215546Sopenharmony_ci
5599bf215546Sopenharmony_cistatic inline void
5600bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5601bf215546Sopenharmony_ci{
5602bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT);
5603bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT });
5604bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(enc, val->pNext);
5605bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, val);
5606bf215546Sopenharmony_ci}
5607bf215546Sopenharmony_ci
5608bf215546Sopenharmony_cistatic inline void
5609bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
5610bf215546Sopenharmony_ci{
5611bf215546Sopenharmony_ci    /* no known/supported struct */
5612bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5613bf215546Sopenharmony_ci        assert(false);
5614bf215546Sopenharmony_ci}
5615bf215546Sopenharmony_ci
5616bf215546Sopenharmony_cistatic inline void
5617bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5618bf215546Sopenharmony_ci{
5619bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5620bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->rectangularLines);
5621bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bresenhamLines);
5622bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->smoothLines);
5623bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->stippledRectangularLines);
5624bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->stippledBresenhamLines);
5625bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->stippledSmoothLines);
5626bf215546Sopenharmony_ci}
5627bf215546Sopenharmony_ci
5628bf215546Sopenharmony_cistatic inline void
5629bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5630bf215546Sopenharmony_ci{
5631bf215546Sopenharmony_ci    VkStructureType stype;
5632bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5633bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT);
5634bf215546Sopenharmony_ci
5635bf215546Sopenharmony_ci    assert(val->sType == stype);
5636bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(dec, val->pNext);
5637bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(dec, val);
5638bf215546Sopenharmony_ci}
5639bf215546Sopenharmony_ci
5640bf215546Sopenharmony_cistatic inline size_t
5641bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial(const void *val)
5642bf215546Sopenharmony_ci{
5643bf215546Sopenharmony_ci    /* no known/supported struct */
5644bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5645bf215546Sopenharmony_ci}
5646bf215546Sopenharmony_ci
5647bf215546Sopenharmony_cistatic inline size_t
5648bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial(const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5649bf215546Sopenharmony_ci{
5650bf215546Sopenharmony_ci    size_t size = 0;
5651bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5652bf215546Sopenharmony_ci    /* skip val->rectangularLines */
5653bf215546Sopenharmony_ci    /* skip val->bresenhamLines */
5654bf215546Sopenharmony_ci    /* skip val->smoothLines */
5655bf215546Sopenharmony_ci    /* skip val->stippledRectangularLines */
5656bf215546Sopenharmony_ci    /* skip val->stippledBresenhamLines */
5657bf215546Sopenharmony_ci    /* skip val->stippledSmoothLines */
5658bf215546Sopenharmony_ci    return size;
5659bf215546Sopenharmony_ci}
5660bf215546Sopenharmony_ci
5661bf215546Sopenharmony_cistatic inline size_t
5662bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_partial(const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5663bf215546Sopenharmony_ci{
5664bf215546Sopenharmony_ci    size_t size = 0;
5665bf215546Sopenharmony_ci
5666bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5667bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial(val->pNext);
5668bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial(val);
5669bf215546Sopenharmony_ci
5670bf215546Sopenharmony_ci    return size;
5671bf215546Sopenharmony_ci}
5672bf215546Sopenharmony_ci
5673bf215546Sopenharmony_cistatic inline void
5674bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5675bf215546Sopenharmony_ci{
5676bf215546Sopenharmony_ci    /* no known/supported struct */
5677bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5678bf215546Sopenharmony_ci}
5679bf215546Sopenharmony_ci
5680bf215546Sopenharmony_cistatic inline void
5681bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5682bf215546Sopenharmony_ci{
5683bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5684bf215546Sopenharmony_ci    /* skip val->rectangularLines */
5685bf215546Sopenharmony_ci    /* skip val->bresenhamLines */
5686bf215546Sopenharmony_ci    /* skip val->smoothLines */
5687bf215546Sopenharmony_ci    /* skip val->stippledRectangularLines */
5688bf215546Sopenharmony_ci    /* skip val->stippledBresenhamLines */
5689bf215546Sopenharmony_ci    /* skip val->stippledSmoothLines */
5690bf215546Sopenharmony_ci}
5691bf215546Sopenharmony_ci
5692bf215546Sopenharmony_cistatic inline void
5693bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
5694bf215546Sopenharmony_ci{
5695bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT);
5696bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT });
5697bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial(enc, val->pNext);
5698bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial(enc, val);
5699bf215546Sopenharmony_ci}
5700bf215546Sopenharmony_ci
5701bf215546Sopenharmony_ci/* struct VkPhysicalDevicePipelineCreationCacheControlFeatures chain */
5702bf215546Sopenharmony_ci
5703bf215546Sopenharmony_cistatic inline size_t
5704bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(const void *val)
5705bf215546Sopenharmony_ci{
5706bf215546Sopenharmony_ci    /* no known/supported struct */
5707bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5708bf215546Sopenharmony_ci}
5709bf215546Sopenharmony_ci
5710bf215546Sopenharmony_cistatic inline size_t
5711bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5712bf215546Sopenharmony_ci{
5713bf215546Sopenharmony_ci    size_t size = 0;
5714bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5715bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->pipelineCreationCacheControl);
5716bf215546Sopenharmony_ci    return size;
5717bf215546Sopenharmony_ci}
5718bf215546Sopenharmony_ci
5719bf215546Sopenharmony_cistatic inline size_t
5720bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures(const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5721bf215546Sopenharmony_ci{
5722bf215546Sopenharmony_ci    size_t size = 0;
5723bf215546Sopenharmony_ci
5724bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5725bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(val->pNext);
5726bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(val);
5727bf215546Sopenharmony_ci
5728bf215546Sopenharmony_ci    return size;
5729bf215546Sopenharmony_ci}
5730bf215546Sopenharmony_ci
5731bf215546Sopenharmony_cistatic inline void
5732bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
5733bf215546Sopenharmony_ci{
5734bf215546Sopenharmony_ci    /* no known/supported struct */
5735bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5736bf215546Sopenharmony_ci}
5737bf215546Sopenharmony_ci
5738bf215546Sopenharmony_cistatic inline void
5739bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5740bf215546Sopenharmony_ci{
5741bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5742bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl);
5743bf215546Sopenharmony_ci}
5744bf215546Sopenharmony_ci
5745bf215546Sopenharmony_cistatic inline void
5746bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5747bf215546Sopenharmony_ci{
5748bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES);
5749bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES });
5750bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(enc, val->pNext);
5751bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, val);
5752bf215546Sopenharmony_ci}
5753bf215546Sopenharmony_ci
5754bf215546Sopenharmony_cistatic inline void
5755bf215546Sopenharmony_civn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
5756bf215546Sopenharmony_ci{
5757bf215546Sopenharmony_ci    /* no known/supported struct */
5758bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5759bf215546Sopenharmony_ci        assert(false);
5760bf215546Sopenharmony_ci}
5761bf215546Sopenharmony_ci
5762bf215546Sopenharmony_cistatic inline void
5763bf215546Sopenharmony_civn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5764bf215546Sopenharmony_ci{
5765bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5766bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl);
5767bf215546Sopenharmony_ci}
5768bf215546Sopenharmony_ci
5769bf215546Sopenharmony_cistatic inline void
5770bf215546Sopenharmony_civn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5771bf215546Sopenharmony_ci{
5772bf215546Sopenharmony_ci    VkStructureType stype;
5773bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5774bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES);
5775bf215546Sopenharmony_ci
5776bf215546Sopenharmony_ci    assert(val->sType == stype);
5777bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(dec, val->pNext);
5778bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(dec, val);
5779bf215546Sopenharmony_ci}
5780bf215546Sopenharmony_ci
5781bf215546Sopenharmony_cistatic inline size_t
5782bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial(const void *val)
5783bf215546Sopenharmony_ci{
5784bf215546Sopenharmony_ci    /* no known/supported struct */
5785bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5786bf215546Sopenharmony_ci}
5787bf215546Sopenharmony_ci
5788bf215546Sopenharmony_cistatic inline size_t
5789bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial(const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5790bf215546Sopenharmony_ci{
5791bf215546Sopenharmony_ci    size_t size = 0;
5792bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5793bf215546Sopenharmony_ci    /* skip val->pipelineCreationCacheControl */
5794bf215546Sopenharmony_ci    return size;
5795bf215546Sopenharmony_ci}
5796bf215546Sopenharmony_ci
5797bf215546Sopenharmony_cistatic inline size_t
5798bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_partial(const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5799bf215546Sopenharmony_ci{
5800bf215546Sopenharmony_ci    size_t size = 0;
5801bf215546Sopenharmony_ci
5802bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5803bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial(val->pNext);
5804bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial(val);
5805bf215546Sopenharmony_ci
5806bf215546Sopenharmony_ci    return size;
5807bf215546Sopenharmony_ci}
5808bf215546Sopenharmony_ci
5809bf215546Sopenharmony_cistatic inline void
5810bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5811bf215546Sopenharmony_ci{
5812bf215546Sopenharmony_ci    /* no known/supported struct */
5813bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5814bf215546Sopenharmony_ci}
5815bf215546Sopenharmony_ci
5816bf215546Sopenharmony_cistatic inline void
5817bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5818bf215546Sopenharmony_ci{
5819bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5820bf215546Sopenharmony_ci    /* skip val->pipelineCreationCacheControl */
5821bf215546Sopenharmony_ci}
5822bf215546Sopenharmony_ci
5823bf215546Sopenharmony_cistatic inline void
5824bf215546Sopenharmony_civn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val)
5825bf215546Sopenharmony_ci{
5826bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES);
5827bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES });
5828bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial(enc, val->pNext);
5829bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial(enc, val);
5830bf215546Sopenharmony_ci}
5831bf215546Sopenharmony_ci
5832bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan11Features chain */
5833bf215546Sopenharmony_ci
5834bf215546Sopenharmony_cistatic inline size_t
5835bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features_pnext(const void *val)
5836bf215546Sopenharmony_ci{
5837bf215546Sopenharmony_ci    /* no known/supported struct */
5838bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5839bf215546Sopenharmony_ci}
5840bf215546Sopenharmony_ci
5841bf215546Sopenharmony_cistatic inline size_t
5842bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features_self(const VkPhysicalDeviceVulkan11Features *val)
5843bf215546Sopenharmony_ci{
5844bf215546Sopenharmony_ci    size_t size = 0;
5845bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5846bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageBuffer16BitAccess);
5847bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformAndStorageBuffer16BitAccess);
5848bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storagePushConstant16);
5849bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageInputOutput16);
5850bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiview);
5851bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiviewGeometryShader);
5852bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->multiviewTessellationShader);
5853bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->variablePointersStorageBuffer);
5854bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->variablePointers);
5855bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->protectedMemory);
5856bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->samplerYcbcrConversion);
5857bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDrawParameters);
5858bf215546Sopenharmony_ci    return size;
5859bf215546Sopenharmony_ci}
5860bf215546Sopenharmony_ci
5861bf215546Sopenharmony_cistatic inline size_t
5862bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features(const VkPhysicalDeviceVulkan11Features *val)
5863bf215546Sopenharmony_ci{
5864bf215546Sopenharmony_ci    size_t size = 0;
5865bf215546Sopenharmony_ci
5866bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5867bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Features_pnext(val->pNext);
5868bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Features_self(val);
5869bf215546Sopenharmony_ci
5870bf215546Sopenharmony_ci    return size;
5871bf215546Sopenharmony_ci}
5872bf215546Sopenharmony_ci
5873bf215546Sopenharmony_cistatic inline void
5874bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_encoder *enc, const void *val)
5875bf215546Sopenharmony_ci{
5876bf215546Sopenharmony_ci    /* no known/supported struct */
5877bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5878bf215546Sopenharmony_ci}
5879bf215546Sopenharmony_ci
5880bf215546Sopenharmony_cistatic inline void
5881bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
5882bf215546Sopenharmony_ci{
5883bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5884bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess);
5885bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess);
5886bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storagePushConstant16);
5887bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageInputOutput16);
5888bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiview);
5889bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiviewGeometryShader);
5890bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->multiviewTessellationShader);
5891bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer);
5892bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->variablePointers);
5893bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->protectedMemory);
5894bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->samplerYcbcrConversion);
5895bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderDrawParameters);
5896bf215546Sopenharmony_ci}
5897bf215546Sopenharmony_ci
5898bf215546Sopenharmony_cistatic inline void
5899bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
5900bf215546Sopenharmony_ci{
5901bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES);
5902bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES });
5903bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Features_pnext(enc, val->pNext);
5904bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, val);
5905bf215546Sopenharmony_ci}
5906bf215546Sopenharmony_ci
5907bf215546Sopenharmony_cistatic inline void
5908bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_decoder *dec, const void *val)
5909bf215546Sopenharmony_ci{
5910bf215546Sopenharmony_ci    /* no known/supported struct */
5911bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
5912bf215546Sopenharmony_ci        assert(false);
5913bf215546Sopenharmony_ci}
5914bf215546Sopenharmony_ci
5915bf215546Sopenharmony_cistatic inline void
5916bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
5917bf215546Sopenharmony_ci{
5918bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5919bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess);
5920bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess);
5921bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storagePushConstant16);
5922bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageInputOutput16);
5923bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiview);
5924bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiviewGeometryShader);
5925bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->multiviewTessellationShader);
5926bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer);
5927bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->variablePointers);
5928bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->protectedMemory);
5929bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->samplerYcbcrConversion);
5930bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDrawParameters);
5931bf215546Sopenharmony_ci}
5932bf215546Sopenharmony_ci
5933bf215546Sopenharmony_cistatic inline void
5934bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Features(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val)
5935bf215546Sopenharmony_ci{
5936bf215546Sopenharmony_ci    VkStructureType stype;
5937bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
5938bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES);
5939bf215546Sopenharmony_ci
5940bf215546Sopenharmony_ci    assert(val->sType == stype);
5941bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan11Features_pnext(dec, val->pNext);
5942bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan11Features_self(dec, val);
5943bf215546Sopenharmony_ci}
5944bf215546Sopenharmony_ci
5945bf215546Sopenharmony_cistatic inline size_t
5946bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features_pnext_partial(const void *val)
5947bf215546Sopenharmony_ci{
5948bf215546Sopenharmony_ci    /* no known/supported struct */
5949bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
5950bf215546Sopenharmony_ci}
5951bf215546Sopenharmony_ci
5952bf215546Sopenharmony_cistatic inline size_t
5953bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features_self_partial(const VkPhysicalDeviceVulkan11Features *val)
5954bf215546Sopenharmony_ci{
5955bf215546Sopenharmony_ci    size_t size = 0;
5956bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5957bf215546Sopenharmony_ci    /* skip val->storageBuffer16BitAccess */
5958bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer16BitAccess */
5959bf215546Sopenharmony_ci    /* skip val->storagePushConstant16 */
5960bf215546Sopenharmony_ci    /* skip val->storageInputOutput16 */
5961bf215546Sopenharmony_ci    /* skip val->multiview */
5962bf215546Sopenharmony_ci    /* skip val->multiviewGeometryShader */
5963bf215546Sopenharmony_ci    /* skip val->multiviewTessellationShader */
5964bf215546Sopenharmony_ci    /* skip val->variablePointersStorageBuffer */
5965bf215546Sopenharmony_ci    /* skip val->variablePointers */
5966bf215546Sopenharmony_ci    /* skip val->protectedMemory */
5967bf215546Sopenharmony_ci    /* skip val->samplerYcbcrConversion */
5968bf215546Sopenharmony_ci    /* skip val->shaderDrawParameters */
5969bf215546Sopenharmony_ci    return size;
5970bf215546Sopenharmony_ci}
5971bf215546Sopenharmony_ci
5972bf215546Sopenharmony_cistatic inline size_t
5973bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Features_partial(const VkPhysicalDeviceVulkan11Features *val)
5974bf215546Sopenharmony_ci{
5975bf215546Sopenharmony_ci    size_t size = 0;
5976bf215546Sopenharmony_ci
5977bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
5978bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Features_pnext_partial(val->pNext);
5979bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Features_self_partial(val);
5980bf215546Sopenharmony_ci
5981bf215546Sopenharmony_ci    return size;
5982bf215546Sopenharmony_ci}
5983bf215546Sopenharmony_ci
5984bf215546Sopenharmony_cistatic inline void
5985bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
5986bf215546Sopenharmony_ci{
5987bf215546Sopenharmony_ci    /* no known/supported struct */
5988bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
5989bf215546Sopenharmony_ci}
5990bf215546Sopenharmony_ci
5991bf215546Sopenharmony_cistatic inline void
5992bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
5993bf215546Sopenharmony_ci{
5994bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
5995bf215546Sopenharmony_ci    /* skip val->storageBuffer16BitAccess */
5996bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer16BitAccess */
5997bf215546Sopenharmony_ci    /* skip val->storagePushConstant16 */
5998bf215546Sopenharmony_ci    /* skip val->storageInputOutput16 */
5999bf215546Sopenharmony_ci    /* skip val->multiview */
6000bf215546Sopenharmony_ci    /* skip val->multiviewGeometryShader */
6001bf215546Sopenharmony_ci    /* skip val->multiviewTessellationShader */
6002bf215546Sopenharmony_ci    /* skip val->variablePointersStorageBuffer */
6003bf215546Sopenharmony_ci    /* skip val->variablePointers */
6004bf215546Sopenharmony_ci    /* skip val->protectedMemory */
6005bf215546Sopenharmony_ci    /* skip val->samplerYcbcrConversion */
6006bf215546Sopenharmony_ci    /* skip val->shaderDrawParameters */
6007bf215546Sopenharmony_ci}
6008bf215546Sopenharmony_ci
6009bf215546Sopenharmony_cistatic inline void
6010bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val)
6011bf215546Sopenharmony_ci{
6012bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES);
6013bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES });
6014bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Features_pnext_partial(enc, val->pNext);
6015bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Features_self_partial(enc, val);
6016bf215546Sopenharmony_ci}
6017bf215546Sopenharmony_ci
6018bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan12Features chain */
6019bf215546Sopenharmony_ci
6020bf215546Sopenharmony_cistatic inline size_t
6021bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features_pnext(const void *val)
6022bf215546Sopenharmony_ci{
6023bf215546Sopenharmony_ci    /* no known/supported struct */
6024bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6025bf215546Sopenharmony_ci}
6026bf215546Sopenharmony_ci
6027bf215546Sopenharmony_cistatic inline size_t
6028bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features_self(const VkPhysicalDeviceVulkan12Features *val)
6029bf215546Sopenharmony_ci{
6030bf215546Sopenharmony_ci    size_t size = 0;
6031bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6032bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->samplerMirrorClampToEdge);
6033bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->drawIndirectCount);
6034bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageBuffer8BitAccess);
6035bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformAndStorageBuffer8BitAccess);
6036bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storagePushConstant8);
6037bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderBufferInt64Atomics);
6038bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSharedInt64Atomics);
6039bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderFloat16);
6040bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInt8);
6041bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorIndexing);
6042bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayDynamicIndexing);
6043bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformTexelBufferArrayDynamicIndexing);
6044bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageTexelBufferArrayDynamicIndexing);
6045bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformBufferArrayNonUniformIndexing);
6046bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSampledImageArrayNonUniformIndexing);
6047bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageBufferArrayNonUniformIndexing);
6048bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageArrayNonUniformIndexing);
6049bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayNonUniformIndexing);
6050bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformTexelBufferArrayNonUniformIndexing);
6051bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageTexelBufferArrayNonUniformIndexing);
6052bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUniformBufferUpdateAfterBind);
6053bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingSampledImageUpdateAfterBind);
6054bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageImageUpdateAfterBind);
6055bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageBufferUpdateAfterBind);
6056bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUniformTexelBufferUpdateAfterBind);
6057bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingStorageTexelBufferUpdateAfterBind);
6058bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingUpdateUnusedWhilePending);
6059bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingPartiallyBound);
6060bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingVariableDescriptorCount);
6061bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->runtimeDescriptorArray);
6062bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->samplerFilterMinmax);
6063bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->scalarBlockLayout);
6064bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->imagelessFramebuffer);
6065bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformBufferStandardLayout);
6066bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSubgroupExtendedTypes);
6067bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->separateDepthStencilLayouts);
6068bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->hostQueryReset);
6069bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->timelineSemaphore);
6070bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddress);
6071bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddressCaptureReplay);
6072bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->bufferDeviceAddressMultiDevice);
6073bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModel);
6074bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModelDeviceScope);
6075bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->vulkanMemoryModelAvailabilityVisibilityChains);
6076bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderOutputViewportIndex);
6077bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderOutputLayer);
6078bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->subgroupBroadcastDynamicId);
6079bf215546Sopenharmony_ci    return size;
6080bf215546Sopenharmony_ci}
6081bf215546Sopenharmony_ci
6082bf215546Sopenharmony_cistatic inline size_t
6083bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features(const VkPhysicalDeviceVulkan12Features *val)
6084bf215546Sopenharmony_ci{
6085bf215546Sopenharmony_ci    size_t size = 0;
6086bf215546Sopenharmony_ci
6087bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6088bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Features_pnext(val->pNext);
6089bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Features_self(val);
6090bf215546Sopenharmony_ci
6091bf215546Sopenharmony_ci    return size;
6092bf215546Sopenharmony_ci}
6093bf215546Sopenharmony_ci
6094bf215546Sopenharmony_cistatic inline void
6095bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_encoder *enc, const void *val)
6096bf215546Sopenharmony_ci{
6097bf215546Sopenharmony_ci    /* no known/supported struct */
6098bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6099bf215546Sopenharmony_ci}
6100bf215546Sopenharmony_ci
6101bf215546Sopenharmony_cistatic inline void
6102bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
6103bf215546Sopenharmony_ci{
6104bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6105bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->samplerMirrorClampToEdge);
6106bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->drawIndirectCount);
6107bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess);
6108bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess);
6109bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->storagePushConstant8);
6110bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics);
6111bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics);
6112bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderFloat16);
6113bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInt8);
6114bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorIndexing);
6115bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing);
6116bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing);
6117bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing);
6118bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing);
6119bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing);
6120bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing);
6121bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing);
6122bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing);
6123bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
6124bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
6125bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind);
6126bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind);
6127bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind);
6128bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind);
6129bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
6130bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
6131bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending);
6132bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound);
6133bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount);
6134bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->runtimeDescriptorArray);
6135bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->samplerFilterMinmax);
6136bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->scalarBlockLayout);
6137bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->imagelessFramebuffer);
6138bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout);
6139bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes);
6140bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts);
6141bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->hostQueryReset);
6142bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->timelineSemaphore);
6143bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddress);
6144bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay);
6145bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice);
6146bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModel);
6147bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope);
6148bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains);
6149bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderOutputViewportIndex);
6150bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderOutputLayer);
6151bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->subgroupBroadcastDynamicId);
6152bf215546Sopenharmony_ci}
6153bf215546Sopenharmony_ci
6154bf215546Sopenharmony_cistatic inline void
6155bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
6156bf215546Sopenharmony_ci{
6157bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES);
6158bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES });
6159bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Features_pnext(enc, val->pNext);
6160bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, val);
6161bf215546Sopenharmony_ci}
6162bf215546Sopenharmony_ci
6163bf215546Sopenharmony_cistatic inline void
6164bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_decoder *dec, const void *val)
6165bf215546Sopenharmony_ci{
6166bf215546Sopenharmony_ci    /* no known/supported struct */
6167bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
6168bf215546Sopenharmony_ci        assert(false);
6169bf215546Sopenharmony_ci}
6170bf215546Sopenharmony_ci
6171bf215546Sopenharmony_cistatic inline void
6172bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
6173bf215546Sopenharmony_ci{
6174bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6175bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->samplerMirrorClampToEdge);
6176bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->drawIndirectCount);
6177bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess);
6178bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess);
6179bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storagePushConstant8);
6180bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics);
6181bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics);
6182bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderFloat16);
6183bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInt8);
6184bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorIndexing);
6185bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing);
6186bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing);
6187bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing);
6188bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing);
6189bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing);
6190bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing);
6191bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing);
6192bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing);
6193bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing);
6194bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing);
6195bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind);
6196bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind);
6197bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind);
6198bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind);
6199bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind);
6200bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind);
6201bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending);
6202bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound);
6203bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount);
6204bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->runtimeDescriptorArray);
6205bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->samplerFilterMinmax);
6206bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->scalarBlockLayout);
6207bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->imagelessFramebuffer);
6208bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout);
6209bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes);
6210bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts);
6211bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->hostQueryReset);
6212bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->timelineSemaphore);
6213bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddress);
6214bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay);
6215bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice);
6216bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModel);
6217bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope);
6218bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains);
6219bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderOutputViewportIndex);
6220bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderOutputLayer);
6221bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->subgroupBroadcastDynamicId);
6222bf215546Sopenharmony_ci}
6223bf215546Sopenharmony_ci
6224bf215546Sopenharmony_cistatic inline void
6225bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Features(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val)
6226bf215546Sopenharmony_ci{
6227bf215546Sopenharmony_ci    VkStructureType stype;
6228bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
6229bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES);
6230bf215546Sopenharmony_ci
6231bf215546Sopenharmony_ci    assert(val->sType == stype);
6232bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan12Features_pnext(dec, val->pNext);
6233bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan12Features_self(dec, val);
6234bf215546Sopenharmony_ci}
6235bf215546Sopenharmony_ci
6236bf215546Sopenharmony_cistatic inline size_t
6237bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features_pnext_partial(const void *val)
6238bf215546Sopenharmony_ci{
6239bf215546Sopenharmony_ci    /* no known/supported struct */
6240bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6241bf215546Sopenharmony_ci}
6242bf215546Sopenharmony_ci
6243bf215546Sopenharmony_cistatic inline size_t
6244bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features_self_partial(const VkPhysicalDeviceVulkan12Features *val)
6245bf215546Sopenharmony_ci{
6246bf215546Sopenharmony_ci    size_t size = 0;
6247bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6248bf215546Sopenharmony_ci    /* skip val->samplerMirrorClampToEdge */
6249bf215546Sopenharmony_ci    /* skip val->drawIndirectCount */
6250bf215546Sopenharmony_ci    /* skip val->storageBuffer8BitAccess */
6251bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer8BitAccess */
6252bf215546Sopenharmony_ci    /* skip val->storagePushConstant8 */
6253bf215546Sopenharmony_ci    /* skip val->shaderBufferInt64Atomics */
6254bf215546Sopenharmony_ci    /* skip val->shaderSharedInt64Atomics */
6255bf215546Sopenharmony_ci    /* skip val->shaderFloat16 */
6256bf215546Sopenharmony_ci    /* skip val->shaderInt8 */
6257bf215546Sopenharmony_ci    /* skip val->descriptorIndexing */
6258bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayDynamicIndexing */
6259bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
6260bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
6261bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexing */
6262bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexing */
6263bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexing */
6264bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexing */
6265bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
6266bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
6267bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
6268bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
6269bf215546Sopenharmony_ci    /* skip val->descriptorBindingSampledImageUpdateAfterBind */
6270bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageImageUpdateAfterBind */
6271bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
6272bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
6273bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
6274bf215546Sopenharmony_ci    /* skip val->descriptorBindingUpdateUnusedWhilePending */
6275bf215546Sopenharmony_ci    /* skip val->descriptorBindingPartiallyBound */
6276bf215546Sopenharmony_ci    /* skip val->descriptorBindingVariableDescriptorCount */
6277bf215546Sopenharmony_ci    /* skip val->runtimeDescriptorArray */
6278bf215546Sopenharmony_ci    /* skip val->samplerFilterMinmax */
6279bf215546Sopenharmony_ci    /* skip val->scalarBlockLayout */
6280bf215546Sopenharmony_ci    /* skip val->imagelessFramebuffer */
6281bf215546Sopenharmony_ci    /* skip val->uniformBufferStandardLayout */
6282bf215546Sopenharmony_ci    /* skip val->shaderSubgroupExtendedTypes */
6283bf215546Sopenharmony_ci    /* skip val->separateDepthStencilLayouts */
6284bf215546Sopenharmony_ci    /* skip val->hostQueryReset */
6285bf215546Sopenharmony_ci    /* skip val->timelineSemaphore */
6286bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddress */
6287bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressCaptureReplay */
6288bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressMultiDevice */
6289bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModel */
6290bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelDeviceScope */
6291bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
6292bf215546Sopenharmony_ci    /* skip val->shaderOutputViewportIndex */
6293bf215546Sopenharmony_ci    /* skip val->shaderOutputLayer */
6294bf215546Sopenharmony_ci    /* skip val->subgroupBroadcastDynamicId */
6295bf215546Sopenharmony_ci    return size;
6296bf215546Sopenharmony_ci}
6297bf215546Sopenharmony_ci
6298bf215546Sopenharmony_cistatic inline size_t
6299bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Features_partial(const VkPhysicalDeviceVulkan12Features *val)
6300bf215546Sopenharmony_ci{
6301bf215546Sopenharmony_ci    size_t size = 0;
6302bf215546Sopenharmony_ci
6303bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6304bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Features_pnext_partial(val->pNext);
6305bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Features_self_partial(val);
6306bf215546Sopenharmony_ci
6307bf215546Sopenharmony_ci    return size;
6308bf215546Sopenharmony_ci}
6309bf215546Sopenharmony_ci
6310bf215546Sopenharmony_cistatic inline void
6311bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
6312bf215546Sopenharmony_ci{
6313bf215546Sopenharmony_ci    /* no known/supported struct */
6314bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6315bf215546Sopenharmony_ci}
6316bf215546Sopenharmony_ci
6317bf215546Sopenharmony_cistatic inline void
6318bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
6319bf215546Sopenharmony_ci{
6320bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6321bf215546Sopenharmony_ci    /* skip val->samplerMirrorClampToEdge */
6322bf215546Sopenharmony_ci    /* skip val->drawIndirectCount */
6323bf215546Sopenharmony_ci    /* skip val->storageBuffer8BitAccess */
6324bf215546Sopenharmony_ci    /* skip val->uniformAndStorageBuffer8BitAccess */
6325bf215546Sopenharmony_ci    /* skip val->storagePushConstant8 */
6326bf215546Sopenharmony_ci    /* skip val->shaderBufferInt64Atomics */
6327bf215546Sopenharmony_ci    /* skip val->shaderSharedInt64Atomics */
6328bf215546Sopenharmony_ci    /* skip val->shaderFloat16 */
6329bf215546Sopenharmony_ci    /* skip val->shaderInt8 */
6330bf215546Sopenharmony_ci    /* skip val->descriptorIndexing */
6331bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayDynamicIndexing */
6332bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */
6333bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */
6334bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexing */
6335bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexing */
6336bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexing */
6337bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexing */
6338bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexing */
6339bf215546Sopenharmony_ci    /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */
6340bf215546Sopenharmony_ci    /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */
6341bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformBufferUpdateAfterBind */
6342bf215546Sopenharmony_ci    /* skip val->descriptorBindingSampledImageUpdateAfterBind */
6343bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageImageUpdateAfterBind */
6344bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageBufferUpdateAfterBind */
6345bf215546Sopenharmony_ci    /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */
6346bf215546Sopenharmony_ci    /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */
6347bf215546Sopenharmony_ci    /* skip val->descriptorBindingUpdateUnusedWhilePending */
6348bf215546Sopenharmony_ci    /* skip val->descriptorBindingPartiallyBound */
6349bf215546Sopenharmony_ci    /* skip val->descriptorBindingVariableDescriptorCount */
6350bf215546Sopenharmony_ci    /* skip val->runtimeDescriptorArray */
6351bf215546Sopenharmony_ci    /* skip val->samplerFilterMinmax */
6352bf215546Sopenharmony_ci    /* skip val->scalarBlockLayout */
6353bf215546Sopenharmony_ci    /* skip val->imagelessFramebuffer */
6354bf215546Sopenharmony_ci    /* skip val->uniformBufferStandardLayout */
6355bf215546Sopenharmony_ci    /* skip val->shaderSubgroupExtendedTypes */
6356bf215546Sopenharmony_ci    /* skip val->separateDepthStencilLayouts */
6357bf215546Sopenharmony_ci    /* skip val->hostQueryReset */
6358bf215546Sopenharmony_ci    /* skip val->timelineSemaphore */
6359bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddress */
6360bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressCaptureReplay */
6361bf215546Sopenharmony_ci    /* skip val->bufferDeviceAddressMultiDevice */
6362bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModel */
6363bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelDeviceScope */
6364bf215546Sopenharmony_ci    /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */
6365bf215546Sopenharmony_ci    /* skip val->shaderOutputViewportIndex */
6366bf215546Sopenharmony_ci    /* skip val->shaderOutputLayer */
6367bf215546Sopenharmony_ci    /* skip val->subgroupBroadcastDynamicId */
6368bf215546Sopenharmony_ci}
6369bf215546Sopenharmony_ci
6370bf215546Sopenharmony_cistatic inline void
6371bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val)
6372bf215546Sopenharmony_ci{
6373bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES);
6374bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES });
6375bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Features_pnext_partial(enc, val->pNext);
6376bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Features_self_partial(enc, val);
6377bf215546Sopenharmony_ci}
6378bf215546Sopenharmony_ci
6379bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan13Features chain */
6380bf215546Sopenharmony_ci
6381bf215546Sopenharmony_cistatic inline size_t
6382bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features_pnext(const void *val)
6383bf215546Sopenharmony_ci{
6384bf215546Sopenharmony_ci    /* no known/supported struct */
6385bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6386bf215546Sopenharmony_ci}
6387bf215546Sopenharmony_ci
6388bf215546Sopenharmony_cistatic inline size_t
6389bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features_self(const VkPhysicalDeviceVulkan13Features *val)
6390bf215546Sopenharmony_ci{
6391bf215546Sopenharmony_ci    size_t size = 0;
6392bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6393bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustImageAccess);
6394bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->inlineUniformBlock);
6395bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->descriptorBindingInlineUniformBlockUpdateAfterBind);
6396bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->pipelineCreationCacheControl);
6397bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->privateData);
6398bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDemoteToHelperInvocation);
6399bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderTerminateInvocation);
6400bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->subgroupSizeControl);
6401bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->computeFullSubgroups);
6402bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->synchronization2);
6403bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->textureCompressionASTC_HDR);
6404bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderZeroInitializeWorkgroupMemory);
6405bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->dynamicRendering);
6406bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderIntegerDotProduct);
6407bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->maintenance4);
6408bf215546Sopenharmony_ci    return size;
6409bf215546Sopenharmony_ci}
6410bf215546Sopenharmony_ci
6411bf215546Sopenharmony_cistatic inline size_t
6412bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features(const VkPhysicalDeviceVulkan13Features *val)
6413bf215546Sopenharmony_ci{
6414bf215546Sopenharmony_ci    size_t size = 0;
6415bf215546Sopenharmony_ci
6416bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6417bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Features_pnext(val->pNext);
6418bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self(val);
6419bf215546Sopenharmony_ci
6420bf215546Sopenharmony_ci    return size;
6421bf215546Sopenharmony_ci}
6422bf215546Sopenharmony_ci
6423bf215546Sopenharmony_cistatic inline void
6424bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features_pnext(struct vn_cs_encoder *enc, const void *val)
6425bf215546Sopenharmony_ci{
6426bf215546Sopenharmony_ci    /* no known/supported struct */
6427bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6428bf215546Sopenharmony_ci}
6429bf215546Sopenharmony_ci
6430bf215546Sopenharmony_cistatic inline void
6431bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
6432bf215546Sopenharmony_ci{
6433bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6434bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->robustImageAccess);
6435bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->inlineUniformBlock);
6436bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
6437bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl);
6438bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->privateData);
6439bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation);
6440bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderTerminateInvocation);
6441bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->subgroupSizeControl);
6442bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->computeFullSubgroups);
6443bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->synchronization2);
6444bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR);
6445bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory);
6446bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->dynamicRendering);
6447bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct);
6448bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->maintenance4);
6449bf215546Sopenharmony_ci}
6450bf215546Sopenharmony_ci
6451bf215546Sopenharmony_cistatic inline void
6452bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
6453bf215546Sopenharmony_ci{
6454bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES);
6455bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES });
6456bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Features_pnext(enc, val->pNext);
6457bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, val);
6458bf215546Sopenharmony_ci}
6459bf215546Sopenharmony_ci
6460bf215546Sopenharmony_cistatic inline void
6461bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Features_pnext(struct vn_cs_decoder *dec, const void *val)
6462bf215546Sopenharmony_ci{
6463bf215546Sopenharmony_ci    /* no known/supported struct */
6464bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
6465bf215546Sopenharmony_ci        assert(false);
6466bf215546Sopenharmony_ci}
6467bf215546Sopenharmony_ci
6468bf215546Sopenharmony_cistatic inline void
6469bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
6470bf215546Sopenharmony_ci{
6471bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6472bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustImageAccess);
6473bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->inlineUniformBlock);
6474bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind);
6475bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl);
6476bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->privateData);
6477bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation);
6478bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderTerminateInvocation);
6479bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->subgroupSizeControl);
6480bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->computeFullSubgroups);
6481bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->synchronization2);
6482bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR);
6483bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory);
6484bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->dynamicRendering);
6485bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct);
6486bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->maintenance4);
6487bf215546Sopenharmony_ci}
6488bf215546Sopenharmony_ci
6489bf215546Sopenharmony_cistatic inline void
6490bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Features(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val)
6491bf215546Sopenharmony_ci{
6492bf215546Sopenharmony_ci    VkStructureType stype;
6493bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
6494bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES);
6495bf215546Sopenharmony_ci
6496bf215546Sopenharmony_ci    assert(val->sType == stype);
6497bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan13Features_pnext(dec, val->pNext);
6498bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan13Features_self(dec, val);
6499bf215546Sopenharmony_ci}
6500bf215546Sopenharmony_ci
6501bf215546Sopenharmony_cistatic inline size_t
6502bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features_pnext_partial(const void *val)
6503bf215546Sopenharmony_ci{
6504bf215546Sopenharmony_ci    /* no known/supported struct */
6505bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6506bf215546Sopenharmony_ci}
6507bf215546Sopenharmony_ci
6508bf215546Sopenharmony_cistatic inline size_t
6509bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features_self_partial(const VkPhysicalDeviceVulkan13Features *val)
6510bf215546Sopenharmony_ci{
6511bf215546Sopenharmony_ci    size_t size = 0;
6512bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6513bf215546Sopenharmony_ci    /* skip val->robustImageAccess */
6514bf215546Sopenharmony_ci    /* skip val->inlineUniformBlock */
6515bf215546Sopenharmony_ci    /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
6516bf215546Sopenharmony_ci    /* skip val->pipelineCreationCacheControl */
6517bf215546Sopenharmony_ci    /* skip val->privateData */
6518bf215546Sopenharmony_ci    /* skip val->shaderDemoteToHelperInvocation */
6519bf215546Sopenharmony_ci    /* skip val->shaderTerminateInvocation */
6520bf215546Sopenharmony_ci    /* skip val->subgroupSizeControl */
6521bf215546Sopenharmony_ci    /* skip val->computeFullSubgroups */
6522bf215546Sopenharmony_ci    /* skip val->synchronization2 */
6523bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_HDR */
6524bf215546Sopenharmony_ci    /* skip val->shaderZeroInitializeWorkgroupMemory */
6525bf215546Sopenharmony_ci    /* skip val->dynamicRendering */
6526bf215546Sopenharmony_ci    /* skip val->shaderIntegerDotProduct */
6527bf215546Sopenharmony_ci    /* skip val->maintenance4 */
6528bf215546Sopenharmony_ci    return size;
6529bf215546Sopenharmony_ci}
6530bf215546Sopenharmony_ci
6531bf215546Sopenharmony_cistatic inline size_t
6532bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Features_partial(const VkPhysicalDeviceVulkan13Features *val)
6533bf215546Sopenharmony_ci{
6534bf215546Sopenharmony_ci    size_t size = 0;
6535bf215546Sopenharmony_ci
6536bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6537bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Features_pnext_partial(val->pNext);
6538bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self_partial(val);
6539bf215546Sopenharmony_ci
6540bf215546Sopenharmony_ci    return size;
6541bf215546Sopenharmony_ci}
6542bf215546Sopenharmony_ci
6543bf215546Sopenharmony_cistatic inline void
6544bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
6545bf215546Sopenharmony_ci{
6546bf215546Sopenharmony_ci    /* no known/supported struct */
6547bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6548bf215546Sopenharmony_ci}
6549bf215546Sopenharmony_ci
6550bf215546Sopenharmony_cistatic inline void
6551bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
6552bf215546Sopenharmony_ci{
6553bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6554bf215546Sopenharmony_ci    /* skip val->robustImageAccess */
6555bf215546Sopenharmony_ci    /* skip val->inlineUniformBlock */
6556bf215546Sopenharmony_ci    /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */
6557bf215546Sopenharmony_ci    /* skip val->pipelineCreationCacheControl */
6558bf215546Sopenharmony_ci    /* skip val->privateData */
6559bf215546Sopenharmony_ci    /* skip val->shaderDemoteToHelperInvocation */
6560bf215546Sopenharmony_ci    /* skip val->shaderTerminateInvocation */
6561bf215546Sopenharmony_ci    /* skip val->subgroupSizeControl */
6562bf215546Sopenharmony_ci    /* skip val->computeFullSubgroups */
6563bf215546Sopenharmony_ci    /* skip val->synchronization2 */
6564bf215546Sopenharmony_ci    /* skip val->textureCompressionASTC_HDR */
6565bf215546Sopenharmony_ci    /* skip val->shaderZeroInitializeWorkgroupMemory */
6566bf215546Sopenharmony_ci    /* skip val->dynamicRendering */
6567bf215546Sopenharmony_ci    /* skip val->shaderIntegerDotProduct */
6568bf215546Sopenharmony_ci    /* skip val->maintenance4 */
6569bf215546Sopenharmony_ci}
6570bf215546Sopenharmony_ci
6571bf215546Sopenharmony_cistatic inline void
6572bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val)
6573bf215546Sopenharmony_ci{
6574bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES);
6575bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES });
6576bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Features_pnext_partial(enc, val->pNext);
6577bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Features_self_partial(enc, val);
6578bf215546Sopenharmony_ci}
6579bf215546Sopenharmony_ci
6580bf215546Sopenharmony_ci/* struct VkPhysicalDeviceCustomBorderColorFeaturesEXT chain */
6581bf215546Sopenharmony_ci
6582bf215546Sopenharmony_cistatic inline size_t
6583bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(const void *val)
6584bf215546Sopenharmony_ci{
6585bf215546Sopenharmony_ci    /* no known/supported struct */
6586bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6587bf215546Sopenharmony_ci}
6588bf215546Sopenharmony_ci
6589bf215546Sopenharmony_cistatic inline size_t
6590bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6591bf215546Sopenharmony_ci{
6592bf215546Sopenharmony_ci    size_t size = 0;
6593bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6594bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->customBorderColors);
6595bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->customBorderColorWithoutFormat);
6596bf215546Sopenharmony_ci    return size;
6597bf215546Sopenharmony_ci}
6598bf215546Sopenharmony_ci
6599bf215546Sopenharmony_cistatic inline size_t
6600bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6601bf215546Sopenharmony_ci{
6602bf215546Sopenharmony_ci    size_t size = 0;
6603bf215546Sopenharmony_ci
6604bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6605bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(val->pNext);
6606bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(val);
6607bf215546Sopenharmony_ci
6608bf215546Sopenharmony_ci    return size;
6609bf215546Sopenharmony_ci}
6610bf215546Sopenharmony_ci
6611bf215546Sopenharmony_cistatic inline void
6612bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6613bf215546Sopenharmony_ci{
6614bf215546Sopenharmony_ci    /* no known/supported struct */
6615bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6616bf215546Sopenharmony_ci}
6617bf215546Sopenharmony_ci
6618bf215546Sopenharmony_cistatic inline void
6619bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6620bf215546Sopenharmony_ci{
6621bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6622bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->customBorderColors);
6623bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->customBorderColorWithoutFormat);
6624bf215546Sopenharmony_ci}
6625bf215546Sopenharmony_ci
6626bf215546Sopenharmony_cistatic inline void
6627bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6628bf215546Sopenharmony_ci{
6629bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT);
6630bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT });
6631bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(enc, val->pNext);
6632bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, val);
6633bf215546Sopenharmony_ci}
6634bf215546Sopenharmony_ci
6635bf215546Sopenharmony_cistatic inline void
6636bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
6637bf215546Sopenharmony_ci{
6638bf215546Sopenharmony_ci    /* no known/supported struct */
6639bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
6640bf215546Sopenharmony_ci        assert(false);
6641bf215546Sopenharmony_ci}
6642bf215546Sopenharmony_ci
6643bf215546Sopenharmony_cistatic inline void
6644bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6645bf215546Sopenharmony_ci{
6646bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6647bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->customBorderColors);
6648bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->customBorderColorWithoutFormat);
6649bf215546Sopenharmony_ci}
6650bf215546Sopenharmony_ci
6651bf215546Sopenharmony_cistatic inline void
6652bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6653bf215546Sopenharmony_ci{
6654bf215546Sopenharmony_ci    VkStructureType stype;
6655bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
6656bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT);
6657bf215546Sopenharmony_ci
6658bf215546Sopenharmony_ci    assert(val->sType == stype);
6659bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(dec, val->pNext);
6660bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(dec, val);
6661bf215546Sopenharmony_ci}
6662bf215546Sopenharmony_ci
6663bf215546Sopenharmony_cistatic inline size_t
6664bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(const void *val)
6665bf215546Sopenharmony_ci{
6666bf215546Sopenharmony_ci    /* no known/supported struct */
6667bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6668bf215546Sopenharmony_ci}
6669bf215546Sopenharmony_ci
6670bf215546Sopenharmony_cistatic inline size_t
6671bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6672bf215546Sopenharmony_ci{
6673bf215546Sopenharmony_ci    size_t size = 0;
6674bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6675bf215546Sopenharmony_ci    /* skip val->customBorderColors */
6676bf215546Sopenharmony_ci    /* skip val->customBorderColorWithoutFormat */
6677bf215546Sopenharmony_ci    return size;
6678bf215546Sopenharmony_ci}
6679bf215546Sopenharmony_ci
6680bf215546Sopenharmony_cistatic inline size_t
6681bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6682bf215546Sopenharmony_ci{
6683bf215546Sopenharmony_ci    size_t size = 0;
6684bf215546Sopenharmony_ci
6685bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6686bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(val->pNext);
6687bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(val);
6688bf215546Sopenharmony_ci
6689bf215546Sopenharmony_ci    return size;
6690bf215546Sopenharmony_ci}
6691bf215546Sopenharmony_ci
6692bf215546Sopenharmony_cistatic inline void
6693bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
6694bf215546Sopenharmony_ci{
6695bf215546Sopenharmony_ci    /* no known/supported struct */
6696bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6697bf215546Sopenharmony_ci}
6698bf215546Sopenharmony_ci
6699bf215546Sopenharmony_cistatic inline void
6700bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6701bf215546Sopenharmony_ci{
6702bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6703bf215546Sopenharmony_ci    /* skip val->customBorderColors */
6704bf215546Sopenharmony_ci    /* skip val->customBorderColorWithoutFormat */
6705bf215546Sopenharmony_ci}
6706bf215546Sopenharmony_ci
6707bf215546Sopenharmony_cistatic inline void
6708bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val)
6709bf215546Sopenharmony_ci{
6710bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT);
6711bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT });
6712bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(enc, val->pNext);
6713bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(enc, val);
6714bf215546Sopenharmony_ci}
6715bf215546Sopenharmony_ci
6716bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT chain */
6717bf215546Sopenharmony_ci
6718bf215546Sopenharmony_cistatic inline size_t
6719bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(const void *val)
6720bf215546Sopenharmony_ci{
6721bf215546Sopenharmony_ci    /* no known/supported struct */
6722bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6723bf215546Sopenharmony_ci}
6724bf215546Sopenharmony_ci
6725bf215546Sopenharmony_cistatic inline size_t
6726bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6727bf215546Sopenharmony_ci{
6728bf215546Sopenharmony_ci    size_t size = 0;
6729bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6730bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->extendedDynamicState);
6731bf215546Sopenharmony_ci    return size;
6732bf215546Sopenharmony_ci}
6733bf215546Sopenharmony_ci
6734bf215546Sopenharmony_cistatic inline size_t
6735bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6736bf215546Sopenharmony_ci{
6737bf215546Sopenharmony_ci    size_t size = 0;
6738bf215546Sopenharmony_ci
6739bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6740bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(val->pNext);
6741bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(val);
6742bf215546Sopenharmony_ci
6743bf215546Sopenharmony_ci    return size;
6744bf215546Sopenharmony_ci}
6745bf215546Sopenharmony_ci
6746bf215546Sopenharmony_cistatic inline void
6747bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6748bf215546Sopenharmony_ci{
6749bf215546Sopenharmony_ci    /* no known/supported struct */
6750bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6751bf215546Sopenharmony_ci}
6752bf215546Sopenharmony_ci
6753bf215546Sopenharmony_cistatic inline void
6754bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6755bf215546Sopenharmony_ci{
6756bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6757bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->extendedDynamicState);
6758bf215546Sopenharmony_ci}
6759bf215546Sopenharmony_ci
6760bf215546Sopenharmony_cistatic inline void
6761bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6762bf215546Sopenharmony_ci{
6763bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT);
6764bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT });
6765bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(enc, val->pNext);
6766bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, val);
6767bf215546Sopenharmony_ci}
6768bf215546Sopenharmony_ci
6769bf215546Sopenharmony_cistatic inline void
6770bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
6771bf215546Sopenharmony_ci{
6772bf215546Sopenharmony_ci    /* no known/supported struct */
6773bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
6774bf215546Sopenharmony_ci        assert(false);
6775bf215546Sopenharmony_ci}
6776bf215546Sopenharmony_ci
6777bf215546Sopenharmony_cistatic inline void
6778bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6779bf215546Sopenharmony_ci{
6780bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6781bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->extendedDynamicState);
6782bf215546Sopenharmony_ci}
6783bf215546Sopenharmony_ci
6784bf215546Sopenharmony_cistatic inline void
6785bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6786bf215546Sopenharmony_ci{
6787bf215546Sopenharmony_ci    VkStructureType stype;
6788bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
6789bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT);
6790bf215546Sopenharmony_ci
6791bf215546Sopenharmony_ci    assert(val->sType == stype);
6792bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(dec, val->pNext);
6793bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(dec, val);
6794bf215546Sopenharmony_ci}
6795bf215546Sopenharmony_ci
6796bf215546Sopenharmony_cistatic inline size_t
6797bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial(const void *val)
6798bf215546Sopenharmony_ci{
6799bf215546Sopenharmony_ci    /* no known/supported struct */
6800bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6801bf215546Sopenharmony_ci}
6802bf215546Sopenharmony_ci
6803bf215546Sopenharmony_cistatic inline size_t
6804bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6805bf215546Sopenharmony_ci{
6806bf215546Sopenharmony_ci    size_t size = 0;
6807bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6808bf215546Sopenharmony_ci    /* skip val->extendedDynamicState */
6809bf215546Sopenharmony_ci    return size;
6810bf215546Sopenharmony_ci}
6811bf215546Sopenharmony_ci
6812bf215546Sopenharmony_cistatic inline size_t
6813bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_partial(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6814bf215546Sopenharmony_ci{
6815bf215546Sopenharmony_ci    size_t size = 0;
6816bf215546Sopenharmony_ci
6817bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6818bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial(val->pNext);
6819bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial(val);
6820bf215546Sopenharmony_ci
6821bf215546Sopenharmony_ci    return size;
6822bf215546Sopenharmony_ci}
6823bf215546Sopenharmony_ci
6824bf215546Sopenharmony_cistatic inline void
6825bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
6826bf215546Sopenharmony_ci{
6827bf215546Sopenharmony_ci    /* no known/supported struct */
6828bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6829bf215546Sopenharmony_ci}
6830bf215546Sopenharmony_ci
6831bf215546Sopenharmony_cistatic inline void
6832bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6833bf215546Sopenharmony_ci{
6834bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6835bf215546Sopenharmony_ci    /* skip val->extendedDynamicState */
6836bf215546Sopenharmony_ci}
6837bf215546Sopenharmony_ci
6838bf215546Sopenharmony_cistatic inline void
6839bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val)
6840bf215546Sopenharmony_ci{
6841bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT);
6842bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT });
6843bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial(enc, val->pNext);
6844bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial(enc, val);
6845bf215546Sopenharmony_ci}
6846bf215546Sopenharmony_ci
6847bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT chain */
6848bf215546Sopenharmony_ci
6849bf215546Sopenharmony_cistatic inline size_t
6850bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(const void *val)
6851bf215546Sopenharmony_ci{
6852bf215546Sopenharmony_ci    /* no known/supported struct */
6853bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6854bf215546Sopenharmony_ci}
6855bf215546Sopenharmony_ci
6856bf215546Sopenharmony_cistatic inline size_t
6857bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6858bf215546Sopenharmony_ci{
6859bf215546Sopenharmony_ci    size_t size = 0;
6860bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6861bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->extendedDynamicState2);
6862bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->extendedDynamicState2LogicOp);
6863bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->extendedDynamicState2PatchControlPoints);
6864bf215546Sopenharmony_ci    return size;
6865bf215546Sopenharmony_ci}
6866bf215546Sopenharmony_ci
6867bf215546Sopenharmony_cistatic inline size_t
6868bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6869bf215546Sopenharmony_ci{
6870bf215546Sopenharmony_ci    size_t size = 0;
6871bf215546Sopenharmony_ci
6872bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6873bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(val->pNext);
6874bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(val);
6875bf215546Sopenharmony_ci
6876bf215546Sopenharmony_ci    return size;
6877bf215546Sopenharmony_ci}
6878bf215546Sopenharmony_ci
6879bf215546Sopenharmony_cistatic inline void
6880bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
6881bf215546Sopenharmony_ci{
6882bf215546Sopenharmony_ci    /* no known/supported struct */
6883bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6884bf215546Sopenharmony_ci}
6885bf215546Sopenharmony_ci
6886bf215546Sopenharmony_cistatic inline void
6887bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6888bf215546Sopenharmony_ci{
6889bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6890bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->extendedDynamicState2);
6891bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->extendedDynamicState2LogicOp);
6892bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->extendedDynamicState2PatchControlPoints);
6893bf215546Sopenharmony_ci}
6894bf215546Sopenharmony_ci
6895bf215546Sopenharmony_cistatic inline void
6896bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6897bf215546Sopenharmony_ci{
6898bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT);
6899bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT });
6900bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(enc, val->pNext);
6901bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, val);
6902bf215546Sopenharmony_ci}
6903bf215546Sopenharmony_ci
6904bf215546Sopenharmony_cistatic inline void
6905bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
6906bf215546Sopenharmony_ci{
6907bf215546Sopenharmony_ci    /* no known/supported struct */
6908bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
6909bf215546Sopenharmony_ci        assert(false);
6910bf215546Sopenharmony_ci}
6911bf215546Sopenharmony_ci
6912bf215546Sopenharmony_cistatic inline void
6913bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6914bf215546Sopenharmony_ci{
6915bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6916bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->extendedDynamicState2);
6917bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->extendedDynamicState2LogicOp);
6918bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->extendedDynamicState2PatchControlPoints);
6919bf215546Sopenharmony_ci}
6920bf215546Sopenharmony_ci
6921bf215546Sopenharmony_cistatic inline void
6922bf215546Sopenharmony_civn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6923bf215546Sopenharmony_ci{
6924bf215546Sopenharmony_ci    VkStructureType stype;
6925bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
6926bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT);
6927bf215546Sopenharmony_ci
6928bf215546Sopenharmony_ci    assert(val->sType == stype);
6929bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(dec, val->pNext);
6930bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(dec, val);
6931bf215546Sopenharmony_ci}
6932bf215546Sopenharmony_ci
6933bf215546Sopenharmony_cistatic inline size_t
6934bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial(const void *val)
6935bf215546Sopenharmony_ci{
6936bf215546Sopenharmony_ci    /* no known/supported struct */
6937bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6938bf215546Sopenharmony_ci}
6939bf215546Sopenharmony_ci
6940bf215546Sopenharmony_cistatic inline size_t
6941bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6942bf215546Sopenharmony_ci{
6943bf215546Sopenharmony_ci    size_t size = 0;
6944bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6945bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2 */
6946bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2LogicOp */
6947bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2PatchControlPoints */
6948bf215546Sopenharmony_ci    return size;
6949bf215546Sopenharmony_ci}
6950bf215546Sopenharmony_ci
6951bf215546Sopenharmony_cistatic inline size_t
6952bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_partial(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6953bf215546Sopenharmony_ci{
6954bf215546Sopenharmony_ci    size_t size = 0;
6955bf215546Sopenharmony_ci
6956bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
6957bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial(val->pNext);
6958bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial(val);
6959bf215546Sopenharmony_ci
6960bf215546Sopenharmony_ci    return size;
6961bf215546Sopenharmony_ci}
6962bf215546Sopenharmony_ci
6963bf215546Sopenharmony_cistatic inline void
6964bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
6965bf215546Sopenharmony_ci{
6966bf215546Sopenharmony_ci    /* no known/supported struct */
6967bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
6968bf215546Sopenharmony_ci}
6969bf215546Sopenharmony_ci
6970bf215546Sopenharmony_cistatic inline void
6971bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6972bf215546Sopenharmony_ci{
6973bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
6974bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2 */
6975bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2LogicOp */
6976bf215546Sopenharmony_ci    /* skip val->extendedDynamicState2PatchControlPoints */
6977bf215546Sopenharmony_ci}
6978bf215546Sopenharmony_ci
6979bf215546Sopenharmony_cistatic inline void
6980bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val)
6981bf215546Sopenharmony_ci{
6982bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT);
6983bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT });
6984bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial(enc, val->pNext);
6985bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial(enc, val);
6986bf215546Sopenharmony_ci}
6987bf215546Sopenharmony_ci
6988bf215546Sopenharmony_ci/* struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures chain */
6989bf215546Sopenharmony_ci
6990bf215546Sopenharmony_cistatic inline size_t
6991bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(const void *val)
6992bf215546Sopenharmony_ci{
6993bf215546Sopenharmony_ci    /* no known/supported struct */
6994bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
6995bf215546Sopenharmony_ci}
6996bf215546Sopenharmony_ci
6997bf215546Sopenharmony_cistatic inline size_t
6998bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
6999bf215546Sopenharmony_ci{
7000bf215546Sopenharmony_ci    size_t size = 0;
7001bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7002bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderZeroInitializeWorkgroupMemory);
7003bf215546Sopenharmony_ci    return size;
7004bf215546Sopenharmony_ci}
7005bf215546Sopenharmony_ci
7006bf215546Sopenharmony_cistatic inline size_t
7007bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7008bf215546Sopenharmony_ci{
7009bf215546Sopenharmony_ci    size_t size = 0;
7010bf215546Sopenharmony_ci
7011bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7012bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(val->pNext);
7013bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(val);
7014bf215546Sopenharmony_ci
7015bf215546Sopenharmony_ci    return size;
7016bf215546Sopenharmony_ci}
7017bf215546Sopenharmony_ci
7018bf215546Sopenharmony_cistatic inline void
7019bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
7020bf215546Sopenharmony_ci{
7021bf215546Sopenharmony_ci    /* no known/supported struct */
7022bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7023bf215546Sopenharmony_ci}
7024bf215546Sopenharmony_ci
7025bf215546Sopenharmony_cistatic inline void
7026bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7027bf215546Sopenharmony_ci{
7028bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7029bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory);
7030bf215546Sopenharmony_ci}
7031bf215546Sopenharmony_ci
7032bf215546Sopenharmony_cistatic inline void
7033bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7034bf215546Sopenharmony_ci{
7035bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES);
7036bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES });
7037bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(enc, val->pNext);
7038bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, val);
7039bf215546Sopenharmony_ci}
7040bf215546Sopenharmony_ci
7041bf215546Sopenharmony_cistatic inline void
7042bf215546Sopenharmony_civn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
7043bf215546Sopenharmony_ci{
7044bf215546Sopenharmony_ci    /* no known/supported struct */
7045bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7046bf215546Sopenharmony_ci        assert(false);
7047bf215546Sopenharmony_ci}
7048bf215546Sopenharmony_ci
7049bf215546Sopenharmony_cistatic inline void
7050bf215546Sopenharmony_civn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7051bf215546Sopenharmony_ci{
7052bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7053bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory);
7054bf215546Sopenharmony_ci}
7055bf215546Sopenharmony_ci
7056bf215546Sopenharmony_cistatic inline void
7057bf215546Sopenharmony_civn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7058bf215546Sopenharmony_ci{
7059bf215546Sopenharmony_ci    VkStructureType stype;
7060bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7061bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES);
7062bf215546Sopenharmony_ci
7063bf215546Sopenharmony_ci    assert(val->sType == stype);
7064bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(dec, val->pNext);
7065bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(dec, val);
7066bf215546Sopenharmony_ci}
7067bf215546Sopenharmony_ci
7068bf215546Sopenharmony_cistatic inline size_t
7069bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial(const void *val)
7070bf215546Sopenharmony_ci{
7071bf215546Sopenharmony_ci    /* no known/supported struct */
7072bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7073bf215546Sopenharmony_ci}
7074bf215546Sopenharmony_ci
7075bf215546Sopenharmony_cistatic inline size_t
7076bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7077bf215546Sopenharmony_ci{
7078bf215546Sopenharmony_ci    size_t size = 0;
7079bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7080bf215546Sopenharmony_ci    /* skip val->shaderZeroInitializeWorkgroupMemory */
7081bf215546Sopenharmony_ci    return size;
7082bf215546Sopenharmony_ci}
7083bf215546Sopenharmony_ci
7084bf215546Sopenharmony_cistatic inline size_t
7085bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_partial(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7086bf215546Sopenharmony_ci{
7087bf215546Sopenharmony_ci    size_t size = 0;
7088bf215546Sopenharmony_ci
7089bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7090bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial(val->pNext);
7091bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial(val);
7092bf215546Sopenharmony_ci
7093bf215546Sopenharmony_ci    return size;
7094bf215546Sopenharmony_ci}
7095bf215546Sopenharmony_ci
7096bf215546Sopenharmony_cistatic inline void
7097bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7098bf215546Sopenharmony_ci{
7099bf215546Sopenharmony_ci    /* no known/supported struct */
7100bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7101bf215546Sopenharmony_ci}
7102bf215546Sopenharmony_ci
7103bf215546Sopenharmony_cistatic inline void
7104bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7105bf215546Sopenharmony_ci{
7106bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7107bf215546Sopenharmony_ci    /* skip val->shaderZeroInitializeWorkgroupMemory */
7108bf215546Sopenharmony_ci}
7109bf215546Sopenharmony_ci
7110bf215546Sopenharmony_cistatic inline void
7111bf215546Sopenharmony_civn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val)
7112bf215546Sopenharmony_ci{
7113bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES);
7114bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES });
7115bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial(enc, val->pNext);
7116bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial(enc, val);
7117bf215546Sopenharmony_ci}
7118bf215546Sopenharmony_ci
7119bf215546Sopenharmony_ci/* struct VkPhysicalDeviceRobustness2FeaturesEXT chain */
7120bf215546Sopenharmony_ci
7121bf215546Sopenharmony_cistatic inline size_t
7122bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(const void *val)
7123bf215546Sopenharmony_ci{
7124bf215546Sopenharmony_ci    /* no known/supported struct */
7125bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7126bf215546Sopenharmony_ci}
7127bf215546Sopenharmony_ci
7128bf215546Sopenharmony_cistatic inline size_t
7129bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self(const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7130bf215546Sopenharmony_ci{
7131bf215546Sopenharmony_ci    size_t size = 0;
7132bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7133bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustBufferAccess2);
7134bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustImageAccess2);
7135bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->nullDescriptor);
7136bf215546Sopenharmony_ci    return size;
7137bf215546Sopenharmony_ci}
7138bf215546Sopenharmony_ci
7139bf215546Sopenharmony_cistatic inline size_t
7140bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT(const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7141bf215546Sopenharmony_ci{
7142bf215546Sopenharmony_ci    size_t size = 0;
7143bf215546Sopenharmony_ci
7144bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7145bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(val->pNext);
7146bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self(val);
7147bf215546Sopenharmony_ci
7148bf215546Sopenharmony_ci    return size;
7149bf215546Sopenharmony_ci}
7150bf215546Sopenharmony_ci
7151bf215546Sopenharmony_cistatic inline void
7152bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
7153bf215546Sopenharmony_ci{
7154bf215546Sopenharmony_ci    /* no known/supported struct */
7155bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7156bf215546Sopenharmony_ci}
7157bf215546Sopenharmony_ci
7158bf215546Sopenharmony_cistatic inline void
7159bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7160bf215546Sopenharmony_ci{
7161bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7162bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->robustBufferAccess2);
7163bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->robustImageAccess2);
7164bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->nullDescriptor);
7165bf215546Sopenharmony_ci}
7166bf215546Sopenharmony_ci
7167bf215546Sopenharmony_cistatic inline void
7168bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7169bf215546Sopenharmony_ci{
7170bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT);
7171bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT });
7172bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(enc, val->pNext);
7173bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(enc, val);
7174bf215546Sopenharmony_ci}
7175bf215546Sopenharmony_ci
7176bf215546Sopenharmony_cistatic inline void
7177bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
7178bf215546Sopenharmony_ci{
7179bf215546Sopenharmony_ci    /* no known/supported struct */
7180bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7181bf215546Sopenharmony_ci        assert(false);
7182bf215546Sopenharmony_ci}
7183bf215546Sopenharmony_ci
7184bf215546Sopenharmony_cistatic inline void
7185bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
7186bf215546Sopenharmony_ci{
7187bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7188bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustBufferAccess2);
7189bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustImageAccess2);
7190bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->nullDescriptor);
7191bf215546Sopenharmony_ci}
7192bf215546Sopenharmony_ci
7193bf215546Sopenharmony_cistatic inline void
7194bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2FeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2FeaturesEXT *val)
7195bf215546Sopenharmony_ci{
7196bf215546Sopenharmony_ci    VkStructureType stype;
7197bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7198bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT);
7199bf215546Sopenharmony_ci
7200bf215546Sopenharmony_ci    assert(val->sType == stype);
7201bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext(dec, val->pNext);
7202bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self(dec, val);
7203bf215546Sopenharmony_ci}
7204bf215546Sopenharmony_ci
7205bf215546Sopenharmony_cistatic inline size_t
7206bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial(const void *val)
7207bf215546Sopenharmony_ci{
7208bf215546Sopenharmony_ci    /* no known/supported struct */
7209bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7210bf215546Sopenharmony_ci}
7211bf215546Sopenharmony_ci
7212bf215546Sopenharmony_cistatic inline size_t
7213bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial(const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7214bf215546Sopenharmony_ci{
7215bf215546Sopenharmony_ci    size_t size = 0;
7216bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7217bf215546Sopenharmony_ci    /* skip val->robustBufferAccess2 */
7218bf215546Sopenharmony_ci    /* skip val->robustImageAccess2 */
7219bf215546Sopenharmony_ci    /* skip val->nullDescriptor */
7220bf215546Sopenharmony_ci    return size;
7221bf215546Sopenharmony_ci}
7222bf215546Sopenharmony_ci
7223bf215546Sopenharmony_cistatic inline size_t
7224bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_partial(const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7225bf215546Sopenharmony_ci{
7226bf215546Sopenharmony_ci    size_t size = 0;
7227bf215546Sopenharmony_ci
7228bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7229bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial(val->pNext);
7230bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial(val);
7231bf215546Sopenharmony_ci
7232bf215546Sopenharmony_ci    return size;
7233bf215546Sopenharmony_ci}
7234bf215546Sopenharmony_ci
7235bf215546Sopenharmony_cistatic inline void
7236bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7237bf215546Sopenharmony_ci{
7238bf215546Sopenharmony_ci    /* no known/supported struct */
7239bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7240bf215546Sopenharmony_ci}
7241bf215546Sopenharmony_ci
7242bf215546Sopenharmony_cistatic inline void
7243bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7244bf215546Sopenharmony_ci{
7245bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7246bf215546Sopenharmony_ci    /* skip val->robustBufferAccess2 */
7247bf215546Sopenharmony_ci    /* skip val->robustImageAccess2 */
7248bf215546Sopenharmony_ci    /* skip val->nullDescriptor */
7249bf215546Sopenharmony_ci}
7250bf215546Sopenharmony_ci
7251bf215546Sopenharmony_cistatic inline void
7252bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2FeaturesEXT *val)
7253bf215546Sopenharmony_ci{
7254bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT);
7255bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT });
7256bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_pnext_partial(enc, val->pNext);
7257bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial(enc, val);
7258bf215546Sopenharmony_ci}
7259bf215546Sopenharmony_ci
7260bf215546Sopenharmony_ci/* struct VkPhysicalDeviceImageRobustnessFeatures chain */
7261bf215546Sopenharmony_ci
7262bf215546Sopenharmony_cistatic inline size_t
7263bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_pnext(const void *val)
7264bf215546Sopenharmony_ci{
7265bf215546Sopenharmony_ci    /* no known/supported struct */
7266bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7267bf215546Sopenharmony_ci}
7268bf215546Sopenharmony_ci
7269bf215546Sopenharmony_cistatic inline size_t
7270bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self(const VkPhysicalDeviceImageRobustnessFeatures *val)
7271bf215546Sopenharmony_ci{
7272bf215546Sopenharmony_ci    size_t size = 0;
7273bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7274bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustImageAccess);
7275bf215546Sopenharmony_ci    return size;
7276bf215546Sopenharmony_ci}
7277bf215546Sopenharmony_ci
7278bf215546Sopenharmony_cistatic inline size_t
7279bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures(const VkPhysicalDeviceImageRobustnessFeatures *val)
7280bf215546Sopenharmony_ci{
7281bf215546Sopenharmony_ci    size_t size = 0;
7282bf215546Sopenharmony_ci
7283bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7284bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_pnext(val->pNext);
7285bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self(val);
7286bf215546Sopenharmony_ci
7287bf215546Sopenharmony_ci    return size;
7288bf215546Sopenharmony_ci}
7289bf215546Sopenharmony_ci
7290bf215546Sopenharmony_cistatic inline void
7291bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
7292bf215546Sopenharmony_ci{
7293bf215546Sopenharmony_ci    /* no known/supported struct */
7294bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7295bf215546Sopenharmony_ci}
7296bf215546Sopenharmony_ci
7297bf215546Sopenharmony_cistatic inline void
7298bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
7299bf215546Sopenharmony_ci{
7300bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7301bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->robustImageAccess);
7302bf215546Sopenharmony_ci}
7303bf215546Sopenharmony_ci
7304bf215546Sopenharmony_cistatic inline void
7305bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
7306bf215546Sopenharmony_ci{
7307bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES);
7308bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES });
7309bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(enc, val->pNext);
7310bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, val);
7311bf215546Sopenharmony_ci}
7312bf215546Sopenharmony_ci
7313bf215546Sopenharmony_cistatic inline void
7314bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
7315bf215546Sopenharmony_ci{
7316bf215546Sopenharmony_ci    /* no known/supported struct */
7317bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7318bf215546Sopenharmony_ci        assert(false);
7319bf215546Sopenharmony_ci}
7320bf215546Sopenharmony_ci
7321bf215546Sopenharmony_cistatic inline void
7322bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageRobustnessFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
7323bf215546Sopenharmony_ci{
7324bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7325bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustImageAccess);
7326bf215546Sopenharmony_ci}
7327bf215546Sopenharmony_ci
7328bf215546Sopenharmony_cistatic inline void
7329bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageRobustnessFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val)
7330bf215546Sopenharmony_ci{
7331bf215546Sopenharmony_ci    VkStructureType stype;
7332bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7333bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES);
7334bf215546Sopenharmony_ci
7335bf215546Sopenharmony_ci    assert(val->sType == stype);
7336bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext(dec, val->pNext);
7337bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self(dec, val);
7338bf215546Sopenharmony_ci}
7339bf215546Sopenharmony_ci
7340bf215546Sopenharmony_cistatic inline size_t
7341bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial(const void *val)
7342bf215546Sopenharmony_ci{
7343bf215546Sopenharmony_ci    /* no known/supported struct */
7344bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7345bf215546Sopenharmony_ci}
7346bf215546Sopenharmony_ci
7347bf215546Sopenharmony_cistatic inline size_t
7348bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self_partial(const VkPhysicalDeviceImageRobustnessFeatures *val)
7349bf215546Sopenharmony_ci{
7350bf215546Sopenharmony_ci    size_t size = 0;
7351bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7352bf215546Sopenharmony_ci    /* skip val->robustImageAccess */
7353bf215546Sopenharmony_ci    return size;
7354bf215546Sopenharmony_ci}
7355bf215546Sopenharmony_ci
7356bf215546Sopenharmony_cistatic inline size_t
7357bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_partial(const VkPhysicalDeviceImageRobustnessFeatures *val)
7358bf215546Sopenharmony_ci{
7359bf215546Sopenharmony_ci    size_t size = 0;
7360bf215546Sopenharmony_ci
7361bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7362bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial(val->pNext);
7363bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self_partial(val);
7364bf215546Sopenharmony_ci
7365bf215546Sopenharmony_ci    return size;
7366bf215546Sopenharmony_ci}
7367bf215546Sopenharmony_ci
7368bf215546Sopenharmony_cistatic inline void
7369bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7370bf215546Sopenharmony_ci{
7371bf215546Sopenharmony_ci    /* no known/supported struct */
7372bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7373bf215546Sopenharmony_ci}
7374bf215546Sopenharmony_ci
7375bf215546Sopenharmony_cistatic inline void
7376bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
7377bf215546Sopenharmony_ci{
7378bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7379bf215546Sopenharmony_ci    /* skip val->robustImageAccess */
7380bf215546Sopenharmony_ci}
7381bf215546Sopenharmony_ci
7382bf215546Sopenharmony_cistatic inline void
7383bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageRobustnessFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val)
7384bf215546Sopenharmony_ci{
7385bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES);
7386bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES });
7387bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial(enc, val->pNext);
7388bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self_partial(enc, val);
7389bf215546Sopenharmony_ci}
7390bf215546Sopenharmony_ci
7391bf215546Sopenharmony_ci/* struct VkPhysicalDevice4444FormatsFeaturesEXT chain */
7392bf215546Sopenharmony_ci
7393bf215546Sopenharmony_cistatic inline size_t
7394bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(const void *val)
7395bf215546Sopenharmony_ci{
7396bf215546Sopenharmony_ci    /* no known/supported struct */
7397bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7398bf215546Sopenharmony_ci}
7399bf215546Sopenharmony_ci
7400bf215546Sopenharmony_cistatic inline size_t
7401bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self(const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7402bf215546Sopenharmony_ci{
7403bf215546Sopenharmony_ci    size_t size = 0;
7404bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7405bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->formatA4R4G4B4);
7406bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->formatA4B4G4R4);
7407bf215546Sopenharmony_ci    return size;
7408bf215546Sopenharmony_ci}
7409bf215546Sopenharmony_ci
7410bf215546Sopenharmony_cistatic inline size_t
7411bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT(const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7412bf215546Sopenharmony_ci{
7413bf215546Sopenharmony_ci    size_t size = 0;
7414bf215546Sopenharmony_ci
7415bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7416bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(val->pNext);
7417bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self(val);
7418bf215546Sopenharmony_ci
7419bf215546Sopenharmony_ci    return size;
7420bf215546Sopenharmony_ci}
7421bf215546Sopenharmony_ci
7422bf215546Sopenharmony_cistatic inline void
7423bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
7424bf215546Sopenharmony_ci{
7425bf215546Sopenharmony_ci    /* no known/supported struct */
7426bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7427bf215546Sopenharmony_ci}
7428bf215546Sopenharmony_ci
7429bf215546Sopenharmony_cistatic inline void
7430bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7431bf215546Sopenharmony_ci{
7432bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7433bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->formatA4R4G4B4);
7434bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->formatA4B4G4R4);
7435bf215546Sopenharmony_ci}
7436bf215546Sopenharmony_ci
7437bf215546Sopenharmony_cistatic inline void
7438bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7439bf215546Sopenharmony_ci{
7440bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT);
7441bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT });
7442bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(enc, val->pNext);
7443bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, val);
7444bf215546Sopenharmony_ci}
7445bf215546Sopenharmony_ci
7446bf215546Sopenharmony_cistatic inline void
7447bf215546Sopenharmony_civn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
7448bf215546Sopenharmony_ci{
7449bf215546Sopenharmony_ci    /* no known/supported struct */
7450bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7451bf215546Sopenharmony_ci        assert(false);
7452bf215546Sopenharmony_ci}
7453bf215546Sopenharmony_ci
7454bf215546Sopenharmony_cistatic inline void
7455bf215546Sopenharmony_civn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
7456bf215546Sopenharmony_ci{
7457bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7458bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->formatA4R4G4B4);
7459bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->formatA4B4G4R4);
7460bf215546Sopenharmony_ci}
7461bf215546Sopenharmony_ci
7462bf215546Sopenharmony_cistatic inline void
7463bf215546Sopenharmony_civn_decode_VkPhysicalDevice4444FormatsFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val)
7464bf215546Sopenharmony_ci{
7465bf215546Sopenharmony_ci    VkStructureType stype;
7466bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7467bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT);
7468bf215546Sopenharmony_ci
7469bf215546Sopenharmony_ci    assert(val->sType == stype);
7470bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(dec, val->pNext);
7471bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self(dec, val);
7472bf215546Sopenharmony_ci}
7473bf215546Sopenharmony_ci
7474bf215546Sopenharmony_cistatic inline size_t
7475bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial(const void *val)
7476bf215546Sopenharmony_ci{
7477bf215546Sopenharmony_ci    /* no known/supported struct */
7478bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7479bf215546Sopenharmony_ci}
7480bf215546Sopenharmony_ci
7481bf215546Sopenharmony_cistatic inline size_t
7482bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial(const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7483bf215546Sopenharmony_ci{
7484bf215546Sopenharmony_ci    size_t size = 0;
7485bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7486bf215546Sopenharmony_ci    /* skip val->formatA4R4G4B4 */
7487bf215546Sopenharmony_ci    /* skip val->formatA4B4G4R4 */
7488bf215546Sopenharmony_ci    return size;
7489bf215546Sopenharmony_ci}
7490bf215546Sopenharmony_ci
7491bf215546Sopenharmony_cistatic inline size_t
7492bf215546Sopenharmony_civn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_partial(const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7493bf215546Sopenharmony_ci{
7494bf215546Sopenharmony_ci    size_t size = 0;
7495bf215546Sopenharmony_ci
7496bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7497bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial(val->pNext);
7498bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial(val);
7499bf215546Sopenharmony_ci
7500bf215546Sopenharmony_ci    return size;
7501bf215546Sopenharmony_ci}
7502bf215546Sopenharmony_ci
7503bf215546Sopenharmony_cistatic inline void
7504bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7505bf215546Sopenharmony_ci{
7506bf215546Sopenharmony_ci    /* no known/supported struct */
7507bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7508bf215546Sopenharmony_ci}
7509bf215546Sopenharmony_ci
7510bf215546Sopenharmony_cistatic inline void
7511bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7512bf215546Sopenharmony_ci{
7513bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7514bf215546Sopenharmony_ci    /* skip val->formatA4R4G4B4 */
7515bf215546Sopenharmony_ci    /* skip val->formatA4B4G4R4 */
7516bf215546Sopenharmony_ci}
7517bf215546Sopenharmony_ci
7518bf215546Sopenharmony_cistatic inline void
7519bf215546Sopenharmony_civn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val)
7520bf215546Sopenharmony_ci{
7521bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT);
7522bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT });
7523bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial(enc, val->pNext);
7524bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial(enc, val);
7525bf215546Sopenharmony_ci}
7526bf215546Sopenharmony_ci
7527bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderTerminateInvocationFeatures chain */
7528bf215546Sopenharmony_ci
7529bf215546Sopenharmony_cistatic inline size_t
7530bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(const void *val)
7531bf215546Sopenharmony_ci{
7532bf215546Sopenharmony_ci    /* no known/supported struct */
7533bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7534bf215546Sopenharmony_ci}
7535bf215546Sopenharmony_ci
7536bf215546Sopenharmony_cistatic inline size_t
7537bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7538bf215546Sopenharmony_ci{
7539bf215546Sopenharmony_ci    size_t size = 0;
7540bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7541bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderTerminateInvocation);
7542bf215546Sopenharmony_ci    return size;
7543bf215546Sopenharmony_ci}
7544bf215546Sopenharmony_ci
7545bf215546Sopenharmony_cistatic inline size_t
7546bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures(const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7547bf215546Sopenharmony_ci{
7548bf215546Sopenharmony_ci    size_t size = 0;
7549bf215546Sopenharmony_ci
7550bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7551bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(val->pNext);
7552bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(val);
7553bf215546Sopenharmony_ci
7554bf215546Sopenharmony_ci    return size;
7555bf215546Sopenharmony_ci}
7556bf215546Sopenharmony_ci
7557bf215546Sopenharmony_cistatic inline void
7558bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
7559bf215546Sopenharmony_ci{
7560bf215546Sopenharmony_ci    /* no known/supported struct */
7561bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7562bf215546Sopenharmony_ci}
7563bf215546Sopenharmony_ci
7564bf215546Sopenharmony_cistatic inline void
7565bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7566bf215546Sopenharmony_ci{
7567bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7568bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderTerminateInvocation);
7569bf215546Sopenharmony_ci}
7570bf215546Sopenharmony_ci
7571bf215546Sopenharmony_cistatic inline void
7572bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7573bf215546Sopenharmony_ci{
7574bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES);
7575bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES });
7576bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(enc, val->pNext);
7577bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, val);
7578bf215546Sopenharmony_ci}
7579bf215546Sopenharmony_ci
7580bf215546Sopenharmony_cistatic inline void
7581bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
7582bf215546Sopenharmony_ci{
7583bf215546Sopenharmony_ci    /* no known/supported struct */
7584bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7585bf215546Sopenharmony_ci        assert(false);
7586bf215546Sopenharmony_ci}
7587bf215546Sopenharmony_ci
7588bf215546Sopenharmony_cistatic inline void
7589bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7590bf215546Sopenharmony_ci{
7591bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7592bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderTerminateInvocation);
7593bf215546Sopenharmony_ci}
7594bf215546Sopenharmony_ci
7595bf215546Sopenharmony_cistatic inline void
7596bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7597bf215546Sopenharmony_ci{
7598bf215546Sopenharmony_ci    VkStructureType stype;
7599bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7600bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES);
7601bf215546Sopenharmony_ci
7602bf215546Sopenharmony_ci    assert(val->sType == stype);
7603bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(dec, val->pNext);
7604bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(dec, val);
7605bf215546Sopenharmony_ci}
7606bf215546Sopenharmony_ci
7607bf215546Sopenharmony_cistatic inline size_t
7608bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial(const void *val)
7609bf215546Sopenharmony_ci{
7610bf215546Sopenharmony_ci    /* no known/supported struct */
7611bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7612bf215546Sopenharmony_ci}
7613bf215546Sopenharmony_ci
7614bf215546Sopenharmony_cistatic inline size_t
7615bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7616bf215546Sopenharmony_ci{
7617bf215546Sopenharmony_ci    size_t size = 0;
7618bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7619bf215546Sopenharmony_ci    /* skip val->shaderTerminateInvocation */
7620bf215546Sopenharmony_ci    return size;
7621bf215546Sopenharmony_ci}
7622bf215546Sopenharmony_ci
7623bf215546Sopenharmony_cistatic inline size_t
7624bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial(const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7625bf215546Sopenharmony_ci{
7626bf215546Sopenharmony_ci    size_t size = 0;
7627bf215546Sopenharmony_ci
7628bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7629bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial(val->pNext);
7630bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(val);
7631bf215546Sopenharmony_ci
7632bf215546Sopenharmony_ci    return size;
7633bf215546Sopenharmony_ci}
7634bf215546Sopenharmony_ci
7635bf215546Sopenharmony_cistatic inline void
7636bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7637bf215546Sopenharmony_ci{
7638bf215546Sopenharmony_ci    /* no known/supported struct */
7639bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7640bf215546Sopenharmony_ci}
7641bf215546Sopenharmony_ci
7642bf215546Sopenharmony_cistatic inline void
7643bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7644bf215546Sopenharmony_ci{
7645bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7646bf215546Sopenharmony_ci    /* skip val->shaderTerminateInvocation */
7647bf215546Sopenharmony_ci}
7648bf215546Sopenharmony_ci
7649bf215546Sopenharmony_cistatic inline void
7650bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val)
7651bf215546Sopenharmony_ci{
7652bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES);
7653bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES });
7654bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial(enc, val->pNext);
7655bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(enc, val);
7656bf215546Sopenharmony_ci}
7657bf215546Sopenharmony_ci
7658bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSynchronization2Features chain */
7659bf215546Sopenharmony_ci
7660bf215546Sopenharmony_cistatic inline size_t
7661bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features_pnext(const void *val)
7662bf215546Sopenharmony_ci{
7663bf215546Sopenharmony_ci    /* no known/supported struct */
7664bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7665bf215546Sopenharmony_ci}
7666bf215546Sopenharmony_ci
7667bf215546Sopenharmony_cistatic inline size_t
7668bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features_self(const VkPhysicalDeviceSynchronization2Features *val)
7669bf215546Sopenharmony_ci{
7670bf215546Sopenharmony_ci    size_t size = 0;
7671bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7672bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->synchronization2);
7673bf215546Sopenharmony_ci    return size;
7674bf215546Sopenharmony_ci}
7675bf215546Sopenharmony_ci
7676bf215546Sopenharmony_cistatic inline size_t
7677bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features(const VkPhysicalDeviceSynchronization2Features *val)
7678bf215546Sopenharmony_ci{
7679bf215546Sopenharmony_ci    size_t size = 0;
7680bf215546Sopenharmony_ci
7681bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7682bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_pnext(val->pNext);
7683bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self(val);
7684bf215546Sopenharmony_ci
7685bf215546Sopenharmony_ci    return size;
7686bf215546Sopenharmony_ci}
7687bf215546Sopenharmony_ci
7688bf215546Sopenharmony_cistatic inline void
7689bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features_pnext(struct vn_cs_encoder *enc, const void *val)
7690bf215546Sopenharmony_ci{
7691bf215546Sopenharmony_ci    /* no known/supported struct */
7692bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7693bf215546Sopenharmony_ci}
7694bf215546Sopenharmony_ci
7695bf215546Sopenharmony_cistatic inline void
7696bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
7697bf215546Sopenharmony_ci{
7698bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7699bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->synchronization2);
7700bf215546Sopenharmony_ci}
7701bf215546Sopenharmony_ci
7702bf215546Sopenharmony_cistatic inline void
7703bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
7704bf215546Sopenharmony_ci{
7705bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES);
7706bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES });
7707bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(enc, val->pNext);
7708bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, val);
7709bf215546Sopenharmony_ci}
7710bf215546Sopenharmony_ci
7711bf215546Sopenharmony_cistatic inline void
7712bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSynchronization2Features_pnext(struct vn_cs_decoder *dec, const void *val)
7713bf215546Sopenharmony_ci{
7714bf215546Sopenharmony_ci    /* no known/supported struct */
7715bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7716bf215546Sopenharmony_ci        assert(false);
7717bf215546Sopenharmony_ci}
7718bf215546Sopenharmony_ci
7719bf215546Sopenharmony_cistatic inline void
7720bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSynchronization2Features_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
7721bf215546Sopenharmony_ci{
7722bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7723bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->synchronization2);
7724bf215546Sopenharmony_ci}
7725bf215546Sopenharmony_ci
7726bf215546Sopenharmony_cistatic inline void
7727bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSynchronization2Features(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val)
7728bf215546Sopenharmony_ci{
7729bf215546Sopenharmony_ci    VkStructureType stype;
7730bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7731bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES);
7732bf215546Sopenharmony_ci
7733bf215546Sopenharmony_ci    assert(val->sType == stype);
7734bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSynchronization2Features_pnext(dec, val->pNext);
7735bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSynchronization2Features_self(dec, val);
7736bf215546Sopenharmony_ci}
7737bf215546Sopenharmony_ci
7738bf215546Sopenharmony_cistatic inline size_t
7739bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features_pnext_partial(const void *val)
7740bf215546Sopenharmony_ci{
7741bf215546Sopenharmony_ci    /* no known/supported struct */
7742bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7743bf215546Sopenharmony_ci}
7744bf215546Sopenharmony_ci
7745bf215546Sopenharmony_cistatic inline size_t
7746bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features_self_partial(const VkPhysicalDeviceSynchronization2Features *val)
7747bf215546Sopenharmony_ci{
7748bf215546Sopenharmony_ci    size_t size = 0;
7749bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7750bf215546Sopenharmony_ci    /* skip val->synchronization2 */
7751bf215546Sopenharmony_ci    return size;
7752bf215546Sopenharmony_ci}
7753bf215546Sopenharmony_ci
7754bf215546Sopenharmony_cistatic inline size_t
7755bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSynchronization2Features_partial(const VkPhysicalDeviceSynchronization2Features *val)
7756bf215546Sopenharmony_ci{
7757bf215546Sopenharmony_ci    size_t size = 0;
7758bf215546Sopenharmony_ci
7759bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7760bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_pnext_partial(val->pNext);
7761bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self_partial(val);
7762bf215546Sopenharmony_ci
7763bf215546Sopenharmony_ci    return size;
7764bf215546Sopenharmony_ci}
7765bf215546Sopenharmony_ci
7766bf215546Sopenharmony_cistatic inline void
7767bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7768bf215546Sopenharmony_ci{
7769bf215546Sopenharmony_ci    /* no known/supported struct */
7770bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7771bf215546Sopenharmony_ci}
7772bf215546Sopenharmony_ci
7773bf215546Sopenharmony_cistatic inline void
7774bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
7775bf215546Sopenharmony_ci{
7776bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7777bf215546Sopenharmony_ci    /* skip val->synchronization2 */
7778bf215546Sopenharmony_ci}
7779bf215546Sopenharmony_ci
7780bf215546Sopenharmony_cistatic inline void
7781bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSynchronization2Features_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val)
7782bf215546Sopenharmony_ci{
7783bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES);
7784bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES });
7785bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSynchronization2Features_pnext_partial(enc, val->pNext);
7786bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSynchronization2Features_self_partial(enc, val);
7787bf215546Sopenharmony_ci}
7788bf215546Sopenharmony_ci
7789bf215546Sopenharmony_ci/* struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT chain */
7790bf215546Sopenharmony_ci
7791bf215546Sopenharmony_cistatic inline size_t
7792bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(const void *val)
7793bf215546Sopenharmony_ci{
7794bf215546Sopenharmony_ci    /* no known/supported struct */
7795bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7796bf215546Sopenharmony_ci}
7797bf215546Sopenharmony_ci
7798bf215546Sopenharmony_cistatic inline size_t
7799bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7800bf215546Sopenharmony_ci{
7801bf215546Sopenharmony_ci    size_t size = 0;
7802bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7803bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->ycbcr2plane444Formats);
7804bf215546Sopenharmony_ci    return size;
7805bf215546Sopenharmony_ci}
7806bf215546Sopenharmony_ci
7807bf215546Sopenharmony_cistatic inline size_t
7808bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7809bf215546Sopenharmony_ci{
7810bf215546Sopenharmony_ci    size_t size = 0;
7811bf215546Sopenharmony_ci
7812bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7813bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(val->pNext);
7814bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(val);
7815bf215546Sopenharmony_ci
7816bf215546Sopenharmony_ci    return size;
7817bf215546Sopenharmony_ci}
7818bf215546Sopenharmony_ci
7819bf215546Sopenharmony_cistatic inline void
7820bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
7821bf215546Sopenharmony_ci{
7822bf215546Sopenharmony_ci    /* no known/supported struct */
7823bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7824bf215546Sopenharmony_ci}
7825bf215546Sopenharmony_ci
7826bf215546Sopenharmony_cistatic inline void
7827bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7828bf215546Sopenharmony_ci{
7829bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7830bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->ycbcr2plane444Formats);
7831bf215546Sopenharmony_ci}
7832bf215546Sopenharmony_ci
7833bf215546Sopenharmony_cistatic inline void
7834bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7835bf215546Sopenharmony_ci{
7836bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT);
7837bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT });
7838bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(enc, val->pNext);
7839bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, val);
7840bf215546Sopenharmony_ci}
7841bf215546Sopenharmony_ci
7842bf215546Sopenharmony_cistatic inline void
7843bf215546Sopenharmony_civn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
7844bf215546Sopenharmony_ci{
7845bf215546Sopenharmony_ci    /* no known/supported struct */
7846bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7847bf215546Sopenharmony_ci        assert(false);
7848bf215546Sopenharmony_ci}
7849bf215546Sopenharmony_ci
7850bf215546Sopenharmony_cistatic inline void
7851bf215546Sopenharmony_civn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7852bf215546Sopenharmony_ci{
7853bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7854bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->ycbcr2plane444Formats);
7855bf215546Sopenharmony_ci}
7856bf215546Sopenharmony_ci
7857bf215546Sopenharmony_cistatic inline void
7858bf215546Sopenharmony_civn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7859bf215546Sopenharmony_ci{
7860bf215546Sopenharmony_ci    VkStructureType stype;
7861bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7862bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT);
7863bf215546Sopenharmony_ci
7864bf215546Sopenharmony_ci    assert(val->sType == stype);
7865bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(dec, val->pNext);
7866bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(dec, val);
7867bf215546Sopenharmony_ci}
7868bf215546Sopenharmony_ci
7869bf215546Sopenharmony_cistatic inline size_t
7870bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial(const void *val)
7871bf215546Sopenharmony_ci{
7872bf215546Sopenharmony_ci    /* no known/supported struct */
7873bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7874bf215546Sopenharmony_ci}
7875bf215546Sopenharmony_ci
7876bf215546Sopenharmony_cistatic inline size_t
7877bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7878bf215546Sopenharmony_ci{
7879bf215546Sopenharmony_ci    size_t size = 0;
7880bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7881bf215546Sopenharmony_ci    /* skip val->ycbcr2plane444Formats */
7882bf215546Sopenharmony_ci    return size;
7883bf215546Sopenharmony_ci}
7884bf215546Sopenharmony_ci
7885bf215546Sopenharmony_cistatic inline size_t
7886bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_partial(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7887bf215546Sopenharmony_ci{
7888bf215546Sopenharmony_ci    size_t size = 0;
7889bf215546Sopenharmony_ci
7890bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7891bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial(val->pNext);
7892bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial(val);
7893bf215546Sopenharmony_ci
7894bf215546Sopenharmony_ci    return size;
7895bf215546Sopenharmony_ci}
7896bf215546Sopenharmony_ci
7897bf215546Sopenharmony_cistatic inline void
7898bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
7899bf215546Sopenharmony_ci{
7900bf215546Sopenharmony_ci    /* no known/supported struct */
7901bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7902bf215546Sopenharmony_ci}
7903bf215546Sopenharmony_ci
7904bf215546Sopenharmony_cistatic inline void
7905bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7906bf215546Sopenharmony_ci{
7907bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7908bf215546Sopenharmony_ci    /* skip val->ycbcr2plane444Formats */
7909bf215546Sopenharmony_ci}
7910bf215546Sopenharmony_ci
7911bf215546Sopenharmony_cistatic inline void
7912bf215546Sopenharmony_civn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val)
7913bf215546Sopenharmony_ci{
7914bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT);
7915bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT });
7916bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial(enc, val->pNext);
7917bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial(enc, val);
7918bf215546Sopenharmony_ci}
7919bf215546Sopenharmony_ci
7920bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProvokingVertexFeaturesEXT chain */
7921bf215546Sopenharmony_ci
7922bf215546Sopenharmony_cistatic inline size_t
7923bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(const void *val)
7924bf215546Sopenharmony_ci{
7925bf215546Sopenharmony_ci    /* no known/supported struct */
7926bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
7927bf215546Sopenharmony_ci}
7928bf215546Sopenharmony_ci
7929bf215546Sopenharmony_cistatic inline size_t
7930bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7931bf215546Sopenharmony_ci{
7932bf215546Sopenharmony_ci    size_t size = 0;
7933bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7934bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->provokingVertexLast);
7935bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackPreservesProvokingVertex);
7936bf215546Sopenharmony_ci    return size;
7937bf215546Sopenharmony_ci}
7938bf215546Sopenharmony_ci
7939bf215546Sopenharmony_cistatic inline size_t
7940bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT(const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7941bf215546Sopenharmony_ci{
7942bf215546Sopenharmony_ci    size_t size = 0;
7943bf215546Sopenharmony_ci
7944bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
7945bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(val->pNext);
7946bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(val);
7947bf215546Sopenharmony_ci
7948bf215546Sopenharmony_ci    return size;
7949bf215546Sopenharmony_ci}
7950bf215546Sopenharmony_ci
7951bf215546Sopenharmony_cistatic inline void
7952bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
7953bf215546Sopenharmony_ci{
7954bf215546Sopenharmony_ci    /* no known/supported struct */
7955bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
7956bf215546Sopenharmony_ci}
7957bf215546Sopenharmony_ci
7958bf215546Sopenharmony_cistatic inline void
7959bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7960bf215546Sopenharmony_ci{
7961bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7962bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->provokingVertexLast);
7963bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->transformFeedbackPreservesProvokingVertex);
7964bf215546Sopenharmony_ci}
7965bf215546Sopenharmony_ci
7966bf215546Sopenharmony_cistatic inline void
7967bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7968bf215546Sopenharmony_ci{
7969bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT);
7970bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT });
7971bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(enc, val->pNext);
7972bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, val);
7973bf215546Sopenharmony_ci}
7974bf215546Sopenharmony_ci
7975bf215546Sopenharmony_cistatic inline void
7976bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
7977bf215546Sopenharmony_ci{
7978bf215546Sopenharmony_ci    /* no known/supported struct */
7979bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
7980bf215546Sopenharmony_ci        assert(false);
7981bf215546Sopenharmony_ci}
7982bf215546Sopenharmony_ci
7983bf215546Sopenharmony_cistatic inline void
7984bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7985bf215546Sopenharmony_ci{
7986bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
7987bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->provokingVertexLast);
7988bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackPreservesProvokingVertex);
7989bf215546Sopenharmony_ci}
7990bf215546Sopenharmony_ci
7991bf215546Sopenharmony_cistatic inline void
7992bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
7993bf215546Sopenharmony_ci{
7994bf215546Sopenharmony_ci    VkStructureType stype;
7995bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
7996bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT);
7997bf215546Sopenharmony_ci
7998bf215546Sopenharmony_ci    assert(val->sType == stype);
7999bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(dec, val->pNext);
8000bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(dec, val);
8001bf215546Sopenharmony_ci}
8002bf215546Sopenharmony_ci
8003bf215546Sopenharmony_cistatic inline size_t
8004bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial(const void *val)
8005bf215546Sopenharmony_ci{
8006bf215546Sopenharmony_ci    /* no known/supported struct */
8007bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8008bf215546Sopenharmony_ci}
8009bf215546Sopenharmony_ci
8010bf215546Sopenharmony_cistatic inline size_t
8011bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial(const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
8012bf215546Sopenharmony_ci{
8013bf215546Sopenharmony_ci    size_t size = 0;
8014bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8015bf215546Sopenharmony_ci    /* skip val->provokingVertexLast */
8016bf215546Sopenharmony_ci    /* skip val->transformFeedbackPreservesProvokingVertex */
8017bf215546Sopenharmony_ci    return size;
8018bf215546Sopenharmony_ci}
8019bf215546Sopenharmony_ci
8020bf215546Sopenharmony_cistatic inline size_t
8021bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_partial(const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
8022bf215546Sopenharmony_ci{
8023bf215546Sopenharmony_ci    size_t size = 0;
8024bf215546Sopenharmony_ci
8025bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8026bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial(val->pNext);
8027bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial(val);
8028bf215546Sopenharmony_ci
8029bf215546Sopenharmony_ci    return size;
8030bf215546Sopenharmony_ci}
8031bf215546Sopenharmony_ci
8032bf215546Sopenharmony_cistatic inline void
8033bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
8034bf215546Sopenharmony_ci{
8035bf215546Sopenharmony_ci    /* no known/supported struct */
8036bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8037bf215546Sopenharmony_ci}
8038bf215546Sopenharmony_ci
8039bf215546Sopenharmony_cistatic inline void
8040bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
8041bf215546Sopenharmony_ci{
8042bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8043bf215546Sopenharmony_ci    /* skip val->provokingVertexLast */
8044bf215546Sopenharmony_ci    /* skip val->transformFeedbackPreservesProvokingVertex */
8045bf215546Sopenharmony_ci}
8046bf215546Sopenharmony_ci
8047bf215546Sopenharmony_cistatic inline void
8048bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
8049bf215546Sopenharmony_ci{
8050bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT);
8051bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT });
8052bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial(enc, val->pNext);
8053bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial(enc, val);
8054bf215546Sopenharmony_ci}
8055bf215546Sopenharmony_ci
8056bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderIntegerDotProductFeatures chain */
8057bf215546Sopenharmony_ci
8058bf215546Sopenharmony_cistatic inline size_t
8059bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(const void *val)
8060bf215546Sopenharmony_ci{
8061bf215546Sopenharmony_ci    /* no known/supported struct */
8062bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8063bf215546Sopenharmony_ci}
8064bf215546Sopenharmony_ci
8065bf215546Sopenharmony_cistatic inline size_t
8066bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8067bf215546Sopenharmony_ci{
8068bf215546Sopenharmony_ci    size_t size = 0;
8069bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8070bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderIntegerDotProduct);
8071bf215546Sopenharmony_ci    return size;
8072bf215546Sopenharmony_ci}
8073bf215546Sopenharmony_ci
8074bf215546Sopenharmony_cistatic inline size_t
8075bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures(const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8076bf215546Sopenharmony_ci{
8077bf215546Sopenharmony_ci    size_t size = 0;
8078bf215546Sopenharmony_ci
8079bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8080bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(val->pNext);
8081bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(val);
8082bf215546Sopenharmony_ci
8083bf215546Sopenharmony_ci    return size;
8084bf215546Sopenharmony_ci}
8085bf215546Sopenharmony_ci
8086bf215546Sopenharmony_cistatic inline void
8087bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
8088bf215546Sopenharmony_ci{
8089bf215546Sopenharmony_ci    /* no known/supported struct */
8090bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8091bf215546Sopenharmony_ci}
8092bf215546Sopenharmony_ci
8093bf215546Sopenharmony_cistatic inline void
8094bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8095bf215546Sopenharmony_ci{
8096bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8097bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct);
8098bf215546Sopenharmony_ci}
8099bf215546Sopenharmony_ci
8100bf215546Sopenharmony_cistatic inline void
8101bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8102bf215546Sopenharmony_ci{
8103bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES);
8104bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES });
8105bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(enc, val->pNext);
8106bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, val);
8107bf215546Sopenharmony_ci}
8108bf215546Sopenharmony_ci
8109bf215546Sopenharmony_cistatic inline void
8110bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
8111bf215546Sopenharmony_ci{
8112bf215546Sopenharmony_ci    /* no known/supported struct */
8113bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
8114bf215546Sopenharmony_ci        assert(false);
8115bf215546Sopenharmony_ci}
8116bf215546Sopenharmony_ci
8117bf215546Sopenharmony_cistatic inline void
8118bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8119bf215546Sopenharmony_ci{
8120bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8121bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct);
8122bf215546Sopenharmony_ci}
8123bf215546Sopenharmony_ci
8124bf215546Sopenharmony_cistatic inline void
8125bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8126bf215546Sopenharmony_ci{
8127bf215546Sopenharmony_ci    VkStructureType stype;
8128bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
8129bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES);
8130bf215546Sopenharmony_ci
8131bf215546Sopenharmony_ci    assert(val->sType == stype);
8132bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(dec, val->pNext);
8133bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(dec, val);
8134bf215546Sopenharmony_ci}
8135bf215546Sopenharmony_ci
8136bf215546Sopenharmony_cistatic inline size_t
8137bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial(const void *val)
8138bf215546Sopenharmony_ci{
8139bf215546Sopenharmony_ci    /* no known/supported struct */
8140bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8141bf215546Sopenharmony_ci}
8142bf215546Sopenharmony_ci
8143bf215546Sopenharmony_cistatic inline size_t
8144bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial(const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8145bf215546Sopenharmony_ci{
8146bf215546Sopenharmony_ci    size_t size = 0;
8147bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8148bf215546Sopenharmony_ci    /* skip val->shaderIntegerDotProduct */
8149bf215546Sopenharmony_ci    return size;
8150bf215546Sopenharmony_ci}
8151bf215546Sopenharmony_ci
8152bf215546Sopenharmony_cistatic inline size_t
8153bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_partial(const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8154bf215546Sopenharmony_ci{
8155bf215546Sopenharmony_ci    size_t size = 0;
8156bf215546Sopenharmony_ci
8157bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8158bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial(val->pNext);
8159bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial(val);
8160bf215546Sopenharmony_ci
8161bf215546Sopenharmony_ci    return size;
8162bf215546Sopenharmony_ci}
8163bf215546Sopenharmony_ci
8164bf215546Sopenharmony_cistatic inline void
8165bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
8166bf215546Sopenharmony_ci{
8167bf215546Sopenharmony_ci    /* no known/supported struct */
8168bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8169bf215546Sopenharmony_ci}
8170bf215546Sopenharmony_ci
8171bf215546Sopenharmony_cistatic inline void
8172bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8173bf215546Sopenharmony_ci{
8174bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8175bf215546Sopenharmony_ci    /* skip val->shaderIntegerDotProduct */
8176bf215546Sopenharmony_ci}
8177bf215546Sopenharmony_ci
8178bf215546Sopenharmony_cistatic inline void
8179bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val)
8180bf215546Sopenharmony_ci{
8181bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES);
8182bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES });
8183bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial(enc, val->pNext);
8184bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial(enc, val);
8185bf215546Sopenharmony_ci}
8186bf215546Sopenharmony_ci
8187bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDynamicRenderingFeatures chain */
8188bf215546Sopenharmony_ci
8189bf215546Sopenharmony_cistatic inline size_t
8190bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_pnext(const void *val)
8191bf215546Sopenharmony_ci{
8192bf215546Sopenharmony_ci    /* no known/supported struct */
8193bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8194bf215546Sopenharmony_ci}
8195bf215546Sopenharmony_ci
8196bf215546Sopenharmony_cistatic inline size_t
8197bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self(const VkPhysicalDeviceDynamicRenderingFeatures *val)
8198bf215546Sopenharmony_ci{
8199bf215546Sopenharmony_ci    size_t size = 0;
8200bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8201bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->dynamicRendering);
8202bf215546Sopenharmony_ci    return size;
8203bf215546Sopenharmony_ci}
8204bf215546Sopenharmony_ci
8205bf215546Sopenharmony_cistatic inline size_t
8206bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures(const VkPhysicalDeviceDynamicRenderingFeatures *val)
8207bf215546Sopenharmony_ci{
8208bf215546Sopenharmony_ci    size_t size = 0;
8209bf215546Sopenharmony_ci
8210bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8211bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_pnext(val->pNext);
8212bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self(val);
8213bf215546Sopenharmony_ci
8214bf215546Sopenharmony_ci    return size;
8215bf215546Sopenharmony_ci}
8216bf215546Sopenharmony_ci
8217bf215546Sopenharmony_cistatic inline void
8218bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(struct vn_cs_encoder *enc, const void *val)
8219bf215546Sopenharmony_ci{
8220bf215546Sopenharmony_ci    /* no known/supported struct */
8221bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8222bf215546Sopenharmony_ci}
8223bf215546Sopenharmony_ci
8224bf215546Sopenharmony_cistatic inline void
8225bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
8226bf215546Sopenharmony_ci{
8227bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8228bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->dynamicRendering);
8229bf215546Sopenharmony_ci}
8230bf215546Sopenharmony_ci
8231bf215546Sopenharmony_cistatic inline void
8232bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
8233bf215546Sopenharmony_ci{
8234bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES);
8235bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES });
8236bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(enc, val->pNext);
8237bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, val);
8238bf215546Sopenharmony_ci}
8239bf215546Sopenharmony_ci
8240bf215546Sopenharmony_cistatic inline void
8241bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(struct vn_cs_decoder *dec, const void *val)
8242bf215546Sopenharmony_ci{
8243bf215546Sopenharmony_ci    /* no known/supported struct */
8244bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
8245bf215546Sopenharmony_ci        assert(false);
8246bf215546Sopenharmony_ci}
8247bf215546Sopenharmony_ci
8248bf215546Sopenharmony_cistatic inline void
8249bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
8250bf215546Sopenharmony_ci{
8251bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8252bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->dynamicRendering);
8253bf215546Sopenharmony_ci}
8254bf215546Sopenharmony_ci
8255bf215546Sopenharmony_cistatic inline void
8256bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDynamicRenderingFeatures(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val)
8257bf215546Sopenharmony_ci{
8258bf215546Sopenharmony_ci    VkStructureType stype;
8259bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
8260bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES);
8261bf215546Sopenharmony_ci
8262bf215546Sopenharmony_ci    assert(val->sType == stype);
8263bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(dec, val->pNext);
8264bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self(dec, val);
8265bf215546Sopenharmony_ci}
8266bf215546Sopenharmony_ci
8267bf215546Sopenharmony_cistatic inline size_t
8268bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial(const void *val)
8269bf215546Sopenharmony_ci{
8270bf215546Sopenharmony_ci    /* no known/supported struct */
8271bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8272bf215546Sopenharmony_ci}
8273bf215546Sopenharmony_ci
8274bf215546Sopenharmony_cistatic inline size_t
8275bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self_partial(const VkPhysicalDeviceDynamicRenderingFeatures *val)
8276bf215546Sopenharmony_ci{
8277bf215546Sopenharmony_ci    size_t size = 0;
8278bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8279bf215546Sopenharmony_ci    /* skip val->dynamicRendering */
8280bf215546Sopenharmony_ci    return size;
8281bf215546Sopenharmony_ci}
8282bf215546Sopenharmony_ci
8283bf215546Sopenharmony_cistatic inline size_t
8284bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_partial(const VkPhysicalDeviceDynamicRenderingFeatures *val)
8285bf215546Sopenharmony_ci{
8286bf215546Sopenharmony_ci    size_t size = 0;
8287bf215546Sopenharmony_ci
8288bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8289bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial(val->pNext);
8290bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self_partial(val);
8291bf215546Sopenharmony_ci
8292bf215546Sopenharmony_ci    return size;
8293bf215546Sopenharmony_ci}
8294bf215546Sopenharmony_ci
8295bf215546Sopenharmony_cistatic inline void
8296bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial(struct vn_cs_encoder *enc, const void *val)
8297bf215546Sopenharmony_ci{
8298bf215546Sopenharmony_ci    /* no known/supported struct */
8299bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8300bf215546Sopenharmony_ci}
8301bf215546Sopenharmony_ci
8302bf215546Sopenharmony_cistatic inline void
8303bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
8304bf215546Sopenharmony_ci{
8305bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8306bf215546Sopenharmony_ci    /* skip val->dynamicRendering */
8307bf215546Sopenharmony_ci}
8308bf215546Sopenharmony_ci
8309bf215546Sopenharmony_cistatic inline void
8310bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDynamicRenderingFeatures_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val)
8311bf215546Sopenharmony_ci{
8312bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES);
8313bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES });
8314bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial(enc, val->pNext);
8315bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial(enc, val);
8316bf215546Sopenharmony_ci}
8317bf215546Sopenharmony_ci
8318bf215546Sopenharmony_ci/* struct VkPhysicalDeviceImageViewMinLodFeaturesEXT chain */
8319bf215546Sopenharmony_ci
8320bf215546Sopenharmony_cistatic inline size_t
8321bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(const void *val)
8322bf215546Sopenharmony_ci{
8323bf215546Sopenharmony_ci    /* no known/supported struct */
8324bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8325bf215546Sopenharmony_ci}
8326bf215546Sopenharmony_ci
8327bf215546Sopenharmony_cistatic inline size_t
8328bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8329bf215546Sopenharmony_ci{
8330bf215546Sopenharmony_ci    size_t size = 0;
8331bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8332bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->minLod);
8333bf215546Sopenharmony_ci    return size;
8334bf215546Sopenharmony_ci}
8335bf215546Sopenharmony_ci
8336bf215546Sopenharmony_cistatic inline size_t
8337bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT(const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8338bf215546Sopenharmony_ci{
8339bf215546Sopenharmony_ci    size_t size = 0;
8340bf215546Sopenharmony_ci
8341bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8342bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(val->pNext);
8343bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(val);
8344bf215546Sopenharmony_ci
8345bf215546Sopenharmony_ci    return size;
8346bf215546Sopenharmony_ci}
8347bf215546Sopenharmony_ci
8348bf215546Sopenharmony_cistatic inline void
8349bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
8350bf215546Sopenharmony_ci{
8351bf215546Sopenharmony_ci    /* no known/supported struct */
8352bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8353bf215546Sopenharmony_ci}
8354bf215546Sopenharmony_ci
8355bf215546Sopenharmony_cistatic inline void
8356bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8357bf215546Sopenharmony_ci{
8358bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8359bf215546Sopenharmony_ci    vn_encode_VkBool32(enc, &val->minLod);
8360bf215546Sopenharmony_ci}
8361bf215546Sopenharmony_ci
8362bf215546Sopenharmony_cistatic inline void
8363bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8364bf215546Sopenharmony_ci{
8365bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT);
8366bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT });
8367bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(enc, val->pNext);
8368bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(enc, val);
8369bf215546Sopenharmony_ci}
8370bf215546Sopenharmony_ci
8371bf215546Sopenharmony_cistatic inline void
8372bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
8373bf215546Sopenharmony_ci{
8374bf215546Sopenharmony_ci    /* no known/supported struct */
8375bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
8376bf215546Sopenharmony_ci        assert(false);
8377bf215546Sopenharmony_ci}
8378bf215546Sopenharmony_ci
8379bf215546Sopenharmony_cistatic inline void
8380bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8381bf215546Sopenharmony_ci{
8382bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8383bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->minLod);
8384bf215546Sopenharmony_ci}
8385bf215546Sopenharmony_ci
8386bf215546Sopenharmony_cistatic inline void
8387bf215546Sopenharmony_civn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8388bf215546Sopenharmony_ci{
8389bf215546Sopenharmony_ci    VkStructureType stype;
8390bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
8391bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT);
8392bf215546Sopenharmony_ci
8393bf215546Sopenharmony_ci    assert(val->sType == stype);
8394bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext(dec, val->pNext);
8395bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(dec, val);
8396bf215546Sopenharmony_ci}
8397bf215546Sopenharmony_ci
8398bf215546Sopenharmony_cistatic inline size_t
8399bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial(const void *val)
8400bf215546Sopenharmony_ci{
8401bf215546Sopenharmony_ci    /* no known/supported struct */
8402bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8403bf215546Sopenharmony_ci}
8404bf215546Sopenharmony_ci
8405bf215546Sopenharmony_cistatic inline size_t
8406bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial(const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8407bf215546Sopenharmony_ci{
8408bf215546Sopenharmony_ci    size_t size = 0;
8409bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8410bf215546Sopenharmony_ci    /* skip val->minLod */
8411bf215546Sopenharmony_ci    return size;
8412bf215546Sopenharmony_ci}
8413bf215546Sopenharmony_ci
8414bf215546Sopenharmony_cistatic inline size_t
8415bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_partial(const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8416bf215546Sopenharmony_ci{
8417bf215546Sopenharmony_ci    size_t size = 0;
8418bf215546Sopenharmony_ci
8419bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8420bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial(val->pNext);
8421bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial(val);
8422bf215546Sopenharmony_ci
8423bf215546Sopenharmony_ci    return size;
8424bf215546Sopenharmony_ci}
8425bf215546Sopenharmony_ci
8426bf215546Sopenharmony_cistatic inline void
8427bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
8428bf215546Sopenharmony_ci{
8429bf215546Sopenharmony_ci    /* no known/supported struct */
8430bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
8431bf215546Sopenharmony_ci}
8432bf215546Sopenharmony_ci
8433bf215546Sopenharmony_cistatic inline void
8434bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8435bf215546Sopenharmony_ci{
8436bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8437bf215546Sopenharmony_ci    /* skip val->minLod */
8438bf215546Sopenharmony_ci}
8439bf215546Sopenharmony_ci
8440bf215546Sopenharmony_cistatic inline void
8441bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageViewMinLodFeaturesEXT *val)
8442bf215546Sopenharmony_ci{
8443bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT);
8444bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT });
8445bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_pnext_partial(enc, val->pNext);
8446bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial(enc, val);
8447bf215546Sopenharmony_ci}
8448bf215546Sopenharmony_ci
8449bf215546Sopenharmony_ci/* struct VkPhysicalDeviceFeatures2 chain */
8450bf215546Sopenharmony_ci
8451bf215546Sopenharmony_cistatic inline size_t
8452bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val)
8453bf215546Sopenharmony_ci{
8454bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
8455bf215546Sopenharmony_ci    size_t size = 0;
8456bf215546Sopenharmony_ci
8457bf215546Sopenharmony_ci    while (pnext) {
8458bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
8459bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
8460bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
8461bf215546Sopenharmony_ci                break;
8462bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8463bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8464bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8465bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_self((const VkPhysicalDevicePrivateDataFeatures *)pnext);
8466bf215546Sopenharmony_ci            return size;
8467bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
8468bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8469bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8470bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8471bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self((const VkPhysicalDeviceVariablePointersFeatures *)pnext);
8472bf215546Sopenharmony_ci            return size;
8473bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
8474bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8475bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8476bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8477bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_self((const VkPhysicalDeviceMultiviewFeatures *)pnext);
8478bf215546Sopenharmony_ci            return size;
8479bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
8480bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8481bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8482bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8483bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_self((const VkPhysicalDevice16BitStorageFeatures *)pnext);
8484bf215546Sopenharmony_ci            return size;
8485bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
8486bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8487bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8488bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8489bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self((const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
8490bf215546Sopenharmony_ci            return size;
8491bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
8492bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8493bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8494bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8495bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self((const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
8496bf215546Sopenharmony_ci            return size;
8497bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
8498bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8499bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8500bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8501bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self((const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
8502bf215546Sopenharmony_ci            return size;
8503bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
8504bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
8505bf215546Sopenharmony_ci                break;
8506bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8507bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8508bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8509bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self((const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
8510bf215546Sopenharmony_ci            return size;
8511bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
8512bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
8513bf215546Sopenharmony_ci                break;
8514bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8515bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8516bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8517bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_self((const VkPhysicalDeviceMaintenance4Features *)pnext);
8518bf215546Sopenharmony_ci            return size;
8519bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
8520bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8521bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8522bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8523bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self((const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
8524bf215546Sopenharmony_ci            return size;
8525bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
8526bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8527bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8528bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8529bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self((const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
8530bf215546Sopenharmony_ci            return size;
8531bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
8532bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8533bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8534bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8535bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self((const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
8536bf215546Sopenharmony_ci            return size;
8537bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
8538bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8539bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8540bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8541bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self((const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
8542bf215546Sopenharmony_ci            return size;
8543bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
8544bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8545bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8546bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8547bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self((const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
8548bf215546Sopenharmony_ci            return size;
8549bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
8550bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8551bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8552bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8553bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_self((const VkPhysicalDevice8BitStorageFeatures *)pnext);
8554bf215546Sopenharmony_ci            return size;
8555bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
8556bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
8557bf215546Sopenharmony_ci                break;
8558bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8559bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8560bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8561bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self((const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
8562bf215546Sopenharmony_ci            return size;
8563bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
8564bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8565bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8566bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8567bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self((const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
8568bf215546Sopenharmony_ci            return size;
8569bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
8570bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8571bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8572bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8573bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self((const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
8574bf215546Sopenharmony_ci            return size;
8575bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
8576bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
8577bf215546Sopenharmony_ci                break;
8578bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8579bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8580bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8581bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self((const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
8582bf215546Sopenharmony_ci            return size;
8583bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
8584bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
8585bf215546Sopenharmony_ci                break;
8586bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8587bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8588bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8589bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self((const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
8590bf215546Sopenharmony_ci            return size;
8591bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
8592bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8593bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8594bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8595bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self((const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
8596bf215546Sopenharmony_ci            return size;
8597bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
8598bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8599bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8600bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8601bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self((const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
8602bf215546Sopenharmony_ci            return size;
8603bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
8604bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
8605bf215546Sopenharmony_ci                break;
8606bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8607bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8608bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8609bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self((const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
8610bf215546Sopenharmony_ci            return size;
8611bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
8612bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8613bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8614bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8615bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self((const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
8616bf215546Sopenharmony_ci            return size;
8617bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
8618bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8619bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8620bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8621bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self((const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
8622bf215546Sopenharmony_ci            return size;
8623bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
8624bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
8625bf215546Sopenharmony_ci                break;
8626bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8627bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8628bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8629bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self((const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
8630bf215546Sopenharmony_ci            return size;
8631bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
8632bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
8633bf215546Sopenharmony_ci                break;
8634bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8635bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8636bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8637bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self((const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
8638bf215546Sopenharmony_ci            return size;
8639bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
8640bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8641bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8642bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8643bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self((const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
8644bf215546Sopenharmony_ci            return size;
8645bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
8646bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
8647bf215546Sopenharmony_ci                break;
8648bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8649bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8650bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8651bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self((const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
8652bf215546Sopenharmony_ci            return size;
8653bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
8654bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
8655bf215546Sopenharmony_ci                break;
8656bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8657bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8658bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8659bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self((const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
8660bf215546Sopenharmony_ci            return size;
8661bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
8662bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
8663bf215546Sopenharmony_ci                break;
8664bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8665bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8666bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8667bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self((const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
8668bf215546Sopenharmony_ci            return size;
8669bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
8670bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
8671bf215546Sopenharmony_ci                break;
8672bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8673bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8674bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8675bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self((const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
8676bf215546Sopenharmony_ci            return size;
8677bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
8678bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
8679bf215546Sopenharmony_ci                break;
8680bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8681bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8682bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8683bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self((const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
8684bf215546Sopenharmony_ci            return size;
8685bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
8686bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8687bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8688bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8689bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan11Features_self((const VkPhysicalDeviceVulkan11Features *)pnext);
8690bf215546Sopenharmony_ci            return size;
8691bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
8692bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8693bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8694bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8695bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan12Features_self((const VkPhysicalDeviceVulkan12Features *)pnext);
8696bf215546Sopenharmony_ci            return size;
8697bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
8698bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
8699bf215546Sopenharmony_ci                break;
8700bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8701bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8702bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8703bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self((const VkPhysicalDeviceVulkan13Features *)pnext);
8704bf215546Sopenharmony_ci            return size;
8705bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
8706bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
8707bf215546Sopenharmony_ci                break;
8708bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8709bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8710bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8711bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
8712bf215546Sopenharmony_ci            return size;
8713bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
8714bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
8715bf215546Sopenharmony_ci                break;
8716bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8717bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8718bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8719bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self((const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
8720bf215546Sopenharmony_ci            return size;
8721bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
8722bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
8723bf215546Sopenharmony_ci                break;
8724bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8725bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8726bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8727bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self((const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
8728bf215546Sopenharmony_ci            return size;
8729bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
8730bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
8731bf215546Sopenharmony_ci                break;
8732bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8733bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8734bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8735bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self((const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
8736bf215546Sopenharmony_ci            return size;
8737bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
8738bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
8739bf215546Sopenharmony_ci                break;
8740bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8741bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8742bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8743bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self((const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
8744bf215546Sopenharmony_ci            return size;
8745bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
8746bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
8747bf215546Sopenharmony_ci                break;
8748bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8749bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8750bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8751bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self((const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
8752bf215546Sopenharmony_ci            return size;
8753bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
8754bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
8755bf215546Sopenharmony_ci                break;
8756bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8757bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8758bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8759bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self((const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
8760bf215546Sopenharmony_ci            return size;
8761bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
8762bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
8763bf215546Sopenharmony_ci                break;
8764bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8765bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8766bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8767bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
8768bf215546Sopenharmony_ci            return size;
8769bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
8770bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
8771bf215546Sopenharmony_ci                break;
8772bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8773bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8774bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8775bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self((const VkPhysicalDeviceSynchronization2Features *)pnext);
8776bf215546Sopenharmony_ci            return size;
8777bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
8778bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
8779bf215546Sopenharmony_ci                break;
8780bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8781bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8782bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8783bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self((const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
8784bf215546Sopenharmony_ci            return size;
8785bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
8786bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
8787bf215546Sopenharmony_ci                break;
8788bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8789bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8790bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8791bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self((const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
8792bf215546Sopenharmony_ci            return size;
8793bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
8794bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
8795bf215546Sopenharmony_ci                break;
8796bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8797bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8798bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8799bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self((const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
8800bf215546Sopenharmony_ci            return size;
8801bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
8802bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
8803bf215546Sopenharmony_ci                break;
8804bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8805bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8806bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8807bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self((const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
8808bf215546Sopenharmony_ci            return size;
8809bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
8810bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
8811bf215546Sopenharmony_ci                break;
8812bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
8813bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
8814bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
8815bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self((const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
8816bf215546Sopenharmony_ci            return size;
8817bf215546Sopenharmony_ci        default:
8818bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
8819bf215546Sopenharmony_ci            break;
8820bf215546Sopenharmony_ci        }
8821bf215546Sopenharmony_ci        pnext = pnext->pNext;
8822bf215546Sopenharmony_ci    }
8823bf215546Sopenharmony_ci
8824bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
8825bf215546Sopenharmony_ci}
8826bf215546Sopenharmony_ci
8827bf215546Sopenharmony_cistatic inline size_t
8828bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2_self(const VkPhysicalDeviceFeatures2 *val)
8829bf215546Sopenharmony_ci{
8830bf215546Sopenharmony_ci    size_t size = 0;
8831bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
8832bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures(&val->features);
8833bf215546Sopenharmony_ci    return size;
8834bf215546Sopenharmony_ci}
8835bf215546Sopenharmony_ci
8836bf215546Sopenharmony_cistatic inline size_t
8837bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2(const VkPhysicalDeviceFeatures2 *val)
8838bf215546Sopenharmony_ci{
8839bf215546Sopenharmony_ci    size_t size = 0;
8840bf215546Sopenharmony_ci
8841bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
8842bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(val->pNext);
8843bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures2_self(val);
8844bf215546Sopenharmony_ci
8845bf215546Sopenharmony_ci    return size;
8846bf215546Sopenharmony_ci}
8847bf215546Sopenharmony_ci
8848bf215546Sopenharmony_cistatic inline void
8849bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void *val)
8850bf215546Sopenharmony_ci{
8851bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
8852bf215546Sopenharmony_ci
8853bf215546Sopenharmony_ci    while (pnext) {
8854bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
8855bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
8856bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
8857bf215546Sopenharmony_ci                break;
8858bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8859bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8860bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8861bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, (const VkPhysicalDevicePrivateDataFeatures *)pnext);
8862bf215546Sopenharmony_ci            return;
8863bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
8864bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8865bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8866bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8867bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(enc, (const VkPhysicalDeviceVariablePointersFeatures *)pnext);
8868bf215546Sopenharmony_ci            return;
8869bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
8870bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8871bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8872bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8873bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMultiviewFeatures_self(enc, (const VkPhysicalDeviceMultiviewFeatures *)pnext);
8874bf215546Sopenharmony_ci            return;
8875bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
8876bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8877bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8878bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8879bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice16BitStorageFeatures_self(enc, (const VkPhysicalDevice16BitStorageFeatures *)pnext);
8880bf215546Sopenharmony_ci            return;
8881bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
8882bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8883bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8884bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8885bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(enc, (const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
8886bf215546Sopenharmony_ci            return;
8887bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
8888bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8889bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8890bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8891bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(enc, (const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
8892bf215546Sopenharmony_ci            return;
8893bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
8894bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8895bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8896bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8897bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, (const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
8898bf215546Sopenharmony_ci            return;
8899bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
8900bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
8901bf215546Sopenharmony_ci                break;
8902bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8903bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8904bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8905bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, (const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
8906bf215546Sopenharmony_ci            return;
8907bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
8908bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
8909bf215546Sopenharmony_ci                break;
8910bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8911bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8912bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8913bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, (const VkPhysicalDeviceMaintenance4Features *)pnext);
8914bf215546Sopenharmony_ci            return;
8915bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
8916bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8917bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8918bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8919bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, (const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
8920bf215546Sopenharmony_ci            return;
8921bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
8922bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8923bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8924bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8925bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, (const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
8926bf215546Sopenharmony_ci            return;
8927bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
8928bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8929bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8930bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8931bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, (const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
8932bf215546Sopenharmony_ci            return;
8933bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
8934bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8935bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8936bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8937bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(enc, (const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
8938bf215546Sopenharmony_ci            return;
8939bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
8940bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8941bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8942bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8943bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(enc, (const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
8944bf215546Sopenharmony_ci            return;
8945bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
8946bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8947bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8948bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8949bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice8BitStorageFeatures_self(enc, (const VkPhysicalDevice8BitStorageFeatures *)pnext);
8950bf215546Sopenharmony_ci            return;
8951bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
8952bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
8953bf215546Sopenharmony_ci                break;
8954bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8955bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8956bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8957bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(enc, (const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
8958bf215546Sopenharmony_ci            return;
8959bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
8960bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8961bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8962bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8963bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(enc, (const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
8964bf215546Sopenharmony_ci            return;
8965bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
8966bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8967bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8968bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8969bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(enc, (const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
8970bf215546Sopenharmony_ci            return;
8971bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
8972bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
8973bf215546Sopenharmony_ci                break;
8974bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8975bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8976bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8977bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(enc, (const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
8978bf215546Sopenharmony_ci            return;
8979bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
8980bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
8981bf215546Sopenharmony_ci                break;
8982bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8983bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8984bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8985bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
8986bf215546Sopenharmony_ci            return;
8987bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
8988bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8989bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8990bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8991bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(enc, (const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
8992bf215546Sopenharmony_ci            return;
8993bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
8994bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
8995bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
8996bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
8997bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(enc, (const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
8998bf215546Sopenharmony_ci            return;
8999bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
9000bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
9001bf215546Sopenharmony_ci                break;
9002bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9003bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9004bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9005bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
9006bf215546Sopenharmony_ci            return;
9007bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
9008bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9009bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9010bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9011bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(enc, (const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
9012bf215546Sopenharmony_ci            return;
9013bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
9014bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9015bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9016bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9017bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, (const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
9018bf215546Sopenharmony_ci            return;
9019bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
9020bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
9021bf215546Sopenharmony_ci                break;
9022bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9023bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9024bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9025bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
9026bf215546Sopenharmony_ci            return;
9027bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
9028bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
9029bf215546Sopenharmony_ci                break;
9030bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9031bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9032bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9033bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(enc, (const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
9034bf215546Sopenharmony_ci            return;
9035bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
9036bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9037bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9038bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9039bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
9040bf215546Sopenharmony_ci            return;
9041bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
9042bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
9043bf215546Sopenharmony_ci                break;
9044bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9045bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9046bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9047bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
9048bf215546Sopenharmony_ci            return;
9049bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
9050bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
9051bf215546Sopenharmony_ci                break;
9052bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9053bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9054bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9055bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
9056bf215546Sopenharmony_ci            return;
9057bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
9058bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
9059bf215546Sopenharmony_ci                break;
9060bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9061bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9062bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9063bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
9064bf215546Sopenharmony_ci            return;
9065bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
9066bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
9067bf215546Sopenharmony_ci                break;
9068bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9069bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9070bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9071bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
9072bf215546Sopenharmony_ci            return;
9073bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
9074bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
9075bf215546Sopenharmony_ci                break;
9076bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9077bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9078bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9079bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, (const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
9080bf215546Sopenharmony_ci            return;
9081bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
9082bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9083bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9084bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9085bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, (const VkPhysicalDeviceVulkan11Features *)pnext);
9086bf215546Sopenharmony_ci            return;
9087bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
9088bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9089bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9090bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9091bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, (const VkPhysicalDeviceVulkan12Features *)pnext);
9092bf215546Sopenharmony_ci            return;
9093bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
9094bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
9095bf215546Sopenharmony_ci                break;
9096bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9097bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9098bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9099bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext);
9100bf215546Sopenharmony_ci            return;
9101bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
9102bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
9103bf215546Sopenharmony_ci                break;
9104bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9105bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9106bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9107bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
9108bf215546Sopenharmony_ci            return;
9109bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
9110bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
9111bf215546Sopenharmony_ci                break;
9112bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9113bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9114bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9115bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
9116bf215546Sopenharmony_ci            return;
9117bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
9118bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
9119bf215546Sopenharmony_ci                break;
9120bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9121bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9122bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9123bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
9124bf215546Sopenharmony_ci            return;
9125bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
9126bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
9127bf215546Sopenharmony_ci                break;
9128bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9129bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9130bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9131bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
9132bf215546Sopenharmony_ci            return;
9133bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
9134bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
9135bf215546Sopenharmony_ci                break;
9136bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9137bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9138bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9139bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(enc, (const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
9140bf215546Sopenharmony_ci            return;
9141bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
9142bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
9143bf215546Sopenharmony_ci                break;
9144bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9145bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9146bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9147bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, (const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
9148bf215546Sopenharmony_ci            return;
9149bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
9150bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
9151bf215546Sopenharmony_ci                break;
9152bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9153bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9154bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9155bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, (const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
9156bf215546Sopenharmony_ci            return;
9157bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
9158bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
9159bf215546Sopenharmony_ci                break;
9160bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9161bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9162bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9163bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
9164bf215546Sopenharmony_ci            return;
9165bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
9166bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
9167bf215546Sopenharmony_ci                break;
9168bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9169bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9170bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9171bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
9172bf215546Sopenharmony_ci            return;
9173bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
9174bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
9175bf215546Sopenharmony_ci                break;
9176bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9177bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9178bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9179bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
9180bf215546Sopenharmony_ci            return;
9181bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
9182bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
9183bf215546Sopenharmony_ci                break;
9184bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9185bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9186bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9187bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
9188bf215546Sopenharmony_ci            return;
9189bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
9190bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
9191bf215546Sopenharmony_ci                break;
9192bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9193bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9194bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9195bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
9196bf215546Sopenharmony_ci            return;
9197bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
9198bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
9199bf215546Sopenharmony_ci                break;
9200bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9201bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9202bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9203bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, (const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
9204bf215546Sopenharmony_ci            return;
9205bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
9206bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
9207bf215546Sopenharmony_ci                break;
9208bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9209bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9210bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
9211bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(enc, (const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
9212bf215546Sopenharmony_ci            return;
9213bf215546Sopenharmony_ci        default:
9214bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
9215bf215546Sopenharmony_ci            break;
9216bf215546Sopenharmony_ci        }
9217bf215546Sopenharmony_ci        pnext = pnext->pNext;
9218bf215546Sopenharmony_ci    }
9219bf215546Sopenharmony_ci
9220bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
9221bf215546Sopenharmony_ci}
9222bf215546Sopenharmony_ci
9223bf215546Sopenharmony_cistatic inline void
9224bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
9225bf215546Sopenharmony_ci{
9226bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
9227bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures(enc, &val->features);
9228bf215546Sopenharmony_ci}
9229bf215546Sopenharmony_ci
9230bf215546Sopenharmony_cistatic inline void
9231bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
9232bf215546Sopenharmony_ci{
9233bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2);
9234bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 });
9235bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, val->pNext);
9236bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures2_self(enc, val);
9237bf215546Sopenharmony_ci}
9238bf215546Sopenharmony_ci
9239bf215546Sopenharmony_cistatic inline void
9240bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_decoder *dec, const void *val)
9241bf215546Sopenharmony_ci{
9242bf215546Sopenharmony_ci    VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;
9243bf215546Sopenharmony_ci    VkStructureType stype;
9244bf215546Sopenharmony_ci
9245bf215546Sopenharmony_ci    if (!vn_decode_simple_pointer(dec))
9246bf215546Sopenharmony_ci        return;
9247bf215546Sopenharmony_ci
9248bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
9249bf215546Sopenharmony_ci    while (true) {
9250bf215546Sopenharmony_ci        assert(pnext);
9251bf215546Sopenharmony_ci        if (pnext->sType == stype)
9252bf215546Sopenharmony_ci            break;
9253bf215546Sopenharmony_ci
9254bf215546Sopenharmony_ci        pnext = pnext->pNext;
9255bf215546Sopenharmony_ci    }
9256bf215546Sopenharmony_ci
9257bf215546Sopenharmony_ci    switch ((int32_t)pnext->sType) {
9258bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
9259bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9260bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevicePrivateDataFeatures_self(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext);
9261bf215546Sopenharmony_ci        break;
9262bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
9263bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9264bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVariablePointersFeatures_self(dec, (VkPhysicalDeviceVariablePointersFeatures *)pnext);
9265bf215546Sopenharmony_ci        break;
9266bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
9267bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9268bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMultiviewFeatures_self(dec, (VkPhysicalDeviceMultiviewFeatures *)pnext);
9269bf215546Sopenharmony_ci        break;
9270bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
9271bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9272bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevice16BitStorageFeatures_self(dec, (VkPhysicalDevice16BitStorageFeatures *)pnext);
9273bf215546Sopenharmony_ci        break;
9274bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
9275bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9276bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(dec, (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
9277bf215546Sopenharmony_ci        break;
9278bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
9279bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9280bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(dec, (VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
9281bf215546Sopenharmony_ci        break;
9282bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
9283bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9284bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
9285bf215546Sopenharmony_ci        break;
9286bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
9287bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9288bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
9289bf215546Sopenharmony_ci        break;
9290bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
9291bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9292bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMaintenance4Features_self(dec, (VkPhysicalDeviceMaintenance4Features *)pnext);
9293bf215546Sopenharmony_ci        break;
9294bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
9295bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9296bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self(dec, (VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
9297bf215546Sopenharmony_ci        break;
9298bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
9299bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9300bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self(dec, (VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
9301bf215546Sopenharmony_ci        break;
9302bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
9303bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9304bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self(dec, (VkPhysicalDeviceHostQueryResetFeatures *)pnext);
9305bf215546Sopenharmony_ci        break;
9306bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
9307bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9308bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDescriptorIndexingFeatures_self(dec, (VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
9309bf215546Sopenharmony_ci        break;
9310bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
9311bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9312bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
9313bf215546Sopenharmony_ci        break;
9314bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
9315bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9316bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevice8BitStorageFeatures_self(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext);
9317bf215546Sopenharmony_ci        break;
9318bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
9319bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9320bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(dec, (VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
9321bf215546Sopenharmony_ci        break;
9322bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
9323bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9324bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
9325bf215546Sopenharmony_ci        break;
9326bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
9327bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9328bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
9329bf215546Sopenharmony_ci        break;
9330bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
9331bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9332bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(dec, (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
9333bf215546Sopenharmony_ci        break;
9334bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
9335bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9336bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
9337bf215546Sopenharmony_ci        break;
9338bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
9339bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9340bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
9341bf215546Sopenharmony_ci        break;
9342bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
9343bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9344bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
9345bf215546Sopenharmony_ci        break;
9346bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
9347bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9348bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(dec, (VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
9349bf215546Sopenharmony_ci        break;
9350bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
9351bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9352bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
9353bf215546Sopenharmony_ci        break;
9354bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
9355bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9356bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
9357bf215546Sopenharmony_ci        break;
9358bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
9359bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9360bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
9361bf215546Sopenharmony_ci        break;
9362bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
9363bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9364bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(dec, (VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
9365bf215546Sopenharmony_ci        break;
9366bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
9367bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9368bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
9369bf215546Sopenharmony_ci        break;
9370bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
9371bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9372bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
9373bf215546Sopenharmony_ci        break;
9374bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
9375bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9376bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
9377bf215546Sopenharmony_ci        break;
9378bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
9379bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9380bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
9381bf215546Sopenharmony_ci        break;
9382bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
9383bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9384bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
9385bf215546Sopenharmony_ci        break;
9386bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
9387bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9388bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
9389bf215546Sopenharmony_ci        break;
9390bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
9391bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9392bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan11Features_self(dec, (VkPhysicalDeviceVulkan11Features *)pnext);
9393bf215546Sopenharmony_ci        break;
9394bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
9395bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9396bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan12Features_self(dec, (VkPhysicalDeviceVulkan12Features *)pnext);
9397bf215546Sopenharmony_ci        break;
9398bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
9399bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9400bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan13Features_self(dec, (VkPhysicalDeviceVulkan13Features *)pnext);
9401bf215546Sopenharmony_ci        break;
9402bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
9403bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9404bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(dec, (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
9405bf215546Sopenharmony_ci        break;
9406bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
9407bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9408bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
9409bf215546Sopenharmony_ci        break;
9410bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
9411bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9412bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
9413bf215546Sopenharmony_ci        break;
9414bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
9415bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9416bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
9417bf215546Sopenharmony_ci        break;
9418bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
9419bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9420bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceRobustness2FeaturesEXT_self(dec, (VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
9421bf215546Sopenharmony_ci        break;
9422bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
9423bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9424bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext);
9425bf215546Sopenharmony_ci        break;
9426bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
9427bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9428bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
9429bf215546Sopenharmony_ci        break;
9430bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
9431bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9432bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
9433bf215546Sopenharmony_ci        break;
9434bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
9435bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9436bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSynchronization2Features_self(dec, (VkPhysicalDeviceSynchronization2Features *)pnext);
9437bf215546Sopenharmony_ci        break;
9438bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
9439bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9440bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
9441bf215546Sopenharmony_ci        break;
9442bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
9443bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9444bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
9445bf215546Sopenharmony_ci        break;
9446bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
9447bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9448bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
9449bf215546Sopenharmony_ci        break;
9450bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
9451bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9452bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
9453bf215546Sopenharmony_ci        break;
9454bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
9455bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
9456bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(dec, (VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
9457bf215546Sopenharmony_ci        break;
9458bf215546Sopenharmony_ci    default:
9459bf215546Sopenharmony_ci        assert(false);
9460bf215546Sopenharmony_ci        break;
9461bf215546Sopenharmony_ci    }
9462bf215546Sopenharmony_ci}
9463bf215546Sopenharmony_ci
9464bf215546Sopenharmony_cistatic inline void
9465bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFeatures2_self(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
9466bf215546Sopenharmony_ci{
9467bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
9468bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceFeatures(dec, &val->features);
9469bf215546Sopenharmony_ci}
9470bf215546Sopenharmony_ci
9471bf215546Sopenharmony_cistatic inline void
9472bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFeatures2(struct vn_cs_decoder *dec, VkPhysicalDeviceFeatures2 *val)
9473bf215546Sopenharmony_ci{
9474bf215546Sopenharmony_ci    VkStructureType stype;
9475bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
9476bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2);
9477bf215546Sopenharmony_ci
9478bf215546Sopenharmony_ci    assert(val->sType == stype);
9479bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, val->pNext);
9480bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceFeatures2_self(dec, val);
9481bf215546Sopenharmony_ci}
9482bf215546Sopenharmony_ci
9483bf215546Sopenharmony_cistatic inline size_t
9484bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val)
9485bf215546Sopenharmony_ci{
9486bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
9487bf215546Sopenharmony_ci    size_t size = 0;
9488bf215546Sopenharmony_ci
9489bf215546Sopenharmony_ci    while (pnext) {
9490bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
9491bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
9492bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
9493bf215546Sopenharmony_ci                break;
9494bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9495bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9496bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9497bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_self_partial((const VkPhysicalDevicePrivateDataFeatures *)pnext);
9498bf215546Sopenharmony_ci            return size;
9499bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
9500bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9501bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9502bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9503bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self_partial((const VkPhysicalDeviceVariablePointersFeatures *)pnext);
9504bf215546Sopenharmony_ci            return size;
9505bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
9506bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9507bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9508bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9509bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_self_partial((const VkPhysicalDeviceMultiviewFeatures *)pnext);
9510bf215546Sopenharmony_ci            return size;
9511bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
9512bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9513bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9514bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9515bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_self_partial((const VkPhysicalDevice16BitStorageFeatures *)pnext);
9516bf215546Sopenharmony_ci            return size;
9517bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
9518bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9519bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9520bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9521bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial((const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
9522bf215546Sopenharmony_ci            return size;
9523bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
9524bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9525bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9526bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9527bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial((const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
9528bf215546Sopenharmony_ci            return size;
9529bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
9530bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9531bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9532bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9533bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self_partial((const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
9534bf215546Sopenharmony_ci            return size;
9535bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
9536bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
9537bf215546Sopenharmony_ci                break;
9538bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9539bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9540bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9541bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial((const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
9542bf215546Sopenharmony_ci            return size;
9543bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
9544bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
9545bf215546Sopenharmony_ci                break;
9546bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9547bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9548bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9549bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_self_partial((const VkPhysicalDeviceMaintenance4Features *)pnext);
9550bf215546Sopenharmony_ci            return size;
9551bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
9552bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9553bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9554bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9555bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial((const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
9556bf215546Sopenharmony_ci            return size;
9557bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
9558bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9559bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9560bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9561bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self_partial((const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
9562bf215546Sopenharmony_ci            return size;
9563bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
9564bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9565bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9566bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9567bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self_partial((const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
9568bf215546Sopenharmony_ci            return size;
9569bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
9570bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9571bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9572bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9573bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial((const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
9574bf215546Sopenharmony_ci            return size;
9575bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
9576bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9577bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9578bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9579bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial((const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
9580bf215546Sopenharmony_ci            return size;
9581bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
9582bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9583bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9584bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9585bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_self_partial((const VkPhysicalDevice8BitStorageFeatures *)pnext);
9586bf215546Sopenharmony_ci            return size;
9587bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
9588bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
9589bf215546Sopenharmony_ci                break;
9590bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9591bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9592bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9593bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial((const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
9594bf215546Sopenharmony_ci            return size;
9595bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
9596bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9597bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9598bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9599bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial((const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
9600bf215546Sopenharmony_ci            return size;
9601bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
9602bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9603bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9604bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9605bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self_partial((const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
9606bf215546Sopenharmony_ci            return size;
9607bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
9608bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
9609bf215546Sopenharmony_ci                break;
9610bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9611bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9612bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9613bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial((const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
9614bf215546Sopenharmony_ci            return size;
9615bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
9616bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
9617bf215546Sopenharmony_ci                break;
9618bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9619bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9620bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9621bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial((const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
9622bf215546Sopenharmony_ci            return size;
9623bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
9624bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9625bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9626bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9627bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial((const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
9628bf215546Sopenharmony_ci            return size;
9629bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
9630bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9631bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9632bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9633bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial((const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
9634bf215546Sopenharmony_ci            return size;
9635bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
9636bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
9637bf215546Sopenharmony_ci                break;
9638bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9639bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9640bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9641bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial((const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
9642bf215546Sopenharmony_ci            return size;
9643bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
9644bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9645bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9646bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9647bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial((const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
9648bf215546Sopenharmony_ci            return size;
9649bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
9650bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9651bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9652bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9653bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial((const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
9654bf215546Sopenharmony_ci            return size;
9655bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
9656bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
9657bf215546Sopenharmony_ci                break;
9658bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9659bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9660bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9661bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial((const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
9662bf215546Sopenharmony_ci            return size;
9663bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
9664bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
9665bf215546Sopenharmony_ci                break;
9666bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9667bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9668bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9669bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial((const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
9670bf215546Sopenharmony_ci            return size;
9671bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
9672bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9673bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9674bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9675bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial((const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
9676bf215546Sopenharmony_ci            return size;
9677bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
9678bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
9679bf215546Sopenharmony_ci                break;
9680bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9681bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9682bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9683bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial((const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
9684bf215546Sopenharmony_ci            return size;
9685bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
9686bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
9687bf215546Sopenharmony_ci                break;
9688bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9689bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9690bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9691bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial((const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
9692bf215546Sopenharmony_ci            return size;
9693bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
9694bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
9695bf215546Sopenharmony_ci                break;
9696bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9697bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9698bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9699bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial((const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
9700bf215546Sopenharmony_ci            return size;
9701bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
9702bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
9703bf215546Sopenharmony_ci                break;
9704bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9705bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9706bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9707bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial((const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
9708bf215546Sopenharmony_ci            return size;
9709bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
9710bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
9711bf215546Sopenharmony_ci                break;
9712bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9713bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9714bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9715bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial((const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
9716bf215546Sopenharmony_ci            return size;
9717bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
9718bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9719bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9720bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9721bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan11Features_self_partial((const VkPhysicalDeviceVulkan11Features *)pnext);
9722bf215546Sopenharmony_ci            return size;
9723bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
9724bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9725bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9726bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9727bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan12Features_self_partial((const VkPhysicalDeviceVulkan12Features *)pnext);
9728bf215546Sopenharmony_ci            return size;
9729bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
9730bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
9731bf215546Sopenharmony_ci                break;
9732bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9733bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9734bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9735bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self_partial((const VkPhysicalDeviceVulkan13Features *)pnext);
9736bf215546Sopenharmony_ci            return size;
9737bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
9738bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
9739bf215546Sopenharmony_ci                break;
9740bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9741bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9742bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9743bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
9744bf215546Sopenharmony_ci            return size;
9745bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
9746bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
9747bf215546Sopenharmony_ci                break;
9748bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9749bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9750bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9751bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial((const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
9752bf215546Sopenharmony_ci            return size;
9753bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
9754bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
9755bf215546Sopenharmony_ci                break;
9756bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9757bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9758bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9759bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial((const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
9760bf215546Sopenharmony_ci            return size;
9761bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
9762bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
9763bf215546Sopenharmony_ci                break;
9764bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9765bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9766bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9767bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial((const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
9768bf215546Sopenharmony_ci            return size;
9769bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
9770bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
9771bf215546Sopenharmony_ci                break;
9772bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9773bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9774bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9775bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial((const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
9776bf215546Sopenharmony_ci            return size;
9777bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
9778bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
9779bf215546Sopenharmony_ci                break;
9780bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9781bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9782bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9783bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self_partial((const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
9784bf215546Sopenharmony_ci            return size;
9785bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
9786bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
9787bf215546Sopenharmony_ci                break;
9788bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9789bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9790bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9791bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial((const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
9792bf215546Sopenharmony_ci            return size;
9793bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
9794bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
9795bf215546Sopenharmony_ci                break;
9796bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9797bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9798bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9799bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
9800bf215546Sopenharmony_ci            return size;
9801bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
9802bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
9803bf215546Sopenharmony_ci                break;
9804bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9805bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9806bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9807bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self_partial((const VkPhysicalDeviceSynchronization2Features *)pnext);
9808bf215546Sopenharmony_ci            return size;
9809bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
9810bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
9811bf215546Sopenharmony_ci                break;
9812bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9813bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9814bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9815bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial((const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
9816bf215546Sopenharmony_ci            return size;
9817bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
9818bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
9819bf215546Sopenharmony_ci                break;
9820bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9821bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9822bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9823bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial((const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
9824bf215546Sopenharmony_ci            return size;
9825bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
9826bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
9827bf215546Sopenharmony_ci                break;
9828bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9829bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9830bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9831bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial((const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
9832bf215546Sopenharmony_ci            return size;
9833bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
9834bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
9835bf215546Sopenharmony_ci                break;
9836bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9837bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9838bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9839bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self_partial((const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
9840bf215546Sopenharmony_ci            return size;
9841bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
9842bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
9843bf215546Sopenharmony_ci                break;
9844bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
9845bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
9846bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
9847bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial((const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
9848bf215546Sopenharmony_ci            return size;
9849bf215546Sopenharmony_ci        default:
9850bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
9851bf215546Sopenharmony_ci            break;
9852bf215546Sopenharmony_ci        }
9853bf215546Sopenharmony_ci        pnext = pnext->pNext;
9854bf215546Sopenharmony_ci    }
9855bf215546Sopenharmony_ci
9856bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
9857bf215546Sopenharmony_ci}
9858bf215546Sopenharmony_ci
9859bf215546Sopenharmony_cistatic inline size_t
9860bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2_self_partial(const VkPhysicalDeviceFeatures2 *val)
9861bf215546Sopenharmony_ci{
9862bf215546Sopenharmony_ci    size_t size = 0;
9863bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
9864bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures_partial(&val->features);
9865bf215546Sopenharmony_ci    return size;
9866bf215546Sopenharmony_ci}
9867bf215546Sopenharmony_ci
9868bf215546Sopenharmony_cistatic inline size_t
9869bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFeatures2_partial(const VkPhysicalDeviceFeatures2 *val)
9870bf215546Sopenharmony_ci{
9871bf215546Sopenharmony_ci    size_t size = 0;
9872bf215546Sopenharmony_ci
9873bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
9874bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(val->pNext);
9875bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFeatures2_self_partial(val);
9876bf215546Sopenharmony_ci
9877bf215546Sopenharmony_ci    return size;
9878bf215546Sopenharmony_ci}
9879bf215546Sopenharmony_ci
9880bf215546Sopenharmony_cistatic inline void
9881bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
9882bf215546Sopenharmony_ci{
9883bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
9884bf215546Sopenharmony_ci
9885bf215546Sopenharmony_ci    while (pnext) {
9886bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
9887bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
9888bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
9889bf215546Sopenharmony_ci                break;
9890bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9891bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9892bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9893bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePrivateDataFeatures_self_partial(enc, (const VkPhysicalDevicePrivateDataFeatures *)pnext);
9894bf215546Sopenharmony_ci            return;
9895bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
9896bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9897bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9898bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9899bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVariablePointersFeatures_self_partial(enc, (const VkPhysicalDeviceVariablePointersFeatures *)pnext);
9900bf215546Sopenharmony_ci            return;
9901bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
9902bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9903bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9904bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9905bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMultiviewFeatures_self_partial(enc, (const VkPhysicalDeviceMultiviewFeatures *)pnext);
9906bf215546Sopenharmony_ci            return;
9907bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
9908bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9909bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9910bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9911bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice16BitStorageFeatures_self_partial(enc, (const VkPhysicalDevice16BitStorageFeatures *)pnext);
9912bf215546Sopenharmony_ci            return;
9913bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
9914bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9915bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9916bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9917bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self_partial(enc, (const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
9918bf215546Sopenharmony_ci            return;
9919bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
9920bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9921bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9922bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9923bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self_partial(enc, (const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
9924bf215546Sopenharmony_ci            return;
9925bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
9926bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9927bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9928bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9929bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial(enc, (const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
9930bf215546Sopenharmony_ci            return;
9931bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
9932bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
9933bf215546Sopenharmony_ci                break;
9934bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9935bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9936bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9937bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial(enc, (const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
9938bf215546Sopenharmony_ci            return;
9939bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
9940bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
9941bf215546Sopenharmony_ci                break;
9942bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9943bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9944bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9945bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMaintenance4Features_self_partial(enc, (const VkPhysicalDeviceMaintenance4Features *)pnext);
9946bf215546Sopenharmony_ci            return;
9947bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
9948bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9949bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9950bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9951bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial(enc, (const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
9952bf215546Sopenharmony_ci            return;
9953bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
9954bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9955bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9956bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9957bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial(enc, (const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
9958bf215546Sopenharmony_ci            return;
9959bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
9960bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9961bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9962bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9963bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self_partial(enc, (const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
9964bf215546Sopenharmony_ci            return;
9965bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
9966bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9967bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9968bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9969bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self_partial(enc, (const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
9970bf215546Sopenharmony_ci            return;
9971bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
9972bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9973bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9974bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9975bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_partial(enc, (const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
9976bf215546Sopenharmony_ci            return;
9977bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
9978bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9979bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9980bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9981bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice8BitStorageFeatures_self_partial(enc, (const VkPhysicalDevice8BitStorageFeatures *)pnext);
9982bf215546Sopenharmony_ci            return;
9983bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
9984bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
9985bf215546Sopenharmony_ci                break;
9986bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9987bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9988bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9989bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
9990bf215546Sopenharmony_ci            return;
9991bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
9992bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9993bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
9994bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
9995bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_partial(enc, (const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
9996bf215546Sopenharmony_ci            return;
9997bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
9998bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
9999bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10000bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10001bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self_partial(enc, (const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
10002bf215546Sopenharmony_ci            return;
10003bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
10004bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
10005bf215546Sopenharmony_ci                break;
10006bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10007bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10008bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10009bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
10010bf215546Sopenharmony_ci            return;
10011bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
10012bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
10013bf215546Sopenharmony_ci                break;
10014bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10015bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10016bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10017bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
10018bf215546Sopenharmony_ci            return;
10019bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
10020bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10021bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10022bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10023bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_partial(enc, (const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
10024bf215546Sopenharmony_ci            return;
10025bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
10026bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10027bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10028bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10029bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_partial(enc, (const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
10030bf215546Sopenharmony_ci            return;
10031bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
10032bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
10033bf215546Sopenharmony_ci                break;
10034bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10035bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10036bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10037bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
10038bf215546Sopenharmony_ci            return;
10039bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
10040bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10041bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10042bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10043bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_partial(enc, (const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
10044bf215546Sopenharmony_ci            return;
10045bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
10046bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10047bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10048bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10049bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial(enc, (const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
10050bf215546Sopenharmony_ci            return;
10051bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
10052bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
10053bf215546Sopenharmony_ci                break;
10054bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10055bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10056bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10057bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial(enc, (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
10058bf215546Sopenharmony_ci            return;
10059bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
10060bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
10061bf215546Sopenharmony_ci                break;
10062bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10063bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10064bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10065bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self_partial(enc, (const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
10066bf215546Sopenharmony_ci            return;
10067bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
10068bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10069bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10070bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10071bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial(enc, (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
10072bf215546Sopenharmony_ci            return;
10073bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
10074bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
10075bf215546Sopenharmony_ci                break;
10076bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10077bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10078bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10079bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial(enc, (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
10080bf215546Sopenharmony_ci            return;
10081bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
10082bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
10083bf215546Sopenharmony_ci                break;
10084bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10085bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10086bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10087bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
10088bf215546Sopenharmony_ci            return;
10089bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
10090bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
10091bf215546Sopenharmony_ci                break;
10092bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10093bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10094bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10095bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
10096bf215546Sopenharmony_ci            return;
10097bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
10098bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
10099bf215546Sopenharmony_ci                break;
10100bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10101bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10102bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10103bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
10104bf215546Sopenharmony_ci            return;
10105bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
10106bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
10107bf215546Sopenharmony_ci                break;
10108bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10109bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10110bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10111bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial(enc, (const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
10112bf215546Sopenharmony_ci            return;
10113bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
10114bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10115bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10116bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10117bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan11Features_self_partial(enc, (const VkPhysicalDeviceVulkan11Features *)pnext);
10118bf215546Sopenharmony_ci            return;
10119bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
10120bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10121bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10122bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10123bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan12Features_self_partial(enc, (const VkPhysicalDeviceVulkan12Features *)pnext);
10124bf215546Sopenharmony_ci            return;
10125bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
10126bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
10127bf215546Sopenharmony_ci                break;
10128bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10129bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10130bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10131bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan13Features_self_partial(enc, (const VkPhysicalDeviceVulkan13Features *)pnext);
10132bf215546Sopenharmony_ci            return;
10133bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
10134bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
10135bf215546Sopenharmony_ci                break;
10136bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10137bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10138bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10139bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
10140bf215546Sopenharmony_ci            return;
10141bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
10142bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
10143bf215546Sopenharmony_ci                break;
10144bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10145bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10146bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10147bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
10148bf215546Sopenharmony_ci            return;
10149bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
10150bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
10151bf215546Sopenharmony_ci                break;
10152bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10153bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10154bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10155bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial(enc, (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
10156bf215546Sopenharmony_ci            return;
10157bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
10158bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
10159bf215546Sopenharmony_ci                break;
10160bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10161bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10162bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10163bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial(enc, (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
10164bf215546Sopenharmony_ci            return;
10165bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
10166bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
10167bf215546Sopenharmony_ci                break;
10168bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10169bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10170bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10171bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self_partial(enc, (const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
10172bf215546Sopenharmony_ci            return;
10173bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
10174bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
10175bf215546Sopenharmony_ci                break;
10176bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10177bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10178bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10179bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self_partial(enc, (const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
10180bf215546Sopenharmony_ci            return;
10181bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
10182bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
10183bf215546Sopenharmony_ci                break;
10184bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10185bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10186bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10187bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial(enc, (const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
10188bf215546Sopenharmony_ci            return;
10189bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
10190bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
10191bf215546Sopenharmony_ci                break;
10192bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10193bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10194bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10195bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
10196bf215546Sopenharmony_ci            return;
10197bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
10198bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
10199bf215546Sopenharmony_ci                break;
10200bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10201bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10202bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10203bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSynchronization2Features_self_partial(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
10204bf215546Sopenharmony_ci            return;
10205bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
10206bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
10207bf215546Sopenharmony_ci                break;
10208bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10209bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10210bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10211bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
10212bf215546Sopenharmony_ci            return;
10213bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
10214bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
10215bf215546Sopenharmony_ci                break;
10216bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10217bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10218bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10219bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
10220bf215546Sopenharmony_ci            return;
10221bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
10222bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
10223bf215546Sopenharmony_ci                break;
10224bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10225bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10226bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10227bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial(enc, (const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
10228bf215546Sopenharmony_ci            return;
10229bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
10230bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
10231bf215546Sopenharmony_ci                break;
10232bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10233bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10234bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10235bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial(enc, (const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
10236bf215546Sopenharmony_ci            return;
10237bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
10238bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
10239bf215546Sopenharmony_ci                break;
10240bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10241bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10242bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
10243bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
10244bf215546Sopenharmony_ci            return;
10245bf215546Sopenharmony_ci        default:
10246bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
10247bf215546Sopenharmony_ci            break;
10248bf215546Sopenharmony_ci        }
10249bf215546Sopenharmony_ci        pnext = pnext->pNext;
10250bf215546Sopenharmony_ci    }
10251bf215546Sopenharmony_ci
10252bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
10253bf215546Sopenharmony_ci}
10254bf215546Sopenharmony_ci
10255bf215546Sopenharmony_cistatic inline void
10256bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
10257bf215546Sopenharmony_ci{
10258bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
10259bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures_partial(enc, &val->features);
10260bf215546Sopenharmony_ci}
10261bf215546Sopenharmony_ci
10262bf215546Sopenharmony_cistatic inline void
10263bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFeatures2_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceFeatures2 *val)
10264bf215546Sopenharmony_ci{
10265bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2);
10266bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 });
10267bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, val->pNext);
10268bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFeatures2_self_partial(enc, val);
10269bf215546Sopenharmony_ci}
10270bf215546Sopenharmony_ci
10271bf215546Sopenharmony_ci/* struct VkDeviceGroupDeviceCreateInfo chain */
10272bf215546Sopenharmony_ci
10273bf215546Sopenharmony_cistatic inline size_t
10274bf215546Sopenharmony_civn_sizeof_VkDeviceGroupDeviceCreateInfo_pnext(const void *val)
10275bf215546Sopenharmony_ci{
10276bf215546Sopenharmony_ci    /* no known/supported struct */
10277bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
10278bf215546Sopenharmony_ci}
10279bf215546Sopenharmony_ci
10280bf215546Sopenharmony_cistatic inline size_t
10281bf215546Sopenharmony_civn_sizeof_VkDeviceGroupDeviceCreateInfo_self(const VkDeviceGroupDeviceCreateInfo *val)
10282bf215546Sopenharmony_ci{
10283bf215546Sopenharmony_ci    size_t size = 0;
10284bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
10285bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->physicalDeviceCount);
10286bf215546Sopenharmony_ci    if (val->pPhysicalDevices) {
10287bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->physicalDeviceCount);
10288bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->physicalDeviceCount; i++)
10289bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice(&val->pPhysicalDevices[i]);
10290bf215546Sopenharmony_ci    } else {
10291bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
10292bf215546Sopenharmony_ci    }
10293bf215546Sopenharmony_ci    return size;
10294bf215546Sopenharmony_ci}
10295bf215546Sopenharmony_ci
10296bf215546Sopenharmony_cistatic inline size_t
10297bf215546Sopenharmony_civn_sizeof_VkDeviceGroupDeviceCreateInfo(const VkDeviceGroupDeviceCreateInfo *val)
10298bf215546Sopenharmony_ci{
10299bf215546Sopenharmony_ci    size_t size = 0;
10300bf215546Sopenharmony_ci
10301bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
10302bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceGroupDeviceCreateInfo_pnext(val->pNext);
10303bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceGroupDeviceCreateInfo_self(val);
10304bf215546Sopenharmony_ci
10305bf215546Sopenharmony_ci    return size;
10306bf215546Sopenharmony_ci}
10307bf215546Sopenharmony_ci
10308bf215546Sopenharmony_cistatic inline void
10309bf215546Sopenharmony_civn_encode_VkDeviceGroupDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
10310bf215546Sopenharmony_ci{
10311bf215546Sopenharmony_ci    /* no known/supported struct */
10312bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
10313bf215546Sopenharmony_ci}
10314bf215546Sopenharmony_ci
10315bf215546Sopenharmony_cistatic inline void
10316bf215546Sopenharmony_civn_encode_VkDeviceGroupDeviceCreateInfo_self(struct vn_cs_encoder *enc, const VkDeviceGroupDeviceCreateInfo *val)
10317bf215546Sopenharmony_ci{
10318bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
10319bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->physicalDeviceCount);
10320bf215546Sopenharmony_ci    if (val->pPhysicalDevices) {
10321bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->physicalDeviceCount);
10322bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->physicalDeviceCount; i++)
10323bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice(enc, &val->pPhysicalDevices[i]);
10324bf215546Sopenharmony_ci    } else {
10325bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
10326bf215546Sopenharmony_ci    }
10327bf215546Sopenharmony_ci}
10328bf215546Sopenharmony_ci
10329bf215546Sopenharmony_cistatic inline void
10330bf215546Sopenharmony_civn_encode_VkDeviceGroupDeviceCreateInfo(struct vn_cs_encoder *enc, const VkDeviceGroupDeviceCreateInfo *val)
10331bf215546Sopenharmony_ci{
10332bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO);
10333bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO });
10334bf215546Sopenharmony_ci    vn_encode_VkDeviceGroupDeviceCreateInfo_pnext(enc, val->pNext);
10335bf215546Sopenharmony_ci    vn_encode_VkDeviceGroupDeviceCreateInfo_self(enc, val);
10336bf215546Sopenharmony_ci}
10337bf215546Sopenharmony_ci
10338bf215546Sopenharmony_ci/* struct VkDeviceCreateInfo chain */
10339bf215546Sopenharmony_ci
10340bf215546Sopenharmony_cistatic inline size_t
10341bf215546Sopenharmony_civn_sizeof_VkDeviceCreateInfo_pnext(const void *val)
10342bf215546Sopenharmony_ci{
10343bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
10344bf215546Sopenharmony_ci    size_t size = 0;
10345bf215546Sopenharmony_ci
10346bf215546Sopenharmony_ci    while (pnext) {
10347bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
10348bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
10349bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
10350bf215546Sopenharmony_ci                break;
10351bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10352bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10353bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10354bf215546Sopenharmony_ci            size += vn_sizeof_VkDevicePrivateDataCreateInfo_self((const VkDevicePrivateDataCreateInfo *)pnext);
10355bf215546Sopenharmony_ci            return size;
10356bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
10357bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
10358bf215546Sopenharmony_ci                break;
10359bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10360bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10361bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10362bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePrivateDataFeatures_self((const VkPhysicalDevicePrivateDataFeatures *)pnext);
10363bf215546Sopenharmony_ci            return size;
10364bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
10365bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10366bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10367bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10368bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFeatures2_self((const VkPhysicalDeviceFeatures2 *)pnext);
10369bf215546Sopenharmony_ci            return size;
10370bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
10371bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10372bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10373bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10374bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVariablePointersFeatures_self((const VkPhysicalDeviceVariablePointersFeatures *)pnext);
10375bf215546Sopenharmony_ci            return size;
10376bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
10377bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10378bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10379bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10380bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMultiviewFeatures_self((const VkPhysicalDeviceMultiviewFeatures *)pnext);
10381bf215546Sopenharmony_ci            return size;
10382bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
10383bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10384bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10385bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10386bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceGroupDeviceCreateInfo_self((const VkDeviceGroupDeviceCreateInfo *)pnext);
10387bf215546Sopenharmony_ci            return size;
10388bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
10389bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10390bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10391bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10392bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice16BitStorageFeatures_self((const VkPhysicalDevice16BitStorageFeatures *)pnext);
10393bf215546Sopenharmony_ci            return size;
10394bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
10395bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10396bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10397bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10398bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self((const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
10399bf215546Sopenharmony_ci            return size;
10400bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
10401bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10402bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10403bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10404bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self((const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
10405bf215546Sopenharmony_ci            return size;
10406bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
10407bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10408bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10409bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10410bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProtectedMemoryFeatures_self((const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
10411bf215546Sopenharmony_ci            return size;
10412bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
10413bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
10414bf215546Sopenharmony_ci                break;
10415bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10416bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10417bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10418bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockFeatures_self((const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
10419bf215546Sopenharmony_ci            return size;
10420bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
10421bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
10422bf215546Sopenharmony_ci                break;
10423bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10424bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10425bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10426bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance4Features_self((const VkPhysicalDeviceMaintenance4Features *)pnext);
10427bf215546Sopenharmony_ci            return size;
10428bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
10429bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10430bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10431bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10432bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDrawParametersFeatures_self((const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
10433bf215546Sopenharmony_ci            return size;
10434bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
10435bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10436bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10437bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10438bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderFloat16Int8Features_self((const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
10439bf215546Sopenharmony_ci            return size;
10440bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
10441bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10442bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10443bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10444bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceHostQueryResetFeatures_self((const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
10445bf215546Sopenharmony_ci            return size;
10446bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
10447bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10448bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10449bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10450bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingFeatures_self((const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
10451bf215546Sopenharmony_ci            return size;
10452bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
10453bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10454bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10455bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10456bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreFeatures_self((const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
10457bf215546Sopenharmony_ci            return size;
10458bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
10459bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10460bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10461bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10462bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice8BitStorageFeatures_self((const VkPhysicalDevice8BitStorageFeatures *)pnext);
10463bf215546Sopenharmony_ci            return size;
10464bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
10465bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
10466bf215546Sopenharmony_ci                break;
10467bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10468bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10469bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10470bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self((const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
10471bf215546Sopenharmony_ci            return size;
10472bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
10473bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10474bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10475bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10476bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkanMemoryModelFeatures_self((const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
10477bf215546Sopenharmony_ci            return size;
10478bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
10479bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10480bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10481bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10482bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderAtomicInt64Features_self((const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
10483bf215546Sopenharmony_ci            return size;
10484bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
10485bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
10486bf215546Sopenharmony_ci                break;
10487bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10488bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10489bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10490bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self((const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
10491bf215546Sopenharmony_ci            return size;
10492bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
10493bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
10494bf215546Sopenharmony_ci                break;
10495bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10496bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10497bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10498bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self((const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
10499bf215546Sopenharmony_ci            return size;
10500bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
10501bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10502bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10503bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10504bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceScalarBlockLayoutFeatures_self((const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
10505bf215546Sopenharmony_ci            return size;
10506bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
10507bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10508bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10509bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10510bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self((const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
10511bf215546Sopenharmony_ci            return size;
10512bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
10513bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
10514bf215546Sopenharmony_ci                break;
10515bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10516bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10517bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10518bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self((const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
10519bf215546Sopenharmony_ci            return size;
10520bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
10521bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10522bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10523bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10524bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceBufferDeviceAddressFeatures_self((const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
10525bf215546Sopenharmony_ci            return size;
10526bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
10527bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10528bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10529bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10530bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImagelessFramebufferFeatures_self((const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
10531bf215546Sopenharmony_ci            return size;
10532bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
10533bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
10534bf215546Sopenharmony_ci                break;
10535bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10536bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10537bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10538bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self((const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
10539bf215546Sopenharmony_ci            return size;
10540bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
10541bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
10542bf215546Sopenharmony_ci                break;
10543bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10544bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10545bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10546bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self((const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
10547bf215546Sopenharmony_ci            return size;
10548bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
10549bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10550bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10551bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10552bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self((const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
10553bf215546Sopenharmony_ci            return size;
10554bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
10555bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
10556bf215546Sopenharmony_ci                break;
10557bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10558bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10559bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10560bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self((const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
10561bf215546Sopenharmony_ci            return size;
10562bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
10563bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
10564bf215546Sopenharmony_ci                break;
10565bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10566bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10567bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10568bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self((const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
10569bf215546Sopenharmony_ci            return size;
10570bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
10571bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
10572bf215546Sopenharmony_ci                break;
10573bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10574bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10575bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10576bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlFeatures_self((const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
10577bf215546Sopenharmony_ci            return size;
10578bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
10579bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
10580bf215546Sopenharmony_ci                break;
10581bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10582bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10583bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10584bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceLineRasterizationFeaturesEXT_self((const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
10585bf215546Sopenharmony_ci            return size;
10586bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
10587bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
10588bf215546Sopenharmony_ci                break;
10589bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10590bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10591bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10592bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePipelineCreationCacheControlFeatures_self((const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
10593bf215546Sopenharmony_ci            return size;
10594bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
10595bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10596bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10597bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10598bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan11Features_self((const VkPhysicalDeviceVulkan11Features *)pnext);
10599bf215546Sopenharmony_ci            return size;
10600bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
10601bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10602bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10603bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10604bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan12Features_self((const VkPhysicalDeviceVulkan12Features *)pnext);
10605bf215546Sopenharmony_ci            return size;
10606bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
10607bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
10608bf215546Sopenharmony_ci                break;
10609bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10610bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10611bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10612bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self((const VkPhysicalDeviceVulkan13Features *)pnext);
10613bf215546Sopenharmony_ci            return size;
10614bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
10615bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
10616bf215546Sopenharmony_ci                break;
10617bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10618bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10619bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10620bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
10621bf215546Sopenharmony_ci            return size;
10622bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
10623bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
10624bf215546Sopenharmony_ci                break;
10625bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10626bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10627bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10628bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self((const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
10629bf215546Sopenharmony_ci            return size;
10630bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
10631bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
10632bf215546Sopenharmony_ci                break;
10633bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10634bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10635bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10636bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self((const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
10637bf215546Sopenharmony_ci            return size;
10638bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
10639bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
10640bf215546Sopenharmony_ci                break;
10641bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10642bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10643bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10644bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self((const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
10645bf215546Sopenharmony_ci            return size;
10646bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
10647bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
10648bf215546Sopenharmony_ci                break;
10649bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10650bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10651bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10652bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceRobustness2FeaturesEXT_self((const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
10653bf215546Sopenharmony_ci            return size;
10654bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
10655bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
10656bf215546Sopenharmony_ci                break;
10657bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10658bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10659bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10660bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageRobustnessFeatures_self((const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
10661bf215546Sopenharmony_ci            return size;
10662bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
10663bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
10664bf215546Sopenharmony_ci                break;
10665bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10666bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10667bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10668bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevice4444FormatsFeaturesEXT_self((const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
10669bf215546Sopenharmony_ci            return size;
10670bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
10671bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
10672bf215546Sopenharmony_ci                break;
10673bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10674bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10675bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10676bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
10677bf215546Sopenharmony_ci            return size;
10678bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
10679bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
10680bf215546Sopenharmony_ci                break;
10681bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10682bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10683bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10684bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self((const VkPhysicalDeviceSynchronization2Features *)pnext);
10685bf215546Sopenharmony_ci            return size;
10686bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
10687bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
10688bf215546Sopenharmony_ci                break;
10689bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10690bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10691bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10692bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self((const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
10693bf215546Sopenharmony_ci            return size;
10694bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
10695bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
10696bf215546Sopenharmony_ci                break;
10697bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10698bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10699bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10700bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProvokingVertexFeaturesEXT_self((const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
10701bf215546Sopenharmony_ci            return size;
10702bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
10703bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
10704bf215546Sopenharmony_ci                break;
10705bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10706bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10707bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10708bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductFeatures_self((const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
10709bf215546Sopenharmony_ci            return size;
10710bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
10711bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
10712bf215546Sopenharmony_ci                break;
10713bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10714bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10715bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10716bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDynamicRenderingFeatures_self((const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
10717bf215546Sopenharmony_ci            return size;
10718bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
10719bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
10720bf215546Sopenharmony_ci                break;
10721bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
10722bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
10723bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
10724bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self((const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
10725bf215546Sopenharmony_ci            return size;
10726bf215546Sopenharmony_ci        default:
10727bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
10728bf215546Sopenharmony_ci            break;
10729bf215546Sopenharmony_ci        }
10730bf215546Sopenharmony_ci        pnext = pnext->pNext;
10731bf215546Sopenharmony_ci    }
10732bf215546Sopenharmony_ci
10733bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
10734bf215546Sopenharmony_ci}
10735bf215546Sopenharmony_ci
10736bf215546Sopenharmony_cistatic inline size_t
10737bf215546Sopenharmony_civn_sizeof_VkDeviceCreateInfo_self(const VkDeviceCreateInfo *val)
10738bf215546Sopenharmony_ci{
10739bf215546Sopenharmony_ci    size_t size = 0;
10740bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
10741bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
10742bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueCreateInfoCount);
10743bf215546Sopenharmony_ci    if (val->pQueueCreateInfos) {
10744bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->queueCreateInfoCount);
10745bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->queueCreateInfoCount; i++)
10746bf215546Sopenharmony_ci            size += vn_sizeof_VkDeviceQueueCreateInfo(&val->pQueueCreateInfos[i]);
10747bf215546Sopenharmony_ci    } else {
10748bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
10749bf215546Sopenharmony_ci    }
10750bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->enabledLayerCount);
10751bf215546Sopenharmony_ci    if (val->ppEnabledLayerNames) {
10752bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->enabledLayerCount);
10753bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->enabledLayerCount; i++) {
10754bf215546Sopenharmony_ci            const size_t string_size = strlen(val->ppEnabledLayerNames[i]) + 1;
10755bf215546Sopenharmony_ci            size += vn_sizeof_array_size(string_size);
10756bf215546Sopenharmony_ci            size += vn_sizeof_char_array(val->ppEnabledLayerNames[i], string_size);
10757bf215546Sopenharmony_ci        }
10758bf215546Sopenharmony_ci    } else {
10759bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
10760bf215546Sopenharmony_ci    }
10761bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->enabledExtensionCount);
10762bf215546Sopenharmony_ci    if (val->ppEnabledExtensionNames) {
10763bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->enabledExtensionCount);
10764bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->enabledExtensionCount; i++) {
10765bf215546Sopenharmony_ci            const size_t string_size = strlen(val->ppEnabledExtensionNames[i]) + 1;
10766bf215546Sopenharmony_ci            size += vn_sizeof_array_size(string_size);
10767bf215546Sopenharmony_ci            size += vn_sizeof_char_array(val->ppEnabledExtensionNames[i], string_size);
10768bf215546Sopenharmony_ci        }
10769bf215546Sopenharmony_ci    } else {
10770bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
10771bf215546Sopenharmony_ci    }
10772bf215546Sopenharmony_ci    size += vn_sizeof_simple_pointer(val->pEnabledFeatures);
10773bf215546Sopenharmony_ci    if (val->pEnabledFeatures)
10774bf215546Sopenharmony_ci        size += vn_sizeof_VkPhysicalDeviceFeatures(val->pEnabledFeatures);
10775bf215546Sopenharmony_ci    return size;
10776bf215546Sopenharmony_ci}
10777bf215546Sopenharmony_ci
10778bf215546Sopenharmony_cistatic inline size_t
10779bf215546Sopenharmony_civn_sizeof_VkDeviceCreateInfo(const VkDeviceCreateInfo *val)
10780bf215546Sopenharmony_ci{
10781bf215546Sopenharmony_ci    size_t size = 0;
10782bf215546Sopenharmony_ci
10783bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
10784bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceCreateInfo_pnext(val->pNext);
10785bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceCreateInfo_self(val);
10786bf215546Sopenharmony_ci
10787bf215546Sopenharmony_ci    return size;
10788bf215546Sopenharmony_ci}
10789bf215546Sopenharmony_ci
10790bf215546Sopenharmony_cistatic inline void
10791bf215546Sopenharmony_civn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
10792bf215546Sopenharmony_ci{
10793bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
10794bf215546Sopenharmony_ci
10795bf215546Sopenharmony_ci    while (pnext) {
10796bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
10797bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
10798bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
10799bf215546Sopenharmony_ci                break;
10800bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10801bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10802bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10803bf215546Sopenharmony_ci            vn_encode_VkDevicePrivateDataCreateInfo_self(enc, (const VkDevicePrivateDataCreateInfo *)pnext);
10804bf215546Sopenharmony_ci            return;
10805bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
10806bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(296 /* VK_EXT_private_data */))
10807bf215546Sopenharmony_ci                break;
10808bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10809bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10810bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10811bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, (const VkPhysicalDevicePrivateDataFeatures *)pnext);
10812bf215546Sopenharmony_ci            return;
10813bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
10814bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10815bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10816bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10817bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFeatures2_self(enc, (const VkPhysicalDeviceFeatures2 *)pnext);
10818bf215546Sopenharmony_ci            return;
10819bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
10820bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10821bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10822bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10823bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVariablePointersFeatures_self(enc, (const VkPhysicalDeviceVariablePointersFeatures *)pnext);
10824bf215546Sopenharmony_ci            return;
10825bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
10826bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10827bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10828bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10829bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMultiviewFeatures_self(enc, (const VkPhysicalDeviceMultiviewFeatures *)pnext);
10830bf215546Sopenharmony_ci            return;
10831bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
10832bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10833bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10834bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10835bf215546Sopenharmony_ci            vn_encode_VkDeviceGroupDeviceCreateInfo_self(enc, (const VkDeviceGroupDeviceCreateInfo *)pnext);
10836bf215546Sopenharmony_ci            return;
10837bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
10838bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10839bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10840bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10841bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice16BitStorageFeatures_self(enc, (const VkPhysicalDevice16BitStorageFeatures *)pnext);
10842bf215546Sopenharmony_ci            return;
10843bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
10844bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10845bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10846bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10847bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures_self(enc, (const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)pnext);
10848bf215546Sopenharmony_ci            return;
10849bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
10850bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10851bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10852bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10853bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSamplerYcbcrConversionFeatures_self(enc, (const VkPhysicalDeviceSamplerYcbcrConversionFeatures *)pnext);
10854bf215546Sopenharmony_ci            return;
10855bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
10856bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10857bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10858bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10859bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, (const VkPhysicalDeviceProtectedMemoryFeatures *)pnext);
10860bf215546Sopenharmony_ci            return;
10861bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
10862bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
10863bf215546Sopenharmony_ci                break;
10864bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10865bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10866bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10867bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, (const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext);
10868bf215546Sopenharmony_ci            return;
10869bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
10870bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
10871bf215546Sopenharmony_ci                break;
10872bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10873bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10874bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10875bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, (const VkPhysicalDeviceMaintenance4Features *)pnext);
10876bf215546Sopenharmony_ci            return;
10877bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
10878bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10879bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10880bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10881bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, (const VkPhysicalDeviceShaderDrawParametersFeatures *)pnext);
10882bf215546Sopenharmony_ci            return;
10883bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
10884bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10885bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10886bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10887bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, (const VkPhysicalDeviceShaderFloat16Int8Features *)pnext);
10888bf215546Sopenharmony_ci            return;
10889bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
10890bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10891bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10892bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10893bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, (const VkPhysicalDeviceHostQueryResetFeatures *)pnext);
10894bf215546Sopenharmony_ci            return;
10895bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
10896bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10897bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10898bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10899bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(enc, (const VkPhysicalDeviceDescriptorIndexingFeatures *)pnext);
10900bf215546Sopenharmony_ci            return;
10901bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
10902bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10903bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10904bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10905bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTimelineSemaphoreFeatures_self(enc, (const VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext);
10906bf215546Sopenharmony_ci            return;
10907bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
10908bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10909bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10910bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10911bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice8BitStorageFeatures_self(enc, (const VkPhysicalDevice8BitStorageFeatures *)pnext);
10912bf215546Sopenharmony_ci            return;
10913bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
10914bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
10915bf215546Sopenharmony_ci                break;
10916bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10917bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10918bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10919bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceConditionalRenderingFeaturesEXT_self(enc, (const VkPhysicalDeviceConditionalRenderingFeaturesEXT *)pnext);
10920bf215546Sopenharmony_ci            return;
10921bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
10922bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10923bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10924bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10925bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkanMemoryModelFeatures_self(enc, (const VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext);
10926bf215546Sopenharmony_ci            return;
10927bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
10928bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10929bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10930bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10931bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderAtomicInt64Features_self(enc, (const VkPhysicalDeviceShaderAtomicInt64Features *)pnext);
10932bf215546Sopenharmony_ci            return;
10933bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
10934bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
10935bf215546Sopenharmony_ci                break;
10936bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10937bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10938bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10939bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT_self(enc, (const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)pnext);
10940bf215546Sopenharmony_ci            return;
10941bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
10942bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
10943bf215546Sopenharmony_ci                break;
10944bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10945bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10946bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10947bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext);
10948bf215546Sopenharmony_ci            return;
10949bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
10950bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10951bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10952bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10953bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceScalarBlockLayoutFeatures_self(enc, (const VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext);
10954bf215546Sopenharmony_ci            return;
10955bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
10956bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10957bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10958bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10959bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self(enc, (const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext);
10960bf215546Sopenharmony_ci            return;
10961bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
10962bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
10963bf215546Sopenharmony_ci                break;
10964bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10965bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10966bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10967bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDepthClipEnableFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipEnableFeaturesEXT *)pnext);
10968bf215546Sopenharmony_ci            return;
10969bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
10970bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10971bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10972bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10973bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceBufferDeviceAddressFeatures_self(enc, (const VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext);
10974bf215546Sopenharmony_ci            return;
10975bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
10976bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10977bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10978bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10979bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, (const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext);
10980bf215546Sopenharmony_ci            return;
10981bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
10982bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(67 /* VK_EXT_texture_compression_astc_hdr */))
10983bf215546Sopenharmony_ci                break;
10984bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10985bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10986bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10987bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext);
10988bf215546Sopenharmony_ci            return;
10989bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
10990bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(266 /* VK_EXT_index_type_uint8 */))
10991bf215546Sopenharmony_ci                break;
10992bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10993bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
10994bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
10995bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceIndexTypeUint8FeaturesEXT_self(enc, (const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)pnext);
10996bf215546Sopenharmony_ci            return;
10997bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
10998bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
10999bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11000bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11001bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext);
11002bf215546Sopenharmony_ci            return;
11003bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
11004bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(277 /* VK_EXT_shader_demote_to_helper_invocation */))
11005bf215546Sopenharmony_ci                break;
11006bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11007bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11008bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11009bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext);
11010bf215546Sopenharmony_ci            return;
11011bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
11012bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
11013bf215546Sopenharmony_ci                break;
11014bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11015bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11016bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11017bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext);
11018bf215546Sopenharmony_ci            return;
11019bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
11020bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
11021bf215546Sopenharmony_ci                break;
11022bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11023bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11024bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11025bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
11026bf215546Sopenharmony_ci            return;
11027bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
11028bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
11029bf215546Sopenharmony_ci                break;
11030bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11031bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11032bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11033bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
11034bf215546Sopenharmony_ci            return;
11035bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
11036bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(298 /* VK_EXT_pipeline_creation_cache_control */))
11037bf215546Sopenharmony_ci                break;
11038bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11039bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11040bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11041bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, (const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
11042bf215546Sopenharmony_ci            return;
11043bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
11044bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11045bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11046bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11047bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, (const VkPhysicalDeviceVulkan11Features *)pnext);
11048bf215546Sopenharmony_ci            return;
11049bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
11050bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11051bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11052bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11053bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, (const VkPhysicalDeviceVulkan12Features *)pnext);
11054bf215546Sopenharmony_ci            return;
11055bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
11056bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
11057bf215546Sopenharmony_ci                break;
11058bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11059bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11060bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11061bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext);
11062bf215546Sopenharmony_ci            return;
11063bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
11064bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
11065bf215546Sopenharmony_ci                break;
11066bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11067bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11068bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11069bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext);
11070bf215546Sopenharmony_ci            return;
11071bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
11072bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(268 /* VK_EXT_extended_dynamic_state */))
11073bf215546Sopenharmony_ci                break;
11074bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11075bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11076bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11077bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext);
11078bf215546Sopenharmony_ci            return;
11079bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
11080bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(378 /* VK_EXT_extended_dynamic_state2 */))
11081bf215546Sopenharmony_ci                break;
11082bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11083bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11084bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11085bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext);
11086bf215546Sopenharmony_ci            return;
11087bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
11088bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(326 /* VK_KHR_zero_initialize_workgroup_memory */))
11089bf215546Sopenharmony_ci                break;
11090bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11091bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11092bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11093bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext);
11094bf215546Sopenharmony_ci            return;
11095bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
11096bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
11097bf215546Sopenharmony_ci                break;
11098bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11099bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11100bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11101bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceRobustness2FeaturesEXT_self(enc, (const VkPhysicalDeviceRobustness2FeaturesEXT *)pnext);
11102bf215546Sopenharmony_ci            return;
11103bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
11104bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(336 /* VK_EXT_image_robustness */))
11105bf215546Sopenharmony_ci                break;
11106bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11107bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11108bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11109bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, (const VkPhysicalDeviceImageRobustnessFeatures *)pnext);
11110bf215546Sopenharmony_ci            return;
11111bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
11112bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(341 /* VK_EXT_4444_formats */))
11113bf215546Sopenharmony_ci                break;
11114bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11115bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11116bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11117bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, (const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext);
11118bf215546Sopenharmony_ci            return;
11119bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
11120bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(216 /* VK_KHR_shader_terminate_invocation */))
11121bf215546Sopenharmony_ci                break;
11122bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11123bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11124bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11125bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext);
11126bf215546Sopenharmony_ci            return;
11127bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
11128bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
11129bf215546Sopenharmony_ci                break;
11130bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11131bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11132bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11133bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
11134bf215546Sopenharmony_ci            return;
11135bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
11136bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
11137bf215546Sopenharmony_ci                break;
11138bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11139bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11140bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11141bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
11142bf215546Sopenharmony_ci            return;
11143bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
11144bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
11145bf215546Sopenharmony_ci                break;
11146bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11147bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11148bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11149bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
11150bf215546Sopenharmony_ci            return;
11151bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
11152bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
11153bf215546Sopenharmony_ci                break;
11154bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11155bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11156bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11157bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
11158bf215546Sopenharmony_ci            return;
11159bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
11160bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
11161bf215546Sopenharmony_ci                break;
11162bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11163bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11164bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11165bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, (const VkPhysicalDeviceDynamicRenderingFeatures *)pnext);
11166bf215546Sopenharmony_ci            return;
11167bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
11168bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(392 /* VK_EXT_image_view_min_lod */))
11169bf215546Sopenharmony_ci                break;
11170bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
11171bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
11172bf215546Sopenharmony_ci            vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
11173bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageViewMinLodFeaturesEXT_self(enc, (const VkPhysicalDeviceImageViewMinLodFeaturesEXT *)pnext);
11174bf215546Sopenharmony_ci            return;
11175bf215546Sopenharmony_ci        default:
11176bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
11177bf215546Sopenharmony_ci            break;
11178bf215546Sopenharmony_ci        }
11179bf215546Sopenharmony_ci        pnext = pnext->pNext;
11180bf215546Sopenharmony_ci    }
11181bf215546Sopenharmony_ci
11182bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11183bf215546Sopenharmony_ci}
11184bf215546Sopenharmony_ci
11185bf215546Sopenharmony_cistatic inline void
11186bf215546Sopenharmony_civn_encode_VkDeviceCreateInfo_self(struct vn_cs_encoder *enc, const VkDeviceCreateInfo *val)
11187bf215546Sopenharmony_ci{
11188bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11189bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->flags);
11190bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueCreateInfoCount);
11191bf215546Sopenharmony_ci    if (val->pQueueCreateInfos) {
11192bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->queueCreateInfoCount);
11193bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->queueCreateInfoCount; i++)
11194bf215546Sopenharmony_ci            vn_encode_VkDeviceQueueCreateInfo(enc, &val->pQueueCreateInfos[i]);
11195bf215546Sopenharmony_ci    } else {
11196bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
11197bf215546Sopenharmony_ci    }
11198bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->enabledLayerCount);
11199bf215546Sopenharmony_ci    if (val->ppEnabledLayerNames) {
11200bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->enabledLayerCount);
11201bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->enabledLayerCount; i++) {
11202bf215546Sopenharmony_ci            const size_t string_size = strlen(val->ppEnabledLayerNames[i]) + 1;
11203bf215546Sopenharmony_ci            vn_encode_array_size(enc, string_size);
11204bf215546Sopenharmony_ci            vn_encode_char_array(enc, val->ppEnabledLayerNames[i], string_size);
11205bf215546Sopenharmony_ci        }
11206bf215546Sopenharmony_ci    } else {
11207bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
11208bf215546Sopenharmony_ci    }
11209bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->enabledExtensionCount);
11210bf215546Sopenharmony_ci    if (val->ppEnabledExtensionNames) {
11211bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->enabledExtensionCount);
11212bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->enabledExtensionCount; i++) {
11213bf215546Sopenharmony_ci            const size_t string_size = strlen(val->ppEnabledExtensionNames[i]) + 1;
11214bf215546Sopenharmony_ci            vn_encode_array_size(enc, string_size);
11215bf215546Sopenharmony_ci            vn_encode_char_array(enc, val->ppEnabledExtensionNames[i], string_size);
11216bf215546Sopenharmony_ci        }
11217bf215546Sopenharmony_ci    } else {
11218bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
11219bf215546Sopenharmony_ci    }
11220bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, val->pEnabledFeatures))
11221bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceFeatures(enc, val->pEnabledFeatures);
11222bf215546Sopenharmony_ci}
11223bf215546Sopenharmony_ci
11224bf215546Sopenharmony_cistatic inline void
11225bf215546Sopenharmony_civn_encode_VkDeviceCreateInfo(struct vn_cs_encoder *enc, const VkDeviceCreateInfo *val)
11226bf215546Sopenharmony_ci{
11227bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO);
11228bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO });
11229bf215546Sopenharmony_ci    vn_encode_VkDeviceCreateInfo_pnext(enc, val->pNext);
11230bf215546Sopenharmony_ci    vn_encode_VkDeviceCreateInfo_self(enc, val);
11231bf215546Sopenharmony_ci}
11232bf215546Sopenharmony_ci
11233bf215546Sopenharmony_ci/* struct VkConformanceVersion */
11234bf215546Sopenharmony_ci
11235bf215546Sopenharmony_cistatic inline size_t
11236bf215546Sopenharmony_civn_sizeof_VkConformanceVersion(const VkConformanceVersion *val)
11237bf215546Sopenharmony_ci{
11238bf215546Sopenharmony_ci    size_t size = 0;
11239bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t(&val->major);
11240bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t(&val->minor);
11241bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t(&val->subminor);
11242bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t(&val->patch);
11243bf215546Sopenharmony_ci    return size;
11244bf215546Sopenharmony_ci}
11245bf215546Sopenharmony_ci
11246bf215546Sopenharmony_cistatic inline void
11247bf215546Sopenharmony_civn_decode_VkConformanceVersion(struct vn_cs_decoder *dec, VkConformanceVersion *val)
11248bf215546Sopenharmony_ci{
11249bf215546Sopenharmony_ci    vn_decode_uint8_t(dec, &val->major);
11250bf215546Sopenharmony_ci    vn_decode_uint8_t(dec, &val->minor);
11251bf215546Sopenharmony_ci    vn_decode_uint8_t(dec, &val->subminor);
11252bf215546Sopenharmony_ci    vn_decode_uint8_t(dec, &val->patch);
11253bf215546Sopenharmony_ci}
11254bf215546Sopenharmony_ci
11255bf215546Sopenharmony_cistatic inline size_t
11256bf215546Sopenharmony_civn_sizeof_VkConformanceVersion_partial(const VkConformanceVersion *val)
11257bf215546Sopenharmony_ci{
11258bf215546Sopenharmony_ci    size_t size = 0;
11259bf215546Sopenharmony_ci    /* skip val->major */
11260bf215546Sopenharmony_ci    /* skip val->minor */
11261bf215546Sopenharmony_ci    /* skip val->subminor */
11262bf215546Sopenharmony_ci    /* skip val->patch */
11263bf215546Sopenharmony_ci    return size;
11264bf215546Sopenharmony_ci}
11265bf215546Sopenharmony_ci
11266bf215546Sopenharmony_cistatic inline void
11267bf215546Sopenharmony_civn_encode_VkConformanceVersion_partial(struct vn_cs_encoder *enc, const VkConformanceVersion *val)
11268bf215546Sopenharmony_ci{
11269bf215546Sopenharmony_ci    /* skip val->major */
11270bf215546Sopenharmony_ci    /* skip val->minor */
11271bf215546Sopenharmony_ci    /* skip val->subminor */
11272bf215546Sopenharmony_ci    /* skip val->patch */
11273bf215546Sopenharmony_ci}
11274bf215546Sopenharmony_ci
11275bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDriverProperties chain */
11276bf215546Sopenharmony_ci
11277bf215546Sopenharmony_cistatic inline size_t
11278bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties_pnext(const void *val)
11279bf215546Sopenharmony_ci{
11280bf215546Sopenharmony_ci    /* no known/supported struct */
11281bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11282bf215546Sopenharmony_ci}
11283bf215546Sopenharmony_ci
11284bf215546Sopenharmony_cistatic inline size_t
11285bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties_self(const VkPhysicalDeviceDriverProperties *val)
11286bf215546Sopenharmony_ci{
11287bf215546Sopenharmony_ci    size_t size = 0;
11288bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11289bf215546Sopenharmony_ci    size += vn_sizeof_VkDriverId(&val->driverID);
11290bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DRIVER_NAME_SIZE);
11291bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->driverName, VK_MAX_DRIVER_NAME_SIZE);
11292bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DRIVER_INFO_SIZE);
11293bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->driverInfo, VK_MAX_DRIVER_INFO_SIZE);
11294bf215546Sopenharmony_ci    size += vn_sizeof_VkConformanceVersion(&val->conformanceVersion);
11295bf215546Sopenharmony_ci    return size;
11296bf215546Sopenharmony_ci}
11297bf215546Sopenharmony_ci
11298bf215546Sopenharmony_cistatic inline size_t
11299bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties(const VkPhysicalDeviceDriverProperties *val)
11300bf215546Sopenharmony_ci{
11301bf215546Sopenharmony_ci    size_t size = 0;
11302bf215546Sopenharmony_ci
11303bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11304bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDriverProperties_pnext(val->pNext);
11305bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDriverProperties_self(val);
11306bf215546Sopenharmony_ci
11307bf215546Sopenharmony_ci    return size;
11308bf215546Sopenharmony_ci}
11309bf215546Sopenharmony_ci
11310bf215546Sopenharmony_cistatic inline void
11311bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDriverProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11312bf215546Sopenharmony_ci{
11313bf215546Sopenharmony_ci    /* no known/supported struct */
11314bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11315bf215546Sopenharmony_ci        assert(false);
11316bf215546Sopenharmony_ci}
11317bf215546Sopenharmony_ci
11318bf215546Sopenharmony_cistatic inline void
11319bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDriverProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDriverProperties *val)
11320bf215546Sopenharmony_ci{
11321bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11322bf215546Sopenharmony_ci    vn_decode_VkDriverId(dec, &val->driverID);
11323bf215546Sopenharmony_ci    {
11324bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_DRIVER_NAME_SIZE);
11325bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->driverName, array_size);
11326bf215546Sopenharmony_ci    }
11327bf215546Sopenharmony_ci    {
11328bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_DRIVER_INFO_SIZE);
11329bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->driverInfo, array_size);
11330bf215546Sopenharmony_ci    }
11331bf215546Sopenharmony_ci    vn_decode_VkConformanceVersion(dec, &val->conformanceVersion);
11332bf215546Sopenharmony_ci}
11333bf215546Sopenharmony_ci
11334bf215546Sopenharmony_cistatic inline void
11335bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDriverProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceDriverProperties *val)
11336bf215546Sopenharmony_ci{
11337bf215546Sopenharmony_ci    VkStructureType stype;
11338bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11339bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES);
11340bf215546Sopenharmony_ci
11341bf215546Sopenharmony_ci    assert(val->sType == stype);
11342bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDriverProperties_pnext(dec, val->pNext);
11343bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDriverProperties_self(dec, val);
11344bf215546Sopenharmony_ci}
11345bf215546Sopenharmony_ci
11346bf215546Sopenharmony_cistatic inline size_t
11347bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties_pnext_partial(const void *val)
11348bf215546Sopenharmony_ci{
11349bf215546Sopenharmony_ci    /* no known/supported struct */
11350bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11351bf215546Sopenharmony_ci}
11352bf215546Sopenharmony_ci
11353bf215546Sopenharmony_cistatic inline size_t
11354bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties_self_partial(const VkPhysicalDeviceDriverProperties *val)
11355bf215546Sopenharmony_ci{
11356bf215546Sopenharmony_ci    size_t size = 0;
11357bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11358bf215546Sopenharmony_ci    /* skip val->driverID */
11359bf215546Sopenharmony_ci    /* skip val->driverName */
11360bf215546Sopenharmony_ci    /* skip val->driverInfo */
11361bf215546Sopenharmony_ci    size += vn_sizeof_VkConformanceVersion_partial(&val->conformanceVersion);
11362bf215546Sopenharmony_ci    return size;
11363bf215546Sopenharmony_ci}
11364bf215546Sopenharmony_ci
11365bf215546Sopenharmony_cistatic inline size_t
11366bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDriverProperties_partial(const VkPhysicalDeviceDriverProperties *val)
11367bf215546Sopenharmony_ci{
11368bf215546Sopenharmony_ci    size_t size = 0;
11369bf215546Sopenharmony_ci
11370bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11371bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDriverProperties_pnext_partial(val->pNext);
11372bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDriverProperties_self_partial(val);
11373bf215546Sopenharmony_ci
11374bf215546Sopenharmony_ci    return size;
11375bf215546Sopenharmony_ci}
11376bf215546Sopenharmony_ci
11377bf215546Sopenharmony_cistatic inline void
11378bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDriverProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11379bf215546Sopenharmony_ci{
11380bf215546Sopenharmony_ci    /* no known/supported struct */
11381bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11382bf215546Sopenharmony_ci}
11383bf215546Sopenharmony_ci
11384bf215546Sopenharmony_cistatic inline void
11385bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDriverProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDriverProperties *val)
11386bf215546Sopenharmony_ci{
11387bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11388bf215546Sopenharmony_ci    /* skip val->driverID */
11389bf215546Sopenharmony_ci    /* skip val->driverName */
11390bf215546Sopenharmony_ci    /* skip val->driverInfo */
11391bf215546Sopenharmony_ci    vn_encode_VkConformanceVersion_partial(enc, &val->conformanceVersion);
11392bf215546Sopenharmony_ci}
11393bf215546Sopenharmony_ci
11394bf215546Sopenharmony_cistatic inline void
11395bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDriverProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDriverProperties *val)
11396bf215546Sopenharmony_ci{
11397bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES);
11398bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES });
11399bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDriverProperties_pnext_partial(enc, val->pNext);
11400bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDriverProperties_self_partial(enc, val);
11401bf215546Sopenharmony_ci}
11402bf215546Sopenharmony_ci
11403bf215546Sopenharmony_ci/* struct VkPhysicalDeviceIDProperties chain */
11404bf215546Sopenharmony_ci
11405bf215546Sopenharmony_cistatic inline size_t
11406bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties_pnext(const void *val)
11407bf215546Sopenharmony_ci{
11408bf215546Sopenharmony_ci    /* no known/supported struct */
11409bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11410bf215546Sopenharmony_ci}
11411bf215546Sopenharmony_ci
11412bf215546Sopenharmony_cistatic inline size_t
11413bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties_self(const VkPhysicalDeviceIDProperties *val)
11414bf215546Sopenharmony_ci{
11415bf215546Sopenharmony_ci    size_t size = 0;
11416bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11417bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_UUID_SIZE);
11418bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->deviceUUID, VK_UUID_SIZE);
11419bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_UUID_SIZE);
11420bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->driverUUID, VK_UUID_SIZE);
11421bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_LUID_SIZE);
11422bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->deviceLUID, VK_LUID_SIZE);
11423bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->deviceNodeMask);
11424bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->deviceLUIDValid);
11425bf215546Sopenharmony_ci    return size;
11426bf215546Sopenharmony_ci}
11427bf215546Sopenharmony_ci
11428bf215546Sopenharmony_cistatic inline size_t
11429bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties(const VkPhysicalDeviceIDProperties *val)
11430bf215546Sopenharmony_ci{
11431bf215546Sopenharmony_ci    size_t size = 0;
11432bf215546Sopenharmony_ci
11433bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11434bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIDProperties_pnext(val->pNext);
11435bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIDProperties_self(val);
11436bf215546Sopenharmony_ci
11437bf215546Sopenharmony_ci    return size;
11438bf215546Sopenharmony_ci}
11439bf215546Sopenharmony_ci
11440bf215546Sopenharmony_cistatic inline void
11441bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIDProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11442bf215546Sopenharmony_ci{
11443bf215546Sopenharmony_ci    /* no known/supported struct */
11444bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11445bf215546Sopenharmony_ci        assert(false);
11446bf215546Sopenharmony_ci}
11447bf215546Sopenharmony_ci
11448bf215546Sopenharmony_cistatic inline void
11449bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIDProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceIDProperties *val)
11450bf215546Sopenharmony_ci{
11451bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11452bf215546Sopenharmony_ci    {
11453bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_UUID_SIZE);
11454bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->deviceUUID, array_size);
11455bf215546Sopenharmony_ci    }
11456bf215546Sopenharmony_ci    {
11457bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_UUID_SIZE);
11458bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->driverUUID, array_size);
11459bf215546Sopenharmony_ci    }
11460bf215546Sopenharmony_ci    {
11461bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_LUID_SIZE);
11462bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->deviceLUID, array_size);
11463bf215546Sopenharmony_ci    }
11464bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->deviceNodeMask);
11465bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->deviceLUIDValid);
11466bf215546Sopenharmony_ci}
11467bf215546Sopenharmony_ci
11468bf215546Sopenharmony_cistatic inline void
11469bf215546Sopenharmony_civn_decode_VkPhysicalDeviceIDProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceIDProperties *val)
11470bf215546Sopenharmony_ci{
11471bf215546Sopenharmony_ci    VkStructureType stype;
11472bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11473bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES);
11474bf215546Sopenharmony_ci
11475bf215546Sopenharmony_ci    assert(val->sType == stype);
11476bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceIDProperties_pnext(dec, val->pNext);
11477bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceIDProperties_self(dec, val);
11478bf215546Sopenharmony_ci}
11479bf215546Sopenharmony_ci
11480bf215546Sopenharmony_cistatic inline size_t
11481bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties_pnext_partial(const void *val)
11482bf215546Sopenharmony_ci{
11483bf215546Sopenharmony_ci    /* no known/supported struct */
11484bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11485bf215546Sopenharmony_ci}
11486bf215546Sopenharmony_ci
11487bf215546Sopenharmony_cistatic inline size_t
11488bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties_self_partial(const VkPhysicalDeviceIDProperties *val)
11489bf215546Sopenharmony_ci{
11490bf215546Sopenharmony_ci    size_t size = 0;
11491bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11492bf215546Sopenharmony_ci    /* skip val->deviceUUID */
11493bf215546Sopenharmony_ci    /* skip val->driverUUID */
11494bf215546Sopenharmony_ci    /* skip val->deviceLUID */
11495bf215546Sopenharmony_ci    /* skip val->deviceNodeMask */
11496bf215546Sopenharmony_ci    /* skip val->deviceLUIDValid */
11497bf215546Sopenharmony_ci    return size;
11498bf215546Sopenharmony_ci}
11499bf215546Sopenharmony_ci
11500bf215546Sopenharmony_cistatic inline size_t
11501bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceIDProperties_partial(const VkPhysicalDeviceIDProperties *val)
11502bf215546Sopenharmony_ci{
11503bf215546Sopenharmony_ci    size_t size = 0;
11504bf215546Sopenharmony_ci
11505bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11506bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIDProperties_pnext_partial(val->pNext);
11507bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceIDProperties_self_partial(val);
11508bf215546Sopenharmony_ci
11509bf215546Sopenharmony_ci    return size;
11510bf215546Sopenharmony_ci}
11511bf215546Sopenharmony_ci
11512bf215546Sopenharmony_cistatic inline void
11513bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIDProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11514bf215546Sopenharmony_ci{
11515bf215546Sopenharmony_ci    /* no known/supported struct */
11516bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11517bf215546Sopenharmony_ci}
11518bf215546Sopenharmony_ci
11519bf215546Sopenharmony_cistatic inline void
11520bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIDProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceIDProperties *val)
11521bf215546Sopenharmony_ci{
11522bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11523bf215546Sopenharmony_ci    /* skip val->deviceUUID */
11524bf215546Sopenharmony_ci    /* skip val->driverUUID */
11525bf215546Sopenharmony_ci    /* skip val->deviceLUID */
11526bf215546Sopenharmony_ci    /* skip val->deviceNodeMask */
11527bf215546Sopenharmony_ci    /* skip val->deviceLUIDValid */
11528bf215546Sopenharmony_ci}
11529bf215546Sopenharmony_ci
11530bf215546Sopenharmony_cistatic inline void
11531bf215546Sopenharmony_civn_encode_VkPhysicalDeviceIDProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceIDProperties *val)
11532bf215546Sopenharmony_ci{
11533bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES);
11534bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES });
11535bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIDProperties_pnext_partial(enc, val->pNext);
11536bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceIDProperties_self_partial(enc, val);
11537bf215546Sopenharmony_ci}
11538bf215546Sopenharmony_ci
11539bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMultiviewProperties chain */
11540bf215546Sopenharmony_ci
11541bf215546Sopenharmony_cistatic inline size_t
11542bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties_pnext(const void *val)
11543bf215546Sopenharmony_ci{
11544bf215546Sopenharmony_ci    /* no known/supported struct */
11545bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11546bf215546Sopenharmony_ci}
11547bf215546Sopenharmony_ci
11548bf215546Sopenharmony_cistatic inline size_t
11549bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties_self(const VkPhysicalDeviceMultiviewProperties *val)
11550bf215546Sopenharmony_ci{
11551bf215546Sopenharmony_ci    size_t size = 0;
11552bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11553bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMultiviewViewCount);
11554bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMultiviewInstanceIndex);
11555bf215546Sopenharmony_ci    return size;
11556bf215546Sopenharmony_ci}
11557bf215546Sopenharmony_ci
11558bf215546Sopenharmony_cistatic inline size_t
11559bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties(const VkPhysicalDeviceMultiviewProperties *val)
11560bf215546Sopenharmony_ci{
11561bf215546Sopenharmony_ci    size_t size = 0;
11562bf215546Sopenharmony_ci
11563bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11564bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_pnext(val->pNext);
11565bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_self(val);
11566bf215546Sopenharmony_ci
11567bf215546Sopenharmony_ci    return size;
11568bf215546Sopenharmony_ci}
11569bf215546Sopenharmony_ci
11570bf215546Sopenharmony_cistatic inline void
11571bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11572bf215546Sopenharmony_ci{
11573bf215546Sopenharmony_ci    /* no known/supported struct */
11574bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11575bf215546Sopenharmony_ci        assert(false);
11576bf215546Sopenharmony_ci}
11577bf215546Sopenharmony_ci
11578bf215546Sopenharmony_cistatic inline void
11579bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewProperties *val)
11580bf215546Sopenharmony_ci{
11581bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11582bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMultiviewViewCount);
11583bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMultiviewInstanceIndex);
11584bf215546Sopenharmony_ci}
11585bf215546Sopenharmony_ci
11586bf215546Sopenharmony_cistatic inline void
11587bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMultiviewProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceMultiviewProperties *val)
11588bf215546Sopenharmony_ci{
11589bf215546Sopenharmony_ci    VkStructureType stype;
11590bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11591bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES);
11592bf215546Sopenharmony_ci
11593bf215546Sopenharmony_ci    assert(val->sType == stype);
11594bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMultiviewProperties_pnext(dec, val->pNext);
11595bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMultiviewProperties_self(dec, val);
11596bf215546Sopenharmony_ci}
11597bf215546Sopenharmony_ci
11598bf215546Sopenharmony_cistatic inline size_t
11599bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties_pnext_partial(const void *val)
11600bf215546Sopenharmony_ci{
11601bf215546Sopenharmony_ci    /* no known/supported struct */
11602bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11603bf215546Sopenharmony_ci}
11604bf215546Sopenharmony_ci
11605bf215546Sopenharmony_cistatic inline size_t
11606bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties_self_partial(const VkPhysicalDeviceMultiviewProperties *val)
11607bf215546Sopenharmony_ci{
11608bf215546Sopenharmony_ci    size_t size = 0;
11609bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11610bf215546Sopenharmony_ci    /* skip val->maxMultiviewViewCount */
11611bf215546Sopenharmony_ci    /* skip val->maxMultiviewInstanceIndex */
11612bf215546Sopenharmony_ci    return size;
11613bf215546Sopenharmony_ci}
11614bf215546Sopenharmony_ci
11615bf215546Sopenharmony_cistatic inline size_t
11616bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMultiviewProperties_partial(const VkPhysicalDeviceMultiviewProperties *val)
11617bf215546Sopenharmony_ci{
11618bf215546Sopenharmony_ci    size_t size = 0;
11619bf215546Sopenharmony_ci
11620bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11621bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_pnext_partial(val->pNext);
11622bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_self_partial(val);
11623bf215546Sopenharmony_ci
11624bf215546Sopenharmony_ci    return size;
11625bf215546Sopenharmony_ci}
11626bf215546Sopenharmony_ci
11627bf215546Sopenharmony_cistatic inline void
11628bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11629bf215546Sopenharmony_ci{
11630bf215546Sopenharmony_ci    /* no known/supported struct */
11631bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11632bf215546Sopenharmony_ci}
11633bf215546Sopenharmony_ci
11634bf215546Sopenharmony_cistatic inline void
11635bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewProperties *val)
11636bf215546Sopenharmony_ci{
11637bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11638bf215546Sopenharmony_ci    /* skip val->maxMultiviewViewCount */
11639bf215546Sopenharmony_ci    /* skip val->maxMultiviewInstanceIndex */
11640bf215546Sopenharmony_ci}
11641bf215546Sopenharmony_ci
11642bf215546Sopenharmony_cistatic inline void
11643bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMultiviewProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMultiviewProperties *val)
11644bf215546Sopenharmony_ci{
11645bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES);
11646bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES });
11647bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewProperties_pnext_partial(enc, val->pNext);
11648bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMultiviewProperties_self_partial(enc, val);
11649bf215546Sopenharmony_ci}
11650bf215546Sopenharmony_ci
11651bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSubgroupProperties chain */
11652bf215546Sopenharmony_ci
11653bf215546Sopenharmony_cistatic inline size_t
11654bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties_pnext(const void *val)
11655bf215546Sopenharmony_ci{
11656bf215546Sopenharmony_ci    /* no known/supported struct */
11657bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11658bf215546Sopenharmony_ci}
11659bf215546Sopenharmony_ci
11660bf215546Sopenharmony_cistatic inline size_t
11661bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties_self(const VkPhysicalDeviceSubgroupProperties *val)
11662bf215546Sopenharmony_ci{
11663bf215546Sopenharmony_ci    size_t size = 0;
11664bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11665bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->subgroupSize);
11666bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedStages);
11667bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedOperations);
11668bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->quadOperationsInAllStages);
11669bf215546Sopenharmony_ci    return size;
11670bf215546Sopenharmony_ci}
11671bf215546Sopenharmony_ci
11672bf215546Sopenharmony_cistatic inline size_t
11673bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties(const VkPhysicalDeviceSubgroupProperties *val)
11674bf215546Sopenharmony_ci{
11675bf215546Sopenharmony_ci    size_t size = 0;
11676bf215546Sopenharmony_ci
11677bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11678bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_pnext(val->pNext);
11679bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_self(val);
11680bf215546Sopenharmony_ci
11681bf215546Sopenharmony_ci    return size;
11682bf215546Sopenharmony_ci}
11683bf215546Sopenharmony_ci
11684bf215546Sopenharmony_cistatic inline void
11685bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11686bf215546Sopenharmony_ci{
11687bf215546Sopenharmony_ci    /* no known/supported struct */
11688bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11689bf215546Sopenharmony_ci        assert(false);
11690bf215546Sopenharmony_ci}
11691bf215546Sopenharmony_ci
11692bf215546Sopenharmony_cistatic inline void
11693bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupProperties *val)
11694bf215546Sopenharmony_ci{
11695bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11696bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->subgroupSize);
11697bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedStages);
11698bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedOperations);
11699bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->quadOperationsInAllStages);
11700bf215546Sopenharmony_ci}
11701bf215546Sopenharmony_ci
11702bf215546Sopenharmony_cistatic inline void
11703bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupProperties *val)
11704bf215546Sopenharmony_ci{
11705bf215546Sopenharmony_ci    VkStructureType stype;
11706bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11707bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES);
11708bf215546Sopenharmony_ci
11709bf215546Sopenharmony_ci    assert(val->sType == stype);
11710bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupProperties_pnext(dec, val->pNext);
11711bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupProperties_self(dec, val);
11712bf215546Sopenharmony_ci}
11713bf215546Sopenharmony_ci
11714bf215546Sopenharmony_cistatic inline size_t
11715bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties_pnext_partial(const void *val)
11716bf215546Sopenharmony_ci{
11717bf215546Sopenharmony_ci    /* no known/supported struct */
11718bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11719bf215546Sopenharmony_ci}
11720bf215546Sopenharmony_ci
11721bf215546Sopenharmony_cistatic inline size_t
11722bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties_self_partial(const VkPhysicalDeviceSubgroupProperties *val)
11723bf215546Sopenharmony_ci{
11724bf215546Sopenharmony_ci    size_t size = 0;
11725bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11726bf215546Sopenharmony_ci    /* skip val->subgroupSize */
11727bf215546Sopenharmony_ci    /* skip val->supportedStages */
11728bf215546Sopenharmony_ci    /* skip val->supportedOperations */
11729bf215546Sopenharmony_ci    /* skip val->quadOperationsInAllStages */
11730bf215546Sopenharmony_ci    return size;
11731bf215546Sopenharmony_ci}
11732bf215546Sopenharmony_ci
11733bf215546Sopenharmony_cistatic inline size_t
11734bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupProperties_partial(const VkPhysicalDeviceSubgroupProperties *val)
11735bf215546Sopenharmony_ci{
11736bf215546Sopenharmony_ci    size_t size = 0;
11737bf215546Sopenharmony_ci
11738bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11739bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_pnext_partial(val->pNext);
11740bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_self_partial(val);
11741bf215546Sopenharmony_ci
11742bf215546Sopenharmony_ci    return size;
11743bf215546Sopenharmony_ci}
11744bf215546Sopenharmony_ci
11745bf215546Sopenharmony_cistatic inline void
11746bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11747bf215546Sopenharmony_ci{
11748bf215546Sopenharmony_ci    /* no known/supported struct */
11749bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11750bf215546Sopenharmony_ci}
11751bf215546Sopenharmony_ci
11752bf215546Sopenharmony_cistatic inline void
11753bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupProperties *val)
11754bf215546Sopenharmony_ci{
11755bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11756bf215546Sopenharmony_ci    /* skip val->subgroupSize */
11757bf215546Sopenharmony_ci    /* skip val->supportedStages */
11758bf215546Sopenharmony_ci    /* skip val->supportedOperations */
11759bf215546Sopenharmony_ci    /* skip val->quadOperationsInAllStages */
11760bf215546Sopenharmony_ci}
11761bf215546Sopenharmony_ci
11762bf215546Sopenharmony_cistatic inline void
11763bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupProperties *val)
11764bf215546Sopenharmony_ci{
11765bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES);
11766bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES });
11767bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupProperties_pnext_partial(enc, val->pNext);
11768bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupProperties_self_partial(enc, val);
11769bf215546Sopenharmony_ci}
11770bf215546Sopenharmony_ci
11771bf215546Sopenharmony_ci/* struct VkPhysicalDevicePointClippingProperties chain */
11772bf215546Sopenharmony_ci
11773bf215546Sopenharmony_cistatic inline size_t
11774bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties_pnext(const void *val)
11775bf215546Sopenharmony_ci{
11776bf215546Sopenharmony_ci    /* no known/supported struct */
11777bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11778bf215546Sopenharmony_ci}
11779bf215546Sopenharmony_ci
11780bf215546Sopenharmony_cistatic inline size_t
11781bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties_self(const VkPhysicalDevicePointClippingProperties *val)
11782bf215546Sopenharmony_ci{
11783bf215546Sopenharmony_ci    size_t size = 0;
11784bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11785bf215546Sopenharmony_ci    size += vn_sizeof_VkPointClippingBehavior(&val->pointClippingBehavior);
11786bf215546Sopenharmony_ci    return size;
11787bf215546Sopenharmony_ci}
11788bf215546Sopenharmony_ci
11789bf215546Sopenharmony_cistatic inline size_t
11790bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties(const VkPhysicalDevicePointClippingProperties *val)
11791bf215546Sopenharmony_ci{
11792bf215546Sopenharmony_ci    size_t size = 0;
11793bf215546Sopenharmony_ci
11794bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11795bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePointClippingProperties_pnext(val->pNext);
11796bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePointClippingProperties_self(val);
11797bf215546Sopenharmony_ci
11798bf215546Sopenharmony_ci    return size;
11799bf215546Sopenharmony_ci}
11800bf215546Sopenharmony_ci
11801bf215546Sopenharmony_cistatic inline void
11802bf215546Sopenharmony_civn_decode_VkPhysicalDevicePointClippingProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11803bf215546Sopenharmony_ci{
11804bf215546Sopenharmony_ci    /* no known/supported struct */
11805bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11806bf215546Sopenharmony_ci        assert(false);
11807bf215546Sopenharmony_ci}
11808bf215546Sopenharmony_ci
11809bf215546Sopenharmony_cistatic inline void
11810bf215546Sopenharmony_civn_decode_VkPhysicalDevicePointClippingProperties_self(struct vn_cs_decoder *dec, VkPhysicalDevicePointClippingProperties *val)
11811bf215546Sopenharmony_ci{
11812bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11813bf215546Sopenharmony_ci    vn_decode_VkPointClippingBehavior(dec, &val->pointClippingBehavior);
11814bf215546Sopenharmony_ci}
11815bf215546Sopenharmony_ci
11816bf215546Sopenharmony_cistatic inline void
11817bf215546Sopenharmony_civn_decode_VkPhysicalDevicePointClippingProperties(struct vn_cs_decoder *dec, VkPhysicalDevicePointClippingProperties *val)
11818bf215546Sopenharmony_ci{
11819bf215546Sopenharmony_ci    VkStructureType stype;
11820bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11821bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES);
11822bf215546Sopenharmony_ci
11823bf215546Sopenharmony_ci    assert(val->sType == stype);
11824bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePointClippingProperties_pnext(dec, val->pNext);
11825bf215546Sopenharmony_ci    vn_decode_VkPhysicalDevicePointClippingProperties_self(dec, val);
11826bf215546Sopenharmony_ci}
11827bf215546Sopenharmony_ci
11828bf215546Sopenharmony_cistatic inline size_t
11829bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties_pnext_partial(const void *val)
11830bf215546Sopenharmony_ci{
11831bf215546Sopenharmony_ci    /* no known/supported struct */
11832bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11833bf215546Sopenharmony_ci}
11834bf215546Sopenharmony_ci
11835bf215546Sopenharmony_cistatic inline size_t
11836bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties_self_partial(const VkPhysicalDevicePointClippingProperties *val)
11837bf215546Sopenharmony_ci{
11838bf215546Sopenharmony_ci    size_t size = 0;
11839bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11840bf215546Sopenharmony_ci    /* skip val->pointClippingBehavior */
11841bf215546Sopenharmony_ci    return size;
11842bf215546Sopenharmony_ci}
11843bf215546Sopenharmony_ci
11844bf215546Sopenharmony_cistatic inline size_t
11845bf215546Sopenharmony_civn_sizeof_VkPhysicalDevicePointClippingProperties_partial(const VkPhysicalDevicePointClippingProperties *val)
11846bf215546Sopenharmony_ci{
11847bf215546Sopenharmony_ci    size_t size = 0;
11848bf215546Sopenharmony_ci
11849bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11850bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePointClippingProperties_pnext_partial(val->pNext);
11851bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDevicePointClippingProperties_self_partial(val);
11852bf215546Sopenharmony_ci
11853bf215546Sopenharmony_ci    return size;
11854bf215546Sopenharmony_ci}
11855bf215546Sopenharmony_ci
11856bf215546Sopenharmony_cistatic inline void
11857bf215546Sopenharmony_civn_encode_VkPhysicalDevicePointClippingProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11858bf215546Sopenharmony_ci{
11859bf215546Sopenharmony_ci    /* no known/supported struct */
11860bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11861bf215546Sopenharmony_ci}
11862bf215546Sopenharmony_ci
11863bf215546Sopenharmony_cistatic inline void
11864bf215546Sopenharmony_civn_encode_VkPhysicalDevicePointClippingProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePointClippingProperties *val)
11865bf215546Sopenharmony_ci{
11866bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11867bf215546Sopenharmony_ci    /* skip val->pointClippingBehavior */
11868bf215546Sopenharmony_ci}
11869bf215546Sopenharmony_ci
11870bf215546Sopenharmony_cistatic inline void
11871bf215546Sopenharmony_civn_encode_VkPhysicalDevicePointClippingProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePointClippingProperties *val)
11872bf215546Sopenharmony_ci{
11873bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES);
11874bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES });
11875bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePointClippingProperties_pnext_partial(enc, val->pNext);
11876bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevicePointClippingProperties_self_partial(enc, val);
11877bf215546Sopenharmony_ci}
11878bf215546Sopenharmony_ci
11879bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProtectedMemoryProperties chain */
11880bf215546Sopenharmony_ci
11881bf215546Sopenharmony_cistatic inline size_t
11882bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_pnext(const void *val)
11883bf215546Sopenharmony_ci{
11884bf215546Sopenharmony_ci    /* no known/supported struct */
11885bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11886bf215546Sopenharmony_ci}
11887bf215546Sopenharmony_ci
11888bf215546Sopenharmony_cistatic inline size_t
11889bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self(const VkPhysicalDeviceProtectedMemoryProperties *val)
11890bf215546Sopenharmony_ci{
11891bf215546Sopenharmony_ci    size_t size = 0;
11892bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11893bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->protectedNoFault);
11894bf215546Sopenharmony_ci    return size;
11895bf215546Sopenharmony_ci}
11896bf215546Sopenharmony_ci
11897bf215546Sopenharmony_cistatic inline size_t
11898bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties(const VkPhysicalDeviceProtectedMemoryProperties *val)
11899bf215546Sopenharmony_ci{
11900bf215546Sopenharmony_ci    size_t size = 0;
11901bf215546Sopenharmony_ci
11902bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11903bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_pnext(val->pNext);
11904bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self(val);
11905bf215546Sopenharmony_ci
11906bf215546Sopenharmony_ci    return size;
11907bf215546Sopenharmony_ci}
11908bf215546Sopenharmony_ci
11909bf215546Sopenharmony_cistatic inline void
11910bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryProperties_pnext(struct vn_cs_decoder *dec, const void *val)
11911bf215546Sopenharmony_ci{
11912bf215546Sopenharmony_ci    /* no known/supported struct */
11913bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
11914bf215546Sopenharmony_ci        assert(false);
11915bf215546Sopenharmony_ci}
11916bf215546Sopenharmony_ci
11917bf215546Sopenharmony_cistatic inline void
11918bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryProperties *val)
11919bf215546Sopenharmony_ci{
11920bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11921bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->protectedNoFault);
11922bf215546Sopenharmony_ci}
11923bf215546Sopenharmony_ci
11924bf215546Sopenharmony_cistatic inline void
11925bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProtectedMemoryProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceProtectedMemoryProperties *val)
11926bf215546Sopenharmony_ci{
11927bf215546Sopenharmony_ci    VkStructureType stype;
11928bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
11929bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES);
11930bf215546Sopenharmony_ci
11931bf215546Sopenharmony_ci    assert(val->sType == stype);
11932bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProtectedMemoryProperties_pnext(dec, val->pNext);
11933bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self(dec, val);
11934bf215546Sopenharmony_ci}
11935bf215546Sopenharmony_ci
11936bf215546Sopenharmony_cistatic inline size_t
11937bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial(const void *val)
11938bf215546Sopenharmony_ci{
11939bf215546Sopenharmony_ci    /* no known/supported struct */
11940bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11941bf215546Sopenharmony_ci}
11942bf215546Sopenharmony_ci
11943bf215546Sopenharmony_cistatic inline size_t
11944bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self_partial(const VkPhysicalDeviceProtectedMemoryProperties *val)
11945bf215546Sopenharmony_ci{
11946bf215546Sopenharmony_ci    size_t size = 0;
11947bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11948bf215546Sopenharmony_ci    /* skip val->protectedNoFault */
11949bf215546Sopenharmony_ci    return size;
11950bf215546Sopenharmony_ci}
11951bf215546Sopenharmony_ci
11952bf215546Sopenharmony_cistatic inline size_t
11953bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_partial(const VkPhysicalDeviceProtectedMemoryProperties *val)
11954bf215546Sopenharmony_ci{
11955bf215546Sopenharmony_ci    size_t size = 0;
11956bf215546Sopenharmony_ci
11957bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
11958bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial(val->pNext);
11959bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self_partial(val);
11960bf215546Sopenharmony_ci
11961bf215546Sopenharmony_ci    return size;
11962bf215546Sopenharmony_ci}
11963bf215546Sopenharmony_ci
11964bf215546Sopenharmony_cistatic inline void
11965bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
11966bf215546Sopenharmony_ci{
11967bf215546Sopenharmony_ci    /* no known/supported struct */
11968bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
11969bf215546Sopenharmony_ci}
11970bf215546Sopenharmony_ci
11971bf215546Sopenharmony_cistatic inline void
11972bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryProperties *val)
11973bf215546Sopenharmony_ci{
11974bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
11975bf215546Sopenharmony_ci    /* skip val->protectedNoFault */
11976bf215546Sopenharmony_ci}
11977bf215546Sopenharmony_ci
11978bf215546Sopenharmony_cistatic inline void
11979bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProtectedMemoryProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProtectedMemoryProperties *val)
11980bf215546Sopenharmony_ci{
11981bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES);
11982bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES });
11983bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryProperties_pnext_partial(enc, val->pNext);
11984bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self_partial(enc, val);
11985bf215546Sopenharmony_ci}
11986bf215546Sopenharmony_ci
11987bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSamplerFilterMinmaxProperties chain */
11988bf215546Sopenharmony_ci
11989bf215546Sopenharmony_cistatic inline size_t
11990bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(const void *val)
11991bf215546Sopenharmony_ci{
11992bf215546Sopenharmony_ci    /* no known/supported struct */
11993bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
11994bf215546Sopenharmony_ci}
11995bf215546Sopenharmony_ci
11996bf215546Sopenharmony_cistatic inline size_t
11997bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
11998bf215546Sopenharmony_ci{
11999bf215546Sopenharmony_ci    size_t size = 0;
12000bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12001bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->filterMinmaxSingleComponentFormats);
12002bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->filterMinmaxImageComponentMapping);
12003bf215546Sopenharmony_ci    return size;
12004bf215546Sopenharmony_ci}
12005bf215546Sopenharmony_ci
12006bf215546Sopenharmony_cistatic inline size_t
12007bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties(const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12008bf215546Sopenharmony_ci{
12009bf215546Sopenharmony_ci    size_t size = 0;
12010bf215546Sopenharmony_ci
12011bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12012bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(val->pNext);
12013bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(val);
12014bf215546Sopenharmony_ci
12015bf215546Sopenharmony_ci    return size;
12016bf215546Sopenharmony_ci}
12017bf215546Sopenharmony_ci
12018bf215546Sopenharmony_cistatic inline void
12019bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(struct vn_cs_decoder *dec, const void *val)
12020bf215546Sopenharmony_ci{
12021bf215546Sopenharmony_ci    /* no known/supported struct */
12022bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12023bf215546Sopenharmony_ci        assert(false);
12024bf215546Sopenharmony_ci}
12025bf215546Sopenharmony_ci
12026bf215546Sopenharmony_cistatic inline void
12027bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12028bf215546Sopenharmony_ci{
12029bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12030bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->filterMinmaxSingleComponentFormats);
12031bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->filterMinmaxImageComponentMapping);
12032bf215546Sopenharmony_ci}
12033bf215546Sopenharmony_ci
12034bf215546Sopenharmony_cistatic inline void
12035bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12036bf215546Sopenharmony_ci{
12037bf215546Sopenharmony_ci    VkStructureType stype;
12038bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12039bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES);
12040bf215546Sopenharmony_ci
12041bf215546Sopenharmony_ci    assert(val->sType == stype);
12042bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext(dec, val->pNext);
12043bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(dec, val);
12044bf215546Sopenharmony_ci}
12045bf215546Sopenharmony_ci
12046bf215546Sopenharmony_cistatic inline size_t
12047bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial(const void *val)
12048bf215546Sopenharmony_ci{
12049bf215546Sopenharmony_ci    /* no known/supported struct */
12050bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12051bf215546Sopenharmony_ci}
12052bf215546Sopenharmony_ci
12053bf215546Sopenharmony_cistatic inline size_t
12054bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial(const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12055bf215546Sopenharmony_ci{
12056bf215546Sopenharmony_ci    size_t size = 0;
12057bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12058bf215546Sopenharmony_ci    /* skip val->filterMinmaxSingleComponentFormats */
12059bf215546Sopenharmony_ci    /* skip val->filterMinmaxImageComponentMapping */
12060bf215546Sopenharmony_ci    return size;
12061bf215546Sopenharmony_ci}
12062bf215546Sopenharmony_ci
12063bf215546Sopenharmony_cistatic inline size_t
12064bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_partial(const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12065bf215546Sopenharmony_ci{
12066bf215546Sopenharmony_ci    size_t size = 0;
12067bf215546Sopenharmony_ci
12068bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12069bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial(val->pNext);
12070bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial(val);
12071bf215546Sopenharmony_ci
12072bf215546Sopenharmony_ci    return size;
12073bf215546Sopenharmony_ci}
12074bf215546Sopenharmony_ci
12075bf215546Sopenharmony_cistatic inline void
12076bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12077bf215546Sopenharmony_ci{
12078bf215546Sopenharmony_ci    /* no known/supported struct */
12079bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12080bf215546Sopenharmony_ci}
12081bf215546Sopenharmony_ci
12082bf215546Sopenharmony_cistatic inline void
12083bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12084bf215546Sopenharmony_ci{
12085bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12086bf215546Sopenharmony_ci    /* skip val->filterMinmaxSingleComponentFormats */
12087bf215546Sopenharmony_ci    /* skip val->filterMinmaxImageComponentMapping */
12088bf215546Sopenharmony_ci}
12089bf215546Sopenharmony_ci
12090bf215546Sopenharmony_cistatic inline void
12091bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSamplerFilterMinmaxProperties *val)
12092bf215546Sopenharmony_ci{
12093bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES);
12094bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES });
12095bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_pnext_partial(enc, val->pNext);
12096bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial(enc, val);
12097bf215546Sopenharmony_ci}
12098bf215546Sopenharmony_ci
12099bf215546Sopenharmony_ci/* struct VkPhysicalDeviceInlineUniformBlockProperties chain */
12100bf215546Sopenharmony_ci
12101bf215546Sopenharmony_cistatic inline size_t
12102bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_pnext(const void *val)
12103bf215546Sopenharmony_ci{
12104bf215546Sopenharmony_ci    /* no known/supported struct */
12105bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12106bf215546Sopenharmony_ci}
12107bf215546Sopenharmony_ci
12108bf215546Sopenharmony_cistatic inline size_t
12109bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self(const VkPhysicalDeviceInlineUniformBlockProperties *val)
12110bf215546Sopenharmony_ci{
12111bf215546Sopenharmony_ci    size_t size = 0;
12112bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12113bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxInlineUniformBlockSize);
12114bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorInlineUniformBlocks);
12115bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
12116bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetInlineUniformBlocks);
12117bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
12118bf215546Sopenharmony_ci    return size;
12119bf215546Sopenharmony_ci}
12120bf215546Sopenharmony_ci
12121bf215546Sopenharmony_cistatic inline size_t
12122bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties(const VkPhysicalDeviceInlineUniformBlockProperties *val)
12123bf215546Sopenharmony_ci{
12124bf215546Sopenharmony_ci    size_t size = 0;
12125bf215546Sopenharmony_ci
12126bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12127bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_pnext(val->pNext);
12128bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self(val);
12129bf215546Sopenharmony_ci
12130bf215546Sopenharmony_ci    return size;
12131bf215546Sopenharmony_ci}
12132bf215546Sopenharmony_ci
12133bf215546Sopenharmony_cistatic inline void
12134bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(struct vn_cs_decoder *dec, const void *val)
12135bf215546Sopenharmony_ci{
12136bf215546Sopenharmony_ci    /* no known/supported struct */
12137bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12138bf215546Sopenharmony_ci        assert(false);
12139bf215546Sopenharmony_ci}
12140bf215546Sopenharmony_ci
12141bf215546Sopenharmony_cistatic inline void
12142bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val)
12143bf215546Sopenharmony_ci{
12144bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12145bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxInlineUniformBlockSize);
12146bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorInlineUniformBlocks);
12147bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
12148bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetInlineUniformBlocks);
12149bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
12150bf215546Sopenharmony_ci}
12151bf215546Sopenharmony_ci
12152bf215546Sopenharmony_cistatic inline void
12153bf215546Sopenharmony_civn_decode_VkPhysicalDeviceInlineUniformBlockProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val)
12154bf215546Sopenharmony_ci{
12155bf215546Sopenharmony_ci    VkStructureType stype;
12156bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12157bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES);
12158bf215546Sopenharmony_ci
12159bf215546Sopenharmony_ci    assert(val->sType == stype);
12160bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(dec, val->pNext);
12161bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self(dec, val);
12162bf215546Sopenharmony_ci}
12163bf215546Sopenharmony_ci
12164bf215546Sopenharmony_cistatic inline size_t
12165bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial(const void *val)
12166bf215546Sopenharmony_ci{
12167bf215546Sopenharmony_ci    /* no known/supported struct */
12168bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12169bf215546Sopenharmony_ci}
12170bf215546Sopenharmony_ci
12171bf215546Sopenharmony_cistatic inline size_t
12172bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self_partial(const VkPhysicalDeviceInlineUniformBlockProperties *val)
12173bf215546Sopenharmony_ci{
12174bf215546Sopenharmony_ci    size_t size = 0;
12175bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12176bf215546Sopenharmony_ci    /* skip val->maxInlineUniformBlockSize */
12177bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInlineUniformBlocks */
12178bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
12179bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInlineUniformBlocks */
12180bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
12181bf215546Sopenharmony_ci    return size;
12182bf215546Sopenharmony_ci}
12183bf215546Sopenharmony_ci
12184bf215546Sopenharmony_cistatic inline size_t
12185bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_partial(const VkPhysicalDeviceInlineUniformBlockProperties *val)
12186bf215546Sopenharmony_ci{
12187bf215546Sopenharmony_ci    size_t size = 0;
12188bf215546Sopenharmony_ci
12189bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12190bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial(val->pNext);
12191bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self_partial(val);
12192bf215546Sopenharmony_ci
12193bf215546Sopenharmony_ci    return size;
12194bf215546Sopenharmony_ci}
12195bf215546Sopenharmony_ci
12196bf215546Sopenharmony_cistatic inline void
12197bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12198bf215546Sopenharmony_ci{
12199bf215546Sopenharmony_ci    /* no known/supported struct */
12200bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12201bf215546Sopenharmony_ci}
12202bf215546Sopenharmony_ci
12203bf215546Sopenharmony_cistatic inline void
12204bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val)
12205bf215546Sopenharmony_ci{
12206bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12207bf215546Sopenharmony_ci    /* skip val->maxInlineUniformBlockSize */
12208bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInlineUniformBlocks */
12209bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
12210bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInlineUniformBlocks */
12211bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
12212bf215546Sopenharmony_ci}
12213bf215546Sopenharmony_ci
12214bf215546Sopenharmony_cistatic inline void
12215bf215546Sopenharmony_civn_encode_VkPhysicalDeviceInlineUniformBlockProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val)
12216bf215546Sopenharmony_ci{
12217bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES);
12218bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES });
12219bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial(enc, val->pNext);
12220bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial(enc, val);
12221bf215546Sopenharmony_ci}
12222bf215546Sopenharmony_ci
12223bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMaintenance3Properties chain */
12224bf215546Sopenharmony_ci
12225bf215546Sopenharmony_cistatic inline size_t
12226bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties_pnext(const void *val)
12227bf215546Sopenharmony_ci{
12228bf215546Sopenharmony_ci    /* no known/supported struct */
12229bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12230bf215546Sopenharmony_ci}
12231bf215546Sopenharmony_ci
12232bf215546Sopenharmony_cistatic inline size_t
12233bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties_self(const VkPhysicalDeviceMaintenance3Properties *val)
12234bf215546Sopenharmony_ci{
12235bf215546Sopenharmony_ci    size_t size = 0;
12236bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12237bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerSetDescriptors);
12238bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxMemoryAllocationSize);
12239bf215546Sopenharmony_ci    return size;
12240bf215546Sopenharmony_ci}
12241bf215546Sopenharmony_ci
12242bf215546Sopenharmony_cistatic inline size_t
12243bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties(const VkPhysicalDeviceMaintenance3Properties *val)
12244bf215546Sopenharmony_ci{
12245bf215546Sopenharmony_ci    size_t size = 0;
12246bf215546Sopenharmony_ci
12247bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12248bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_pnext(val->pNext);
12249bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_self(val);
12250bf215546Sopenharmony_ci
12251bf215546Sopenharmony_ci    return size;
12252bf215546Sopenharmony_ci}
12253bf215546Sopenharmony_ci
12254bf215546Sopenharmony_cistatic inline void
12255bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance3Properties_pnext(struct vn_cs_decoder *dec, const void *val)
12256bf215546Sopenharmony_ci{
12257bf215546Sopenharmony_ci    /* no known/supported struct */
12258bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12259bf215546Sopenharmony_ci        assert(false);
12260bf215546Sopenharmony_ci}
12261bf215546Sopenharmony_ci
12262bf215546Sopenharmony_cistatic inline void
12263bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance3Properties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance3Properties *val)
12264bf215546Sopenharmony_ci{
12265bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12266bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerSetDescriptors);
12267bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxMemoryAllocationSize);
12268bf215546Sopenharmony_ci}
12269bf215546Sopenharmony_ci
12270bf215546Sopenharmony_cistatic inline void
12271bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance3Properties(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance3Properties *val)
12272bf215546Sopenharmony_ci{
12273bf215546Sopenharmony_ci    VkStructureType stype;
12274bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12275bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES);
12276bf215546Sopenharmony_ci
12277bf215546Sopenharmony_ci    assert(val->sType == stype);
12278bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance3Properties_pnext(dec, val->pNext);
12279bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance3Properties_self(dec, val);
12280bf215546Sopenharmony_ci}
12281bf215546Sopenharmony_ci
12282bf215546Sopenharmony_cistatic inline size_t
12283bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties_pnext_partial(const void *val)
12284bf215546Sopenharmony_ci{
12285bf215546Sopenharmony_ci    /* no known/supported struct */
12286bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12287bf215546Sopenharmony_ci}
12288bf215546Sopenharmony_ci
12289bf215546Sopenharmony_cistatic inline size_t
12290bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties_self_partial(const VkPhysicalDeviceMaintenance3Properties *val)
12291bf215546Sopenharmony_ci{
12292bf215546Sopenharmony_ci    size_t size = 0;
12293bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12294bf215546Sopenharmony_ci    /* skip val->maxPerSetDescriptors */
12295bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationSize */
12296bf215546Sopenharmony_ci    return size;
12297bf215546Sopenharmony_ci}
12298bf215546Sopenharmony_ci
12299bf215546Sopenharmony_cistatic inline size_t
12300bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance3Properties_partial(const VkPhysicalDeviceMaintenance3Properties *val)
12301bf215546Sopenharmony_ci{
12302bf215546Sopenharmony_ci    size_t size = 0;
12303bf215546Sopenharmony_ci
12304bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12305bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_pnext_partial(val->pNext);
12306bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_self_partial(val);
12307bf215546Sopenharmony_ci
12308bf215546Sopenharmony_ci    return size;
12309bf215546Sopenharmony_ci}
12310bf215546Sopenharmony_ci
12311bf215546Sopenharmony_cistatic inline void
12312bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance3Properties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12313bf215546Sopenharmony_ci{
12314bf215546Sopenharmony_ci    /* no known/supported struct */
12315bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12316bf215546Sopenharmony_ci}
12317bf215546Sopenharmony_ci
12318bf215546Sopenharmony_cistatic inline void
12319bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance3Properties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance3Properties *val)
12320bf215546Sopenharmony_ci{
12321bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12322bf215546Sopenharmony_ci    /* skip val->maxPerSetDescriptors */
12323bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationSize */
12324bf215546Sopenharmony_ci}
12325bf215546Sopenharmony_ci
12326bf215546Sopenharmony_cistatic inline void
12327bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance3Properties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance3Properties *val)
12328bf215546Sopenharmony_ci{
12329bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES);
12330bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES });
12331bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance3Properties_pnext_partial(enc, val->pNext);
12332bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance3Properties_self_partial(enc, val);
12333bf215546Sopenharmony_ci}
12334bf215546Sopenharmony_ci
12335bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMaintenance4Properties chain */
12336bf215546Sopenharmony_ci
12337bf215546Sopenharmony_cistatic inline size_t
12338bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties_pnext(const void *val)
12339bf215546Sopenharmony_ci{
12340bf215546Sopenharmony_ci    /* no known/supported struct */
12341bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12342bf215546Sopenharmony_ci}
12343bf215546Sopenharmony_ci
12344bf215546Sopenharmony_cistatic inline size_t
12345bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties_self(const VkPhysicalDeviceMaintenance4Properties *val)
12346bf215546Sopenharmony_ci{
12347bf215546Sopenharmony_ci    size_t size = 0;
12348bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12349bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxBufferSize);
12350bf215546Sopenharmony_ci    return size;
12351bf215546Sopenharmony_ci}
12352bf215546Sopenharmony_ci
12353bf215546Sopenharmony_cistatic inline size_t
12354bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties(const VkPhysicalDeviceMaintenance4Properties *val)
12355bf215546Sopenharmony_ci{
12356bf215546Sopenharmony_ci    size_t size = 0;
12357bf215546Sopenharmony_ci
12358bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12359bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_pnext(val->pNext);
12360bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_self(val);
12361bf215546Sopenharmony_ci
12362bf215546Sopenharmony_ci    return size;
12363bf215546Sopenharmony_ci}
12364bf215546Sopenharmony_ci
12365bf215546Sopenharmony_cistatic inline void
12366bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Properties_pnext(struct vn_cs_decoder *dec, const void *val)
12367bf215546Sopenharmony_ci{
12368bf215546Sopenharmony_ci    /* no known/supported struct */
12369bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12370bf215546Sopenharmony_ci        assert(false);
12371bf215546Sopenharmony_ci}
12372bf215546Sopenharmony_ci
12373bf215546Sopenharmony_cistatic inline void
12374bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Properties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val)
12375bf215546Sopenharmony_ci{
12376bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12377bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxBufferSize);
12378bf215546Sopenharmony_ci}
12379bf215546Sopenharmony_ci
12380bf215546Sopenharmony_cistatic inline void
12381bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMaintenance4Properties(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val)
12382bf215546Sopenharmony_ci{
12383bf215546Sopenharmony_ci    VkStructureType stype;
12384bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12385bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES);
12386bf215546Sopenharmony_ci
12387bf215546Sopenharmony_ci    assert(val->sType == stype);
12388bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext(dec, val->pNext);
12389bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMaintenance4Properties_self(dec, val);
12390bf215546Sopenharmony_ci}
12391bf215546Sopenharmony_ci
12392bf215546Sopenharmony_cistatic inline size_t
12393bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties_pnext_partial(const void *val)
12394bf215546Sopenharmony_ci{
12395bf215546Sopenharmony_ci    /* no known/supported struct */
12396bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12397bf215546Sopenharmony_ci}
12398bf215546Sopenharmony_ci
12399bf215546Sopenharmony_cistatic inline size_t
12400bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties_self_partial(const VkPhysicalDeviceMaintenance4Properties *val)
12401bf215546Sopenharmony_ci{
12402bf215546Sopenharmony_ci    size_t size = 0;
12403bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12404bf215546Sopenharmony_ci    /* skip val->maxBufferSize */
12405bf215546Sopenharmony_ci    return size;
12406bf215546Sopenharmony_ci}
12407bf215546Sopenharmony_ci
12408bf215546Sopenharmony_cistatic inline size_t
12409bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMaintenance4Properties_partial(const VkPhysicalDeviceMaintenance4Properties *val)
12410bf215546Sopenharmony_ci{
12411bf215546Sopenharmony_ci    size_t size = 0;
12412bf215546Sopenharmony_ci
12413bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12414bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_pnext_partial(val->pNext);
12415bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_self_partial(val);
12416bf215546Sopenharmony_ci
12417bf215546Sopenharmony_ci    return size;
12418bf215546Sopenharmony_ci}
12419bf215546Sopenharmony_ci
12420bf215546Sopenharmony_cistatic inline void
12421bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Properties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12422bf215546Sopenharmony_ci{
12423bf215546Sopenharmony_ci    /* no known/supported struct */
12424bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12425bf215546Sopenharmony_ci}
12426bf215546Sopenharmony_ci
12427bf215546Sopenharmony_cistatic inline void
12428bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Properties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val)
12429bf215546Sopenharmony_ci{
12430bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12431bf215546Sopenharmony_ci    /* skip val->maxBufferSize */
12432bf215546Sopenharmony_ci}
12433bf215546Sopenharmony_ci
12434bf215546Sopenharmony_cistatic inline void
12435bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMaintenance4Properties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val)
12436bf215546Sopenharmony_ci{
12437bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES);
12438bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES });
12439bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext_partial(enc, val->pNext);
12440bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMaintenance4Properties_self_partial(enc, val);
12441bf215546Sopenharmony_ci}
12442bf215546Sopenharmony_ci
12443bf215546Sopenharmony_ci/* struct VkPhysicalDeviceFloatControlsProperties chain */
12444bf215546Sopenharmony_ci
12445bf215546Sopenharmony_cistatic inline size_t
12446bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties_pnext(const void *val)
12447bf215546Sopenharmony_ci{
12448bf215546Sopenharmony_ci    /* no known/supported struct */
12449bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12450bf215546Sopenharmony_ci}
12451bf215546Sopenharmony_ci
12452bf215546Sopenharmony_cistatic inline size_t
12453bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties_self(const VkPhysicalDeviceFloatControlsProperties *val)
12454bf215546Sopenharmony_ci{
12455bf215546Sopenharmony_ci    size_t size = 0;
12456bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12457bf215546Sopenharmony_ci    size += vn_sizeof_VkShaderFloatControlsIndependence(&val->denormBehaviorIndependence);
12458bf215546Sopenharmony_ci    size += vn_sizeof_VkShaderFloatControlsIndependence(&val->roundingModeIndependence);
12459bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat16);
12460bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat32);
12461bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat64);
12462bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat16);
12463bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat32);
12464bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat64);
12465bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat16);
12466bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat32);
12467bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat64);
12468bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat16);
12469bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat32);
12470bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat64);
12471bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat16);
12472bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat32);
12473bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat64);
12474bf215546Sopenharmony_ci    return size;
12475bf215546Sopenharmony_ci}
12476bf215546Sopenharmony_ci
12477bf215546Sopenharmony_cistatic inline size_t
12478bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties(const VkPhysicalDeviceFloatControlsProperties *val)
12479bf215546Sopenharmony_ci{
12480bf215546Sopenharmony_ci    size_t size = 0;
12481bf215546Sopenharmony_ci
12482bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12483bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_pnext(val->pNext);
12484bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_self(val);
12485bf215546Sopenharmony_ci
12486bf215546Sopenharmony_ci    return size;
12487bf215546Sopenharmony_ci}
12488bf215546Sopenharmony_ci
12489bf215546Sopenharmony_cistatic inline void
12490bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFloatControlsProperties_pnext(struct vn_cs_decoder *dec, const void *val)
12491bf215546Sopenharmony_ci{
12492bf215546Sopenharmony_ci    /* no known/supported struct */
12493bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12494bf215546Sopenharmony_ci        assert(false);
12495bf215546Sopenharmony_ci}
12496bf215546Sopenharmony_ci
12497bf215546Sopenharmony_cistatic inline void
12498bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFloatControlsProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceFloatControlsProperties *val)
12499bf215546Sopenharmony_ci{
12500bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12501bf215546Sopenharmony_ci    vn_decode_VkShaderFloatControlsIndependence(dec, &val->denormBehaviorIndependence);
12502bf215546Sopenharmony_ci    vn_decode_VkShaderFloatControlsIndependence(dec, &val->roundingModeIndependence);
12503bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat16);
12504bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat32);
12505bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat64);
12506bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat16);
12507bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat32);
12508bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat64);
12509bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat16);
12510bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat32);
12511bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat64);
12512bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat16);
12513bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat32);
12514bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat64);
12515bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat16);
12516bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat32);
12517bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat64);
12518bf215546Sopenharmony_ci}
12519bf215546Sopenharmony_ci
12520bf215546Sopenharmony_cistatic inline void
12521bf215546Sopenharmony_civn_decode_VkPhysicalDeviceFloatControlsProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceFloatControlsProperties *val)
12522bf215546Sopenharmony_ci{
12523bf215546Sopenharmony_ci    VkStructureType stype;
12524bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12525bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES);
12526bf215546Sopenharmony_ci
12527bf215546Sopenharmony_ci    assert(val->sType == stype);
12528bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceFloatControlsProperties_pnext(dec, val->pNext);
12529bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceFloatControlsProperties_self(dec, val);
12530bf215546Sopenharmony_ci}
12531bf215546Sopenharmony_ci
12532bf215546Sopenharmony_cistatic inline size_t
12533bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties_pnext_partial(const void *val)
12534bf215546Sopenharmony_ci{
12535bf215546Sopenharmony_ci    /* no known/supported struct */
12536bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12537bf215546Sopenharmony_ci}
12538bf215546Sopenharmony_ci
12539bf215546Sopenharmony_cistatic inline size_t
12540bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties_self_partial(const VkPhysicalDeviceFloatControlsProperties *val)
12541bf215546Sopenharmony_ci{
12542bf215546Sopenharmony_ci    size_t size = 0;
12543bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12544bf215546Sopenharmony_ci    /* skip val->denormBehaviorIndependence */
12545bf215546Sopenharmony_ci    /* skip val->roundingModeIndependence */
12546bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
12547bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
12548bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
12549bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat16 */
12550bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat32 */
12551bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat64 */
12552bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat16 */
12553bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat32 */
12554bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat64 */
12555bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat16 */
12556bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat32 */
12557bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat64 */
12558bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat16 */
12559bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat32 */
12560bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat64 */
12561bf215546Sopenharmony_ci    return size;
12562bf215546Sopenharmony_ci}
12563bf215546Sopenharmony_ci
12564bf215546Sopenharmony_cistatic inline size_t
12565bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceFloatControlsProperties_partial(const VkPhysicalDeviceFloatControlsProperties *val)
12566bf215546Sopenharmony_ci{
12567bf215546Sopenharmony_ci    size_t size = 0;
12568bf215546Sopenharmony_ci
12569bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12570bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_pnext_partial(val->pNext);
12571bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_self_partial(val);
12572bf215546Sopenharmony_ci
12573bf215546Sopenharmony_ci    return size;
12574bf215546Sopenharmony_ci}
12575bf215546Sopenharmony_ci
12576bf215546Sopenharmony_cistatic inline void
12577bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFloatControlsProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12578bf215546Sopenharmony_ci{
12579bf215546Sopenharmony_ci    /* no known/supported struct */
12580bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12581bf215546Sopenharmony_ci}
12582bf215546Sopenharmony_ci
12583bf215546Sopenharmony_cistatic inline void
12584bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFloatControlsProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceFloatControlsProperties *val)
12585bf215546Sopenharmony_ci{
12586bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12587bf215546Sopenharmony_ci    /* skip val->denormBehaviorIndependence */
12588bf215546Sopenharmony_ci    /* skip val->roundingModeIndependence */
12589bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
12590bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
12591bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
12592bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat16 */
12593bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat32 */
12594bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat64 */
12595bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat16 */
12596bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat32 */
12597bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat64 */
12598bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat16 */
12599bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat32 */
12600bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat64 */
12601bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat16 */
12602bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat32 */
12603bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat64 */
12604bf215546Sopenharmony_ci}
12605bf215546Sopenharmony_ci
12606bf215546Sopenharmony_cistatic inline void
12607bf215546Sopenharmony_civn_encode_VkPhysicalDeviceFloatControlsProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceFloatControlsProperties *val)
12608bf215546Sopenharmony_ci{
12609bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES);
12610bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES });
12611bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFloatControlsProperties_pnext_partial(enc, val->pNext);
12612bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceFloatControlsProperties_self_partial(enc, val);
12613bf215546Sopenharmony_ci}
12614bf215546Sopenharmony_ci
12615bf215546Sopenharmony_ci/* struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT chain */
12616bf215546Sopenharmony_ci
12617bf215546Sopenharmony_cistatic inline size_t
12618bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(const void *val)
12619bf215546Sopenharmony_ci{
12620bf215546Sopenharmony_ci    /* no known/supported struct */
12621bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12622bf215546Sopenharmony_ci}
12623bf215546Sopenharmony_ci
12624bf215546Sopenharmony_cistatic inline size_t
12625bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12626bf215546Sopenharmony_ci{
12627bf215546Sopenharmony_ci    size_t size = 0;
12628bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12629bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->primitiveOverestimationSize);
12630bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->maxExtraPrimitiveOverestimationSize);
12631bf215546Sopenharmony_ci    size += vn_sizeof_float(&val->extraPrimitiveOverestimationSizeGranularity);
12632bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->primitiveUnderestimation);
12633bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->conservativePointAndLineRasterization);
12634bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->degenerateTrianglesRasterized);
12635bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->degenerateLinesRasterized);
12636bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->fullyCoveredFragmentShaderInputVariable);
12637bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->conservativeRasterizationPostDepthCoverage);
12638bf215546Sopenharmony_ci    return size;
12639bf215546Sopenharmony_ci}
12640bf215546Sopenharmony_ci
12641bf215546Sopenharmony_cistatic inline size_t
12642bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12643bf215546Sopenharmony_ci{
12644bf215546Sopenharmony_ci    size_t size = 0;
12645bf215546Sopenharmony_ci
12646bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12647bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(val->pNext);
12648bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(val);
12649bf215546Sopenharmony_ci
12650bf215546Sopenharmony_ci    return size;
12651bf215546Sopenharmony_ci}
12652bf215546Sopenharmony_ci
12653bf215546Sopenharmony_cistatic inline void
12654bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
12655bf215546Sopenharmony_ci{
12656bf215546Sopenharmony_ci    /* no known/supported struct */
12657bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12658bf215546Sopenharmony_ci        assert(false);
12659bf215546Sopenharmony_ci}
12660bf215546Sopenharmony_ci
12661bf215546Sopenharmony_cistatic inline void
12662bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12663bf215546Sopenharmony_ci{
12664bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12665bf215546Sopenharmony_ci    vn_decode_float(dec, &val->primitiveOverestimationSize);
12666bf215546Sopenharmony_ci    vn_decode_float(dec, &val->maxExtraPrimitiveOverestimationSize);
12667bf215546Sopenharmony_ci    vn_decode_float(dec, &val->extraPrimitiveOverestimationSizeGranularity);
12668bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->primitiveUnderestimation);
12669bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->conservativePointAndLineRasterization);
12670bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->degenerateTrianglesRasterized);
12671bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->degenerateLinesRasterized);
12672bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->fullyCoveredFragmentShaderInputVariable);
12673bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->conservativeRasterizationPostDepthCoverage);
12674bf215546Sopenharmony_ci}
12675bf215546Sopenharmony_ci
12676bf215546Sopenharmony_cistatic inline void
12677bf215546Sopenharmony_civn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12678bf215546Sopenharmony_ci{
12679bf215546Sopenharmony_ci    VkStructureType stype;
12680bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12681bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT);
12682bf215546Sopenharmony_ci
12683bf215546Sopenharmony_ci    assert(val->sType == stype);
12684bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext(dec, val->pNext);
12685bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(dec, val);
12686bf215546Sopenharmony_ci}
12687bf215546Sopenharmony_ci
12688bf215546Sopenharmony_cistatic inline size_t
12689bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial(const void *val)
12690bf215546Sopenharmony_ci{
12691bf215546Sopenharmony_ci    /* no known/supported struct */
12692bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12693bf215546Sopenharmony_ci}
12694bf215546Sopenharmony_ci
12695bf215546Sopenharmony_cistatic inline size_t
12696bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12697bf215546Sopenharmony_ci{
12698bf215546Sopenharmony_ci    size_t size = 0;
12699bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12700bf215546Sopenharmony_ci    /* skip val->primitiveOverestimationSize */
12701bf215546Sopenharmony_ci    /* skip val->maxExtraPrimitiveOverestimationSize */
12702bf215546Sopenharmony_ci    /* skip val->extraPrimitiveOverestimationSizeGranularity */
12703bf215546Sopenharmony_ci    /* skip val->primitiveUnderestimation */
12704bf215546Sopenharmony_ci    /* skip val->conservativePointAndLineRasterization */
12705bf215546Sopenharmony_ci    /* skip val->degenerateTrianglesRasterized */
12706bf215546Sopenharmony_ci    /* skip val->degenerateLinesRasterized */
12707bf215546Sopenharmony_ci    /* skip val->fullyCoveredFragmentShaderInputVariable */
12708bf215546Sopenharmony_ci    /* skip val->conservativeRasterizationPostDepthCoverage */
12709bf215546Sopenharmony_ci    return size;
12710bf215546Sopenharmony_ci}
12711bf215546Sopenharmony_ci
12712bf215546Sopenharmony_cistatic inline size_t
12713bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_partial(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12714bf215546Sopenharmony_ci{
12715bf215546Sopenharmony_ci    size_t size = 0;
12716bf215546Sopenharmony_ci
12717bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12718bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial(val->pNext);
12719bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial(val);
12720bf215546Sopenharmony_ci
12721bf215546Sopenharmony_ci    return size;
12722bf215546Sopenharmony_ci}
12723bf215546Sopenharmony_ci
12724bf215546Sopenharmony_cistatic inline void
12725bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12726bf215546Sopenharmony_ci{
12727bf215546Sopenharmony_ci    /* no known/supported struct */
12728bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12729bf215546Sopenharmony_ci}
12730bf215546Sopenharmony_ci
12731bf215546Sopenharmony_cistatic inline void
12732bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12733bf215546Sopenharmony_ci{
12734bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12735bf215546Sopenharmony_ci    /* skip val->primitiveOverestimationSize */
12736bf215546Sopenharmony_ci    /* skip val->maxExtraPrimitiveOverestimationSize */
12737bf215546Sopenharmony_ci    /* skip val->extraPrimitiveOverestimationSizeGranularity */
12738bf215546Sopenharmony_ci    /* skip val->primitiveUnderestimation */
12739bf215546Sopenharmony_ci    /* skip val->conservativePointAndLineRasterization */
12740bf215546Sopenharmony_ci    /* skip val->degenerateTrianglesRasterized */
12741bf215546Sopenharmony_ci    /* skip val->degenerateLinesRasterized */
12742bf215546Sopenharmony_ci    /* skip val->fullyCoveredFragmentShaderInputVariable */
12743bf215546Sopenharmony_ci    /* skip val->conservativeRasterizationPostDepthCoverage */
12744bf215546Sopenharmony_ci}
12745bf215546Sopenharmony_ci
12746bf215546Sopenharmony_cistatic inline void
12747bf215546Sopenharmony_civn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *val)
12748bf215546Sopenharmony_ci{
12749bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT);
12750bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT });
12751bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_pnext_partial(enc, val->pNext);
12752bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial(enc, val);
12753bf215546Sopenharmony_ci}
12754bf215546Sopenharmony_ci
12755bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDescriptorIndexingProperties chain */
12756bf215546Sopenharmony_ci
12757bf215546Sopenharmony_cistatic inline size_t
12758bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_pnext(const void *val)
12759bf215546Sopenharmony_ci{
12760bf215546Sopenharmony_ci    /* no known/supported struct */
12761bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12762bf215546Sopenharmony_ci}
12763bf215546Sopenharmony_ci
12764bf215546Sopenharmony_cistatic inline size_t
12765bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self(const VkPhysicalDeviceDescriptorIndexingProperties *val)
12766bf215546Sopenharmony_ci{
12767bf215546Sopenharmony_ci    size_t size = 0;
12768bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12769bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxUpdateAfterBindDescriptorsInAllPools);
12770bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformBufferArrayNonUniformIndexingNative);
12771bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSampledImageArrayNonUniformIndexingNative);
12772bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageBufferArrayNonUniformIndexingNative);
12773bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageArrayNonUniformIndexingNative);
12774bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayNonUniformIndexingNative);
12775bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustBufferAccessUpdateAfterBind);
12776bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->quadDivergentImplicitLod);
12777bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindSamplers);
12778bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
12779bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
12780bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindSampledImages);
12781bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindStorageImages);
12782bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
12783bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageUpdateAfterBindResources);
12784bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindSamplers);
12785bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindUniformBuffers);
12786bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
12787bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageBuffers);
12788bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
12789bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindSampledImages);
12790bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageImages);
12791bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindInputAttachments);
12792bf215546Sopenharmony_ci    return size;
12793bf215546Sopenharmony_ci}
12794bf215546Sopenharmony_ci
12795bf215546Sopenharmony_cistatic inline size_t
12796bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties(const VkPhysicalDeviceDescriptorIndexingProperties *val)
12797bf215546Sopenharmony_ci{
12798bf215546Sopenharmony_ci    size_t size = 0;
12799bf215546Sopenharmony_ci
12800bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12801bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_pnext(val->pNext);
12802bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self(val);
12803bf215546Sopenharmony_ci
12804bf215546Sopenharmony_ci    return size;
12805bf215546Sopenharmony_ci}
12806bf215546Sopenharmony_ci
12807bf215546Sopenharmony_cistatic inline void
12808bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingProperties_pnext(struct vn_cs_decoder *dec, const void *val)
12809bf215546Sopenharmony_ci{
12810bf215546Sopenharmony_ci    /* no known/supported struct */
12811bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12812bf215546Sopenharmony_ci        assert(false);
12813bf215546Sopenharmony_ci}
12814bf215546Sopenharmony_ci
12815bf215546Sopenharmony_cistatic inline void
12816bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingProperties *val)
12817bf215546Sopenharmony_ci{
12818bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12819bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxUpdateAfterBindDescriptorsInAllPools);
12820bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexingNative);
12821bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexingNative);
12822bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexingNative);
12823bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexingNative);
12824bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexingNative);
12825bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustBufferAccessUpdateAfterBind);
12826bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->quadDivergentImplicitLod);
12827bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindSamplers);
12828bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
12829bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
12830bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindSampledImages);
12831bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindStorageImages);
12832bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
12833bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageUpdateAfterBindResources);
12834bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindSamplers);
12835bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindUniformBuffers);
12836bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
12837bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageBuffers);
12838bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
12839bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindSampledImages);
12840bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageImages);
12841bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindInputAttachments);
12842bf215546Sopenharmony_ci}
12843bf215546Sopenharmony_ci
12844bf215546Sopenharmony_cistatic inline void
12845bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDescriptorIndexingProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceDescriptorIndexingProperties *val)
12846bf215546Sopenharmony_ci{
12847bf215546Sopenharmony_ci    VkStructureType stype;
12848bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
12849bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES);
12850bf215546Sopenharmony_ci
12851bf215546Sopenharmony_ci    assert(val->sType == stype);
12852bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_pnext(dec, val->pNext);
12853bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self(dec, val);
12854bf215546Sopenharmony_ci}
12855bf215546Sopenharmony_ci
12856bf215546Sopenharmony_cistatic inline size_t
12857bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial(const void *val)
12858bf215546Sopenharmony_ci{
12859bf215546Sopenharmony_ci    /* no known/supported struct */
12860bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12861bf215546Sopenharmony_ci}
12862bf215546Sopenharmony_ci
12863bf215546Sopenharmony_cistatic inline size_t
12864bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self_partial(const VkPhysicalDeviceDescriptorIndexingProperties *val)
12865bf215546Sopenharmony_ci{
12866bf215546Sopenharmony_ci    size_t size = 0;
12867bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12868bf215546Sopenharmony_ci    /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
12869bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
12870bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
12871bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
12872bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
12873bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
12874bf215546Sopenharmony_ci    /* skip val->robustBufferAccessUpdateAfterBind */
12875bf215546Sopenharmony_ci    /* skip val->quadDivergentImplicitLod */
12876bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
12877bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
12878bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
12879bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
12880bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
12881bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
12882bf215546Sopenharmony_ci    /* skip val->maxPerStageUpdateAfterBindResources */
12883bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
12884bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
12885bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
12886bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
12887bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
12888bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
12889bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
12890bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
12891bf215546Sopenharmony_ci    return size;
12892bf215546Sopenharmony_ci}
12893bf215546Sopenharmony_ci
12894bf215546Sopenharmony_cistatic inline size_t
12895bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_partial(const VkPhysicalDeviceDescriptorIndexingProperties *val)
12896bf215546Sopenharmony_ci{
12897bf215546Sopenharmony_ci    size_t size = 0;
12898bf215546Sopenharmony_ci
12899bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12900bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial(val->pNext);
12901bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self_partial(val);
12902bf215546Sopenharmony_ci
12903bf215546Sopenharmony_ci    return size;
12904bf215546Sopenharmony_ci}
12905bf215546Sopenharmony_ci
12906bf215546Sopenharmony_cistatic inline void
12907bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
12908bf215546Sopenharmony_ci{
12909bf215546Sopenharmony_ci    /* no known/supported struct */
12910bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
12911bf215546Sopenharmony_ci}
12912bf215546Sopenharmony_ci
12913bf215546Sopenharmony_cistatic inline void
12914bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingProperties *val)
12915bf215546Sopenharmony_ci{
12916bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12917bf215546Sopenharmony_ci    /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
12918bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
12919bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
12920bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
12921bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
12922bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
12923bf215546Sopenharmony_ci    /* skip val->robustBufferAccessUpdateAfterBind */
12924bf215546Sopenharmony_ci    /* skip val->quadDivergentImplicitLod */
12925bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
12926bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
12927bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
12928bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
12929bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
12930bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
12931bf215546Sopenharmony_ci    /* skip val->maxPerStageUpdateAfterBindResources */
12932bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
12933bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
12934bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
12935bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
12936bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
12937bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
12938bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
12939bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
12940bf215546Sopenharmony_ci}
12941bf215546Sopenharmony_ci
12942bf215546Sopenharmony_cistatic inline void
12943bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDescriptorIndexingProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingProperties *val)
12944bf215546Sopenharmony_ci{
12945bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES);
12946bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES });
12947bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_pnext_partial(enc, val->pNext);
12948bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial(enc, val);
12949bf215546Sopenharmony_ci}
12950bf215546Sopenharmony_ci
12951bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTimelineSemaphoreProperties chain */
12952bf215546Sopenharmony_ci
12953bf215546Sopenharmony_cistatic inline size_t
12954bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(const void *val)
12955bf215546Sopenharmony_ci{
12956bf215546Sopenharmony_ci    /* no known/supported struct */
12957bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
12958bf215546Sopenharmony_ci}
12959bf215546Sopenharmony_ci
12960bf215546Sopenharmony_cistatic inline size_t
12961bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self(const VkPhysicalDeviceTimelineSemaphoreProperties *val)
12962bf215546Sopenharmony_ci{
12963bf215546Sopenharmony_ci    size_t size = 0;
12964bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12965bf215546Sopenharmony_ci    size += vn_sizeof_uint64_t(&val->maxTimelineSemaphoreValueDifference);
12966bf215546Sopenharmony_ci    return size;
12967bf215546Sopenharmony_ci}
12968bf215546Sopenharmony_ci
12969bf215546Sopenharmony_cistatic inline size_t
12970bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties(const VkPhysicalDeviceTimelineSemaphoreProperties *val)
12971bf215546Sopenharmony_ci{
12972bf215546Sopenharmony_ci    size_t size = 0;
12973bf215546Sopenharmony_ci
12974bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
12975bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(val->pNext);
12976bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self(val);
12977bf215546Sopenharmony_ci
12978bf215546Sopenharmony_ci    return size;
12979bf215546Sopenharmony_ci}
12980bf215546Sopenharmony_ci
12981bf215546Sopenharmony_cistatic inline void
12982bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(struct vn_cs_decoder *dec, const void *val)
12983bf215546Sopenharmony_ci{
12984bf215546Sopenharmony_ci    /* no known/supported struct */
12985bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
12986bf215546Sopenharmony_ci        assert(false);
12987bf215546Sopenharmony_ci}
12988bf215546Sopenharmony_ci
12989bf215546Sopenharmony_cistatic inline void
12990bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreProperties *val)
12991bf215546Sopenharmony_ci{
12992bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
12993bf215546Sopenharmony_ci    vn_decode_uint64_t(dec, &val->maxTimelineSemaphoreValueDifference);
12994bf215546Sopenharmony_ci}
12995bf215546Sopenharmony_ci
12996bf215546Sopenharmony_cistatic inline void
12997bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTimelineSemaphoreProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceTimelineSemaphoreProperties *val)
12998bf215546Sopenharmony_ci{
12999bf215546Sopenharmony_ci    VkStructureType stype;
13000bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13001bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES);
13002bf215546Sopenharmony_ci
13003bf215546Sopenharmony_ci    assert(val->sType == stype);
13004bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext(dec, val->pNext);
13005bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self(dec, val);
13006bf215546Sopenharmony_ci}
13007bf215546Sopenharmony_ci
13008bf215546Sopenharmony_cistatic inline size_t
13009bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial(const void *val)
13010bf215546Sopenharmony_ci{
13011bf215546Sopenharmony_ci    /* no known/supported struct */
13012bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13013bf215546Sopenharmony_ci}
13014bf215546Sopenharmony_ci
13015bf215546Sopenharmony_cistatic inline size_t
13016bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial(const VkPhysicalDeviceTimelineSemaphoreProperties *val)
13017bf215546Sopenharmony_ci{
13018bf215546Sopenharmony_ci    size_t size = 0;
13019bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13020bf215546Sopenharmony_ci    /* skip val->maxTimelineSemaphoreValueDifference */
13021bf215546Sopenharmony_ci    return size;
13022bf215546Sopenharmony_ci}
13023bf215546Sopenharmony_ci
13024bf215546Sopenharmony_cistatic inline size_t
13025bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_partial(const VkPhysicalDeviceTimelineSemaphoreProperties *val)
13026bf215546Sopenharmony_ci{
13027bf215546Sopenharmony_ci    size_t size = 0;
13028bf215546Sopenharmony_ci
13029bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13030bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial(val->pNext);
13031bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial(val);
13032bf215546Sopenharmony_ci
13033bf215546Sopenharmony_ci    return size;
13034bf215546Sopenharmony_ci}
13035bf215546Sopenharmony_ci
13036bf215546Sopenharmony_cistatic inline void
13037bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13038bf215546Sopenharmony_ci{
13039bf215546Sopenharmony_ci    /* no known/supported struct */
13040bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13041bf215546Sopenharmony_ci}
13042bf215546Sopenharmony_ci
13043bf215546Sopenharmony_cistatic inline void
13044bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreProperties *val)
13045bf215546Sopenharmony_ci{
13046bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13047bf215546Sopenharmony_ci    /* skip val->maxTimelineSemaphoreValueDifference */
13048bf215546Sopenharmony_ci}
13049bf215546Sopenharmony_ci
13050bf215546Sopenharmony_cistatic inline void
13051bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTimelineSemaphoreProperties *val)
13052bf215546Sopenharmony_ci{
13053bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES);
13054bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES });
13055bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_pnext_partial(enc, val->pNext);
13056bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial(enc, val);
13057bf215546Sopenharmony_ci}
13058bf215546Sopenharmony_ci
13059bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT chain */
13060bf215546Sopenharmony_ci
13061bf215546Sopenharmony_cistatic inline size_t
13062bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(const void *val)
13063bf215546Sopenharmony_ci{
13064bf215546Sopenharmony_ci    /* no known/supported struct */
13065bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13066bf215546Sopenharmony_ci}
13067bf215546Sopenharmony_ci
13068bf215546Sopenharmony_cistatic inline size_t
13069bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13070bf215546Sopenharmony_ci{
13071bf215546Sopenharmony_ci    size_t size = 0;
13072bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13073bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxVertexAttribDivisor);
13074bf215546Sopenharmony_ci    return size;
13075bf215546Sopenharmony_ci}
13076bf215546Sopenharmony_ci
13077bf215546Sopenharmony_cistatic inline size_t
13078bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13079bf215546Sopenharmony_ci{
13080bf215546Sopenharmony_ci    size_t size = 0;
13081bf215546Sopenharmony_ci
13082bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13083bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(val->pNext);
13084bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(val);
13085bf215546Sopenharmony_ci
13086bf215546Sopenharmony_ci    return size;
13087bf215546Sopenharmony_ci}
13088bf215546Sopenharmony_ci
13089bf215546Sopenharmony_cistatic inline void
13090bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
13091bf215546Sopenharmony_ci{
13092bf215546Sopenharmony_ci    /* no known/supported struct */
13093bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13094bf215546Sopenharmony_ci        assert(false);
13095bf215546Sopenharmony_ci}
13096bf215546Sopenharmony_ci
13097bf215546Sopenharmony_cistatic inline void
13098bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13099bf215546Sopenharmony_ci{
13100bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13101bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxVertexAttribDivisor);
13102bf215546Sopenharmony_ci}
13103bf215546Sopenharmony_ci
13104bf215546Sopenharmony_cistatic inline void
13105bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13106bf215546Sopenharmony_ci{
13107bf215546Sopenharmony_ci    VkStructureType stype;
13108bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13109bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT);
13110bf215546Sopenharmony_ci
13111bf215546Sopenharmony_ci    assert(val->sType == stype);
13112bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext(dec, val->pNext);
13113bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(dec, val);
13114bf215546Sopenharmony_ci}
13115bf215546Sopenharmony_ci
13116bf215546Sopenharmony_cistatic inline size_t
13117bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial(const void *val)
13118bf215546Sopenharmony_ci{
13119bf215546Sopenharmony_ci    /* no known/supported struct */
13120bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13121bf215546Sopenharmony_ci}
13122bf215546Sopenharmony_ci
13123bf215546Sopenharmony_cistatic inline size_t
13124bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13125bf215546Sopenharmony_ci{
13126bf215546Sopenharmony_ci    size_t size = 0;
13127bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13128bf215546Sopenharmony_ci    /* skip val->maxVertexAttribDivisor */
13129bf215546Sopenharmony_ci    return size;
13130bf215546Sopenharmony_ci}
13131bf215546Sopenharmony_ci
13132bf215546Sopenharmony_cistatic inline size_t
13133bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_partial(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13134bf215546Sopenharmony_ci{
13135bf215546Sopenharmony_ci    size_t size = 0;
13136bf215546Sopenharmony_ci
13137bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13138bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial(val->pNext);
13139bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial(val);
13140bf215546Sopenharmony_ci
13141bf215546Sopenharmony_ci    return size;
13142bf215546Sopenharmony_ci}
13143bf215546Sopenharmony_ci
13144bf215546Sopenharmony_cistatic inline void
13145bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13146bf215546Sopenharmony_ci{
13147bf215546Sopenharmony_ci    /* no known/supported struct */
13148bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13149bf215546Sopenharmony_ci}
13150bf215546Sopenharmony_ci
13151bf215546Sopenharmony_cistatic inline void
13152bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13153bf215546Sopenharmony_ci{
13154bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13155bf215546Sopenharmony_ci    /* skip val->maxVertexAttribDivisor */
13156bf215546Sopenharmony_ci}
13157bf215546Sopenharmony_ci
13158bf215546Sopenharmony_cistatic inline void
13159bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *val)
13160bf215546Sopenharmony_ci{
13161bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT);
13162bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT });
13163bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_pnext_partial(enc, val->pNext);
13164bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial(enc, val);
13165bf215546Sopenharmony_ci}
13166bf215546Sopenharmony_ci
13167bf215546Sopenharmony_ci/* struct VkPhysicalDeviceDepthStencilResolveProperties chain */
13168bf215546Sopenharmony_ci
13169bf215546Sopenharmony_cistatic inline size_t
13170bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_pnext(const void *val)
13171bf215546Sopenharmony_ci{
13172bf215546Sopenharmony_ci    /* no known/supported struct */
13173bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13174bf215546Sopenharmony_ci}
13175bf215546Sopenharmony_ci
13176bf215546Sopenharmony_cistatic inline size_t
13177bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self(const VkPhysicalDeviceDepthStencilResolveProperties *val)
13178bf215546Sopenharmony_ci{
13179bf215546Sopenharmony_ci    size_t size = 0;
13180bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13181bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedDepthResolveModes);
13182bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedStencilResolveModes);
13183bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->independentResolveNone);
13184bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->independentResolve);
13185bf215546Sopenharmony_ci    return size;
13186bf215546Sopenharmony_ci}
13187bf215546Sopenharmony_ci
13188bf215546Sopenharmony_cistatic inline size_t
13189bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties(const VkPhysicalDeviceDepthStencilResolveProperties *val)
13190bf215546Sopenharmony_ci{
13191bf215546Sopenharmony_ci    size_t size = 0;
13192bf215546Sopenharmony_ci
13193bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13194bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_pnext(val->pNext);
13195bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self(val);
13196bf215546Sopenharmony_ci
13197bf215546Sopenharmony_ci    return size;
13198bf215546Sopenharmony_ci}
13199bf215546Sopenharmony_ci
13200bf215546Sopenharmony_cistatic inline void
13201bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthStencilResolveProperties_pnext(struct vn_cs_decoder *dec, const void *val)
13202bf215546Sopenharmony_ci{
13203bf215546Sopenharmony_ci    /* no known/supported struct */
13204bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13205bf215546Sopenharmony_ci        assert(false);
13206bf215546Sopenharmony_ci}
13207bf215546Sopenharmony_ci
13208bf215546Sopenharmony_cistatic inline void
13209bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthStencilResolveProperties *val)
13210bf215546Sopenharmony_ci{
13211bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13212bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedDepthResolveModes);
13213bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedStencilResolveModes);
13214bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->independentResolveNone);
13215bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->independentResolve);
13216bf215546Sopenharmony_ci}
13217bf215546Sopenharmony_ci
13218bf215546Sopenharmony_cistatic inline void
13219bf215546Sopenharmony_civn_decode_VkPhysicalDeviceDepthStencilResolveProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthStencilResolveProperties *val)
13220bf215546Sopenharmony_ci{
13221bf215546Sopenharmony_ci    VkStructureType stype;
13222bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13223bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES);
13224bf215546Sopenharmony_ci
13225bf215546Sopenharmony_ci    assert(val->sType == stype);
13226bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_pnext(dec, val->pNext);
13227bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self(dec, val);
13228bf215546Sopenharmony_ci}
13229bf215546Sopenharmony_ci
13230bf215546Sopenharmony_cistatic inline size_t
13231bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial(const void *val)
13232bf215546Sopenharmony_ci{
13233bf215546Sopenharmony_ci    /* no known/supported struct */
13234bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13235bf215546Sopenharmony_ci}
13236bf215546Sopenharmony_ci
13237bf215546Sopenharmony_cistatic inline size_t
13238bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self_partial(const VkPhysicalDeviceDepthStencilResolveProperties *val)
13239bf215546Sopenharmony_ci{
13240bf215546Sopenharmony_ci    size_t size = 0;
13241bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13242bf215546Sopenharmony_ci    /* skip val->supportedDepthResolveModes */
13243bf215546Sopenharmony_ci    /* skip val->supportedStencilResolveModes */
13244bf215546Sopenharmony_ci    /* skip val->independentResolveNone */
13245bf215546Sopenharmony_ci    /* skip val->independentResolve */
13246bf215546Sopenharmony_ci    return size;
13247bf215546Sopenharmony_ci}
13248bf215546Sopenharmony_ci
13249bf215546Sopenharmony_cistatic inline size_t
13250bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_partial(const VkPhysicalDeviceDepthStencilResolveProperties *val)
13251bf215546Sopenharmony_ci{
13252bf215546Sopenharmony_ci    size_t size = 0;
13253bf215546Sopenharmony_ci
13254bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13255bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial(val->pNext);
13256bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self_partial(val);
13257bf215546Sopenharmony_ci
13258bf215546Sopenharmony_ci    return size;
13259bf215546Sopenharmony_ci}
13260bf215546Sopenharmony_ci
13261bf215546Sopenharmony_cistatic inline void
13262bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13263bf215546Sopenharmony_ci{
13264bf215546Sopenharmony_ci    /* no known/supported struct */
13265bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13266bf215546Sopenharmony_ci}
13267bf215546Sopenharmony_ci
13268bf215546Sopenharmony_cistatic inline void
13269bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthStencilResolveProperties *val)
13270bf215546Sopenharmony_ci{
13271bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13272bf215546Sopenharmony_ci    /* skip val->supportedDepthResolveModes */
13273bf215546Sopenharmony_ci    /* skip val->supportedStencilResolveModes */
13274bf215546Sopenharmony_ci    /* skip val->independentResolveNone */
13275bf215546Sopenharmony_ci    /* skip val->independentResolve */
13276bf215546Sopenharmony_ci}
13277bf215546Sopenharmony_ci
13278bf215546Sopenharmony_cistatic inline void
13279bf215546Sopenharmony_civn_encode_VkPhysicalDeviceDepthStencilResolveProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthStencilResolveProperties *val)
13280bf215546Sopenharmony_ci{
13281bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES);
13282bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES });
13283bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_pnext_partial(enc, val->pNext);
13284bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial(enc, val);
13285bf215546Sopenharmony_ci}
13286bf215546Sopenharmony_ci
13287bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTransformFeedbackPropertiesEXT chain */
13288bf215546Sopenharmony_ci
13289bf215546Sopenharmony_cistatic inline size_t
13290bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(const void *val)
13291bf215546Sopenharmony_ci{
13292bf215546Sopenharmony_ci    /* no known/supported struct */
13293bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13294bf215546Sopenharmony_ci}
13295bf215546Sopenharmony_ci
13296bf215546Sopenharmony_cistatic inline size_t
13297bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13298bf215546Sopenharmony_ci{
13299bf215546Sopenharmony_ci    size_t size = 0;
13300bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13301bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTransformFeedbackStreams);
13302bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTransformFeedbackBuffers);
13303bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxTransformFeedbackBufferSize);
13304bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTransformFeedbackStreamDataSize);
13305bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTransformFeedbackBufferDataSize);
13306bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxTransformFeedbackBufferDataStride);
13307bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackQueries);
13308bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackStreamsLinesTriangles);
13309bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackRasterizationStreamSelect);
13310bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackDraw);
13311bf215546Sopenharmony_ci    return size;
13312bf215546Sopenharmony_ci}
13313bf215546Sopenharmony_ci
13314bf215546Sopenharmony_cistatic inline size_t
13315bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT(const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13316bf215546Sopenharmony_ci{
13317bf215546Sopenharmony_ci    size_t size = 0;
13318bf215546Sopenharmony_ci
13319bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13320bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(val->pNext);
13321bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(val);
13322bf215546Sopenharmony_ci
13323bf215546Sopenharmony_ci    return size;
13324bf215546Sopenharmony_ci}
13325bf215546Sopenharmony_ci
13326bf215546Sopenharmony_cistatic inline void
13327bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
13328bf215546Sopenharmony_ci{
13329bf215546Sopenharmony_ci    /* no known/supported struct */
13330bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13331bf215546Sopenharmony_ci        assert(false);
13332bf215546Sopenharmony_ci}
13333bf215546Sopenharmony_ci
13334bf215546Sopenharmony_cistatic inline void
13335bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13336bf215546Sopenharmony_ci{
13337bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13338bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTransformFeedbackStreams);
13339bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTransformFeedbackBuffers);
13340bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxTransformFeedbackBufferSize);
13341bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTransformFeedbackStreamDataSize);
13342bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTransformFeedbackBufferDataSize);
13343bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxTransformFeedbackBufferDataStride);
13344bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackQueries);
13345bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackStreamsLinesTriangles);
13346bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackRasterizationStreamSelect);
13347bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackDraw);
13348bf215546Sopenharmony_ci}
13349bf215546Sopenharmony_ci
13350bf215546Sopenharmony_cistatic inline void
13351bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13352bf215546Sopenharmony_ci{
13353bf215546Sopenharmony_ci    VkStructureType stype;
13354bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13355bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT);
13356bf215546Sopenharmony_ci
13357bf215546Sopenharmony_ci    assert(val->sType == stype);
13358bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext(dec, val->pNext);
13359bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(dec, val);
13360bf215546Sopenharmony_ci}
13361bf215546Sopenharmony_ci
13362bf215546Sopenharmony_cistatic inline size_t
13363bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial(const void *val)
13364bf215546Sopenharmony_ci{
13365bf215546Sopenharmony_ci    /* no known/supported struct */
13366bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13367bf215546Sopenharmony_ci}
13368bf215546Sopenharmony_ci
13369bf215546Sopenharmony_cistatic inline size_t
13370bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial(const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13371bf215546Sopenharmony_ci{
13372bf215546Sopenharmony_ci    size_t size = 0;
13373bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13374bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackStreams */
13375bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBuffers */
13376bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferSize */
13377bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackStreamDataSize */
13378bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferDataSize */
13379bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferDataStride */
13380bf215546Sopenharmony_ci    /* skip val->transformFeedbackQueries */
13381bf215546Sopenharmony_ci    /* skip val->transformFeedbackStreamsLinesTriangles */
13382bf215546Sopenharmony_ci    /* skip val->transformFeedbackRasterizationStreamSelect */
13383bf215546Sopenharmony_ci    /* skip val->transformFeedbackDraw */
13384bf215546Sopenharmony_ci    return size;
13385bf215546Sopenharmony_ci}
13386bf215546Sopenharmony_ci
13387bf215546Sopenharmony_cistatic inline size_t
13388bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_partial(const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13389bf215546Sopenharmony_ci{
13390bf215546Sopenharmony_ci    size_t size = 0;
13391bf215546Sopenharmony_ci
13392bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13393bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial(val->pNext);
13394bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial(val);
13395bf215546Sopenharmony_ci
13396bf215546Sopenharmony_ci    return size;
13397bf215546Sopenharmony_ci}
13398bf215546Sopenharmony_ci
13399bf215546Sopenharmony_cistatic inline void
13400bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13401bf215546Sopenharmony_ci{
13402bf215546Sopenharmony_ci    /* no known/supported struct */
13403bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13404bf215546Sopenharmony_ci}
13405bf215546Sopenharmony_ci
13406bf215546Sopenharmony_cistatic inline void
13407bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13408bf215546Sopenharmony_ci{
13409bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13410bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackStreams */
13411bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBuffers */
13412bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferSize */
13413bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackStreamDataSize */
13414bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferDataSize */
13415bf215546Sopenharmony_ci    /* skip val->maxTransformFeedbackBufferDataStride */
13416bf215546Sopenharmony_ci    /* skip val->transformFeedbackQueries */
13417bf215546Sopenharmony_ci    /* skip val->transformFeedbackStreamsLinesTriangles */
13418bf215546Sopenharmony_ci    /* skip val->transformFeedbackRasterizationStreamSelect */
13419bf215546Sopenharmony_ci    /* skip val->transformFeedbackDraw */
13420bf215546Sopenharmony_ci}
13421bf215546Sopenharmony_ci
13422bf215546Sopenharmony_cistatic inline void
13423bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTransformFeedbackPropertiesEXT *val)
13424bf215546Sopenharmony_ci{
13425bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT);
13426bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT });
13427bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_pnext_partial(enc, val->pNext);
13428bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial(enc, val);
13429bf215546Sopenharmony_ci}
13430bf215546Sopenharmony_ci
13431bf215546Sopenharmony_ci/* struct VkPhysicalDeviceTexelBufferAlignmentProperties chain */
13432bf215546Sopenharmony_ci
13433bf215546Sopenharmony_cistatic inline size_t
13434bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(const void *val)
13435bf215546Sopenharmony_ci{
13436bf215546Sopenharmony_ci    /* no known/supported struct */
13437bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13438bf215546Sopenharmony_ci}
13439bf215546Sopenharmony_ci
13440bf215546Sopenharmony_cistatic inline size_t
13441bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self(const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13442bf215546Sopenharmony_ci{
13443bf215546Sopenharmony_ci    size_t size = 0;
13444bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13445bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->storageTexelBufferOffsetAlignmentBytes);
13446bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageTexelBufferOffsetSingleTexelAlignment);
13447bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->uniformTexelBufferOffsetAlignmentBytes);
13448bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformTexelBufferOffsetSingleTexelAlignment);
13449bf215546Sopenharmony_ci    return size;
13450bf215546Sopenharmony_ci}
13451bf215546Sopenharmony_ci
13452bf215546Sopenharmony_cistatic inline size_t
13453bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties(const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13454bf215546Sopenharmony_ci{
13455bf215546Sopenharmony_ci    size_t size = 0;
13456bf215546Sopenharmony_ci
13457bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13458bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(val->pNext);
13459bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self(val);
13460bf215546Sopenharmony_ci
13461bf215546Sopenharmony_ci    return size;
13462bf215546Sopenharmony_ci}
13463bf215546Sopenharmony_ci
13464bf215546Sopenharmony_cistatic inline void
13465bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(struct vn_cs_decoder *dec, const void *val)
13466bf215546Sopenharmony_ci{
13467bf215546Sopenharmony_ci    /* no known/supported struct */
13468bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13469bf215546Sopenharmony_ci        assert(false);
13470bf215546Sopenharmony_ci}
13471bf215546Sopenharmony_ci
13472bf215546Sopenharmony_cistatic inline void
13473bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13474bf215546Sopenharmony_ci{
13475bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13476bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->storageTexelBufferOffsetAlignmentBytes);
13477bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageTexelBufferOffsetSingleTexelAlignment);
13478bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->uniformTexelBufferOffsetAlignmentBytes);
13479bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformTexelBufferOffsetSingleTexelAlignment);
13480bf215546Sopenharmony_ci}
13481bf215546Sopenharmony_ci
13482bf215546Sopenharmony_cistatic inline void
13483bf215546Sopenharmony_civn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13484bf215546Sopenharmony_ci{
13485bf215546Sopenharmony_ci    VkStructureType stype;
13486bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13487bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES);
13488bf215546Sopenharmony_ci
13489bf215546Sopenharmony_ci    assert(val->sType == stype);
13490bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(dec, val->pNext);
13491bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(dec, val);
13492bf215546Sopenharmony_ci}
13493bf215546Sopenharmony_ci
13494bf215546Sopenharmony_cistatic inline size_t
13495bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial(const void *val)
13496bf215546Sopenharmony_ci{
13497bf215546Sopenharmony_ci    /* no known/supported struct */
13498bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13499bf215546Sopenharmony_ci}
13500bf215546Sopenharmony_ci
13501bf215546Sopenharmony_cistatic inline size_t
13502bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial(const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13503bf215546Sopenharmony_ci{
13504bf215546Sopenharmony_ci    size_t size = 0;
13505bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13506bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetAlignmentBytes */
13507bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
13508bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetAlignmentBytes */
13509bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
13510bf215546Sopenharmony_ci    return size;
13511bf215546Sopenharmony_ci}
13512bf215546Sopenharmony_ci
13513bf215546Sopenharmony_cistatic inline size_t
13514bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_partial(const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13515bf215546Sopenharmony_ci{
13516bf215546Sopenharmony_ci    size_t size = 0;
13517bf215546Sopenharmony_ci
13518bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13519bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial(val->pNext);
13520bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial(val);
13521bf215546Sopenharmony_ci
13522bf215546Sopenharmony_ci    return size;
13523bf215546Sopenharmony_ci}
13524bf215546Sopenharmony_ci
13525bf215546Sopenharmony_cistatic inline void
13526bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13527bf215546Sopenharmony_ci{
13528bf215546Sopenharmony_ci    /* no known/supported struct */
13529bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13530bf215546Sopenharmony_ci}
13531bf215546Sopenharmony_ci
13532bf215546Sopenharmony_cistatic inline void
13533bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13534bf215546Sopenharmony_ci{
13535bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13536bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetAlignmentBytes */
13537bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
13538bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetAlignmentBytes */
13539bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
13540bf215546Sopenharmony_ci}
13541bf215546Sopenharmony_ci
13542bf215546Sopenharmony_cistatic inline void
13543bf215546Sopenharmony_civn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val)
13544bf215546Sopenharmony_ci{
13545bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES);
13546bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES });
13547bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial(enc, val->pNext);
13548bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial(enc, val);
13549bf215546Sopenharmony_ci}
13550bf215546Sopenharmony_ci
13551bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSubgroupSizeControlProperties chain */
13552bf215546Sopenharmony_ci
13553bf215546Sopenharmony_cistatic inline size_t
13554bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(const void *val)
13555bf215546Sopenharmony_ci{
13556bf215546Sopenharmony_ci    /* no known/supported struct */
13557bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13558bf215546Sopenharmony_ci}
13559bf215546Sopenharmony_ci
13560bf215546Sopenharmony_cistatic inline size_t
13561bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self(const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13562bf215546Sopenharmony_ci{
13563bf215546Sopenharmony_ci    size_t size = 0;
13564bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13565bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->minSubgroupSize);
13566bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxSubgroupSize);
13567bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxComputeWorkgroupSubgroups);
13568bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->requiredSubgroupSizeStages);
13569bf215546Sopenharmony_ci    return size;
13570bf215546Sopenharmony_ci}
13571bf215546Sopenharmony_ci
13572bf215546Sopenharmony_cistatic inline size_t
13573bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties(const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13574bf215546Sopenharmony_ci{
13575bf215546Sopenharmony_ci    size_t size = 0;
13576bf215546Sopenharmony_ci
13577bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13578bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(val->pNext);
13579bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self(val);
13580bf215546Sopenharmony_ci
13581bf215546Sopenharmony_ci    return size;
13582bf215546Sopenharmony_ci}
13583bf215546Sopenharmony_ci
13584bf215546Sopenharmony_cistatic inline void
13585bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(struct vn_cs_decoder *dec, const void *val)
13586bf215546Sopenharmony_ci{
13587bf215546Sopenharmony_ci    /* no known/supported struct */
13588bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13589bf215546Sopenharmony_ci        assert(false);
13590bf215546Sopenharmony_ci}
13591bf215546Sopenharmony_ci
13592bf215546Sopenharmony_cistatic inline void
13593bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val)
13594bf215546Sopenharmony_ci{
13595bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13596bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->minSubgroupSize);
13597bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxSubgroupSize);
13598bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxComputeWorkgroupSubgroups);
13599bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->requiredSubgroupSizeStages);
13600bf215546Sopenharmony_ci}
13601bf215546Sopenharmony_ci
13602bf215546Sopenharmony_cistatic inline void
13603bf215546Sopenharmony_civn_decode_VkPhysicalDeviceSubgroupSizeControlProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val)
13604bf215546Sopenharmony_ci{
13605bf215546Sopenharmony_ci    VkStructureType stype;
13606bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13607bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES);
13608bf215546Sopenharmony_ci
13609bf215546Sopenharmony_ci    assert(val->sType == stype);
13610bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(dec, val->pNext);
13611bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self(dec, val);
13612bf215546Sopenharmony_ci}
13613bf215546Sopenharmony_ci
13614bf215546Sopenharmony_cistatic inline size_t
13615bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial(const void *val)
13616bf215546Sopenharmony_ci{
13617bf215546Sopenharmony_ci    /* no known/supported struct */
13618bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13619bf215546Sopenharmony_ci}
13620bf215546Sopenharmony_ci
13621bf215546Sopenharmony_cistatic inline size_t
13622bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial(const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13623bf215546Sopenharmony_ci{
13624bf215546Sopenharmony_ci    size_t size = 0;
13625bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13626bf215546Sopenharmony_ci    /* skip val->minSubgroupSize */
13627bf215546Sopenharmony_ci    /* skip val->maxSubgroupSize */
13628bf215546Sopenharmony_ci    /* skip val->maxComputeWorkgroupSubgroups */
13629bf215546Sopenharmony_ci    /* skip val->requiredSubgroupSizeStages */
13630bf215546Sopenharmony_ci    return size;
13631bf215546Sopenharmony_ci}
13632bf215546Sopenharmony_ci
13633bf215546Sopenharmony_cistatic inline size_t
13634bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_partial(const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13635bf215546Sopenharmony_ci{
13636bf215546Sopenharmony_ci    size_t size = 0;
13637bf215546Sopenharmony_ci
13638bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13639bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial(val->pNext);
13640bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial(val);
13641bf215546Sopenharmony_ci
13642bf215546Sopenharmony_ci    return size;
13643bf215546Sopenharmony_ci}
13644bf215546Sopenharmony_ci
13645bf215546Sopenharmony_cistatic inline void
13646bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13647bf215546Sopenharmony_ci{
13648bf215546Sopenharmony_ci    /* no known/supported struct */
13649bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13650bf215546Sopenharmony_ci}
13651bf215546Sopenharmony_ci
13652bf215546Sopenharmony_cistatic inline void
13653bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13654bf215546Sopenharmony_ci{
13655bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13656bf215546Sopenharmony_ci    /* skip val->minSubgroupSize */
13657bf215546Sopenharmony_ci    /* skip val->maxSubgroupSize */
13658bf215546Sopenharmony_ci    /* skip val->maxComputeWorkgroupSubgroups */
13659bf215546Sopenharmony_ci    /* skip val->requiredSubgroupSizeStages */
13660bf215546Sopenharmony_ci}
13661bf215546Sopenharmony_ci
13662bf215546Sopenharmony_cistatic inline void
13663bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val)
13664bf215546Sopenharmony_ci{
13665bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES);
13666bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES });
13667bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial(enc, val->pNext);
13668bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial(enc, val);
13669bf215546Sopenharmony_ci}
13670bf215546Sopenharmony_ci
13671bf215546Sopenharmony_ci/* struct VkPhysicalDeviceLineRasterizationPropertiesEXT chain */
13672bf215546Sopenharmony_ci
13673bf215546Sopenharmony_cistatic inline size_t
13674bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(const void *val)
13675bf215546Sopenharmony_ci{
13676bf215546Sopenharmony_ci    /* no known/supported struct */
13677bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13678bf215546Sopenharmony_ci}
13679bf215546Sopenharmony_ci
13680bf215546Sopenharmony_cistatic inline size_t
13681bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13682bf215546Sopenharmony_ci{
13683bf215546Sopenharmony_ci    size_t size = 0;
13684bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13685bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->lineSubPixelPrecisionBits);
13686bf215546Sopenharmony_ci    return size;
13687bf215546Sopenharmony_ci}
13688bf215546Sopenharmony_ci
13689bf215546Sopenharmony_cistatic inline size_t
13690bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT(const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13691bf215546Sopenharmony_ci{
13692bf215546Sopenharmony_ci    size_t size = 0;
13693bf215546Sopenharmony_ci
13694bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13695bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(val->pNext);
13696bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(val);
13697bf215546Sopenharmony_ci
13698bf215546Sopenharmony_ci    return size;
13699bf215546Sopenharmony_ci}
13700bf215546Sopenharmony_ci
13701bf215546Sopenharmony_cistatic inline void
13702bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
13703bf215546Sopenharmony_ci{
13704bf215546Sopenharmony_ci    /* no known/supported struct */
13705bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13706bf215546Sopenharmony_ci        assert(false);
13707bf215546Sopenharmony_ci}
13708bf215546Sopenharmony_ci
13709bf215546Sopenharmony_cistatic inline void
13710bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13711bf215546Sopenharmony_ci{
13712bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13713bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->lineSubPixelPrecisionBits);
13714bf215546Sopenharmony_ci}
13715bf215546Sopenharmony_ci
13716bf215546Sopenharmony_cistatic inline void
13717bf215546Sopenharmony_civn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13718bf215546Sopenharmony_ci{
13719bf215546Sopenharmony_ci    VkStructureType stype;
13720bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13721bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT);
13722bf215546Sopenharmony_ci
13723bf215546Sopenharmony_ci    assert(val->sType == stype);
13724bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(dec, val->pNext);
13725bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(dec, val);
13726bf215546Sopenharmony_ci}
13727bf215546Sopenharmony_ci
13728bf215546Sopenharmony_cistatic inline size_t
13729bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial(const void *val)
13730bf215546Sopenharmony_ci{
13731bf215546Sopenharmony_ci    /* no known/supported struct */
13732bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13733bf215546Sopenharmony_ci}
13734bf215546Sopenharmony_ci
13735bf215546Sopenharmony_cistatic inline size_t
13736bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial(const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13737bf215546Sopenharmony_ci{
13738bf215546Sopenharmony_ci    size_t size = 0;
13739bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13740bf215546Sopenharmony_ci    /* skip val->lineSubPixelPrecisionBits */
13741bf215546Sopenharmony_ci    return size;
13742bf215546Sopenharmony_ci}
13743bf215546Sopenharmony_ci
13744bf215546Sopenharmony_cistatic inline size_t
13745bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_partial(const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13746bf215546Sopenharmony_ci{
13747bf215546Sopenharmony_ci    size_t size = 0;
13748bf215546Sopenharmony_ci
13749bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13750bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial(val->pNext);
13751bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial(val);
13752bf215546Sopenharmony_ci
13753bf215546Sopenharmony_ci    return size;
13754bf215546Sopenharmony_ci}
13755bf215546Sopenharmony_ci
13756bf215546Sopenharmony_cistatic inline void
13757bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13758bf215546Sopenharmony_ci{
13759bf215546Sopenharmony_ci    /* no known/supported struct */
13760bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13761bf215546Sopenharmony_ci}
13762bf215546Sopenharmony_ci
13763bf215546Sopenharmony_cistatic inline void
13764bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13765bf215546Sopenharmony_ci{
13766bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13767bf215546Sopenharmony_ci    /* skip val->lineSubPixelPrecisionBits */
13768bf215546Sopenharmony_ci}
13769bf215546Sopenharmony_ci
13770bf215546Sopenharmony_cistatic inline void
13771bf215546Sopenharmony_civn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
13772bf215546Sopenharmony_ci{
13773bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT);
13774bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT });
13775bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial(enc, val->pNext);
13776bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial(enc, val);
13777bf215546Sopenharmony_ci}
13778bf215546Sopenharmony_ci
13779bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan11Properties chain */
13780bf215546Sopenharmony_ci
13781bf215546Sopenharmony_cistatic inline size_t
13782bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties_pnext(const void *val)
13783bf215546Sopenharmony_ci{
13784bf215546Sopenharmony_ci    /* no known/supported struct */
13785bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13786bf215546Sopenharmony_ci}
13787bf215546Sopenharmony_ci
13788bf215546Sopenharmony_cistatic inline size_t
13789bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties_self(const VkPhysicalDeviceVulkan11Properties *val)
13790bf215546Sopenharmony_ci{
13791bf215546Sopenharmony_ci    size_t size = 0;
13792bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13793bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_UUID_SIZE);
13794bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->deviceUUID, VK_UUID_SIZE);
13795bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_UUID_SIZE);
13796bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->driverUUID, VK_UUID_SIZE);
13797bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_LUID_SIZE);
13798bf215546Sopenharmony_ci    size += vn_sizeof_uint8_t_array(val->deviceLUID, VK_LUID_SIZE);
13799bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->deviceNodeMask);
13800bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->deviceLUIDValid);
13801bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->subgroupSize);
13802bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->subgroupSupportedStages);
13803bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->subgroupSupportedOperations);
13804bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->subgroupQuadOperationsInAllStages);
13805bf215546Sopenharmony_ci    size += vn_sizeof_VkPointClippingBehavior(&val->pointClippingBehavior);
13806bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMultiviewViewCount);
13807bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxMultiviewInstanceIndex);
13808bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->protectedNoFault);
13809bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerSetDescriptors);
13810bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxMemoryAllocationSize);
13811bf215546Sopenharmony_ci    return size;
13812bf215546Sopenharmony_ci}
13813bf215546Sopenharmony_ci
13814bf215546Sopenharmony_cistatic inline size_t
13815bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties(const VkPhysicalDeviceVulkan11Properties *val)
13816bf215546Sopenharmony_ci{
13817bf215546Sopenharmony_ci    size_t size = 0;
13818bf215546Sopenharmony_ci
13819bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13820bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_pnext(val->pNext);
13821bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_self(val);
13822bf215546Sopenharmony_ci
13823bf215546Sopenharmony_ci    return size;
13824bf215546Sopenharmony_ci}
13825bf215546Sopenharmony_ci
13826bf215546Sopenharmony_cistatic inline void
13827bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Properties_pnext(struct vn_cs_decoder *dec, const void *val)
13828bf215546Sopenharmony_ci{
13829bf215546Sopenharmony_ci    /* no known/supported struct */
13830bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
13831bf215546Sopenharmony_ci        assert(false);
13832bf215546Sopenharmony_ci}
13833bf215546Sopenharmony_ci
13834bf215546Sopenharmony_cistatic inline void
13835bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Properties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Properties *val)
13836bf215546Sopenharmony_ci{
13837bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13838bf215546Sopenharmony_ci    {
13839bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_UUID_SIZE);
13840bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->deviceUUID, array_size);
13841bf215546Sopenharmony_ci    }
13842bf215546Sopenharmony_ci    {
13843bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_UUID_SIZE);
13844bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->driverUUID, array_size);
13845bf215546Sopenharmony_ci    }
13846bf215546Sopenharmony_ci    {
13847bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_LUID_SIZE);
13848bf215546Sopenharmony_ci        vn_decode_uint8_t_array(dec, val->deviceLUID, array_size);
13849bf215546Sopenharmony_ci    }
13850bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->deviceNodeMask);
13851bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->deviceLUIDValid);
13852bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->subgroupSize);
13853bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->subgroupSupportedStages);
13854bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->subgroupSupportedOperations);
13855bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->subgroupQuadOperationsInAllStages);
13856bf215546Sopenharmony_ci    vn_decode_VkPointClippingBehavior(dec, &val->pointClippingBehavior);
13857bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMultiviewViewCount);
13858bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxMultiviewInstanceIndex);
13859bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->protectedNoFault);
13860bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerSetDescriptors);
13861bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxMemoryAllocationSize);
13862bf215546Sopenharmony_ci}
13863bf215546Sopenharmony_ci
13864bf215546Sopenharmony_cistatic inline void
13865bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan11Properties(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Properties *val)
13866bf215546Sopenharmony_ci{
13867bf215546Sopenharmony_ci    VkStructureType stype;
13868bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
13869bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES);
13870bf215546Sopenharmony_ci
13871bf215546Sopenharmony_ci    assert(val->sType == stype);
13872bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan11Properties_pnext(dec, val->pNext);
13873bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan11Properties_self(dec, val);
13874bf215546Sopenharmony_ci}
13875bf215546Sopenharmony_ci
13876bf215546Sopenharmony_cistatic inline size_t
13877bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties_pnext_partial(const void *val)
13878bf215546Sopenharmony_ci{
13879bf215546Sopenharmony_ci    /* no known/supported struct */
13880bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13881bf215546Sopenharmony_ci}
13882bf215546Sopenharmony_ci
13883bf215546Sopenharmony_cistatic inline size_t
13884bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties_self_partial(const VkPhysicalDeviceVulkan11Properties *val)
13885bf215546Sopenharmony_ci{
13886bf215546Sopenharmony_ci    size_t size = 0;
13887bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13888bf215546Sopenharmony_ci    /* skip val->deviceUUID */
13889bf215546Sopenharmony_ci    /* skip val->driverUUID */
13890bf215546Sopenharmony_ci    /* skip val->deviceLUID */
13891bf215546Sopenharmony_ci    /* skip val->deviceNodeMask */
13892bf215546Sopenharmony_ci    /* skip val->deviceLUIDValid */
13893bf215546Sopenharmony_ci    /* skip val->subgroupSize */
13894bf215546Sopenharmony_ci    /* skip val->subgroupSupportedStages */
13895bf215546Sopenharmony_ci    /* skip val->subgroupSupportedOperations */
13896bf215546Sopenharmony_ci    /* skip val->subgroupQuadOperationsInAllStages */
13897bf215546Sopenharmony_ci    /* skip val->pointClippingBehavior */
13898bf215546Sopenharmony_ci    /* skip val->maxMultiviewViewCount */
13899bf215546Sopenharmony_ci    /* skip val->maxMultiviewInstanceIndex */
13900bf215546Sopenharmony_ci    /* skip val->protectedNoFault */
13901bf215546Sopenharmony_ci    /* skip val->maxPerSetDescriptors */
13902bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationSize */
13903bf215546Sopenharmony_ci    return size;
13904bf215546Sopenharmony_ci}
13905bf215546Sopenharmony_ci
13906bf215546Sopenharmony_cistatic inline size_t
13907bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan11Properties_partial(const VkPhysicalDeviceVulkan11Properties *val)
13908bf215546Sopenharmony_ci{
13909bf215546Sopenharmony_ci    size_t size = 0;
13910bf215546Sopenharmony_ci
13911bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
13912bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_pnext_partial(val->pNext);
13913bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_self_partial(val);
13914bf215546Sopenharmony_ci
13915bf215546Sopenharmony_ci    return size;
13916bf215546Sopenharmony_ci}
13917bf215546Sopenharmony_ci
13918bf215546Sopenharmony_cistatic inline void
13919bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Properties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
13920bf215546Sopenharmony_ci{
13921bf215546Sopenharmony_ci    /* no known/supported struct */
13922bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
13923bf215546Sopenharmony_ci}
13924bf215546Sopenharmony_ci
13925bf215546Sopenharmony_cistatic inline void
13926bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Properties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Properties *val)
13927bf215546Sopenharmony_ci{
13928bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13929bf215546Sopenharmony_ci    /* skip val->deviceUUID */
13930bf215546Sopenharmony_ci    /* skip val->driverUUID */
13931bf215546Sopenharmony_ci    /* skip val->deviceLUID */
13932bf215546Sopenharmony_ci    /* skip val->deviceNodeMask */
13933bf215546Sopenharmony_ci    /* skip val->deviceLUIDValid */
13934bf215546Sopenharmony_ci    /* skip val->subgroupSize */
13935bf215546Sopenharmony_ci    /* skip val->subgroupSupportedStages */
13936bf215546Sopenharmony_ci    /* skip val->subgroupSupportedOperations */
13937bf215546Sopenharmony_ci    /* skip val->subgroupQuadOperationsInAllStages */
13938bf215546Sopenharmony_ci    /* skip val->pointClippingBehavior */
13939bf215546Sopenharmony_ci    /* skip val->maxMultiviewViewCount */
13940bf215546Sopenharmony_ci    /* skip val->maxMultiviewInstanceIndex */
13941bf215546Sopenharmony_ci    /* skip val->protectedNoFault */
13942bf215546Sopenharmony_ci    /* skip val->maxPerSetDescriptors */
13943bf215546Sopenharmony_ci    /* skip val->maxMemoryAllocationSize */
13944bf215546Sopenharmony_ci}
13945bf215546Sopenharmony_ci
13946bf215546Sopenharmony_cistatic inline void
13947bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan11Properties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Properties *val)
13948bf215546Sopenharmony_ci{
13949bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES);
13950bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES });
13951bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Properties_pnext_partial(enc, val->pNext);
13952bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan11Properties_self_partial(enc, val);
13953bf215546Sopenharmony_ci}
13954bf215546Sopenharmony_ci
13955bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan12Properties chain */
13956bf215546Sopenharmony_ci
13957bf215546Sopenharmony_cistatic inline size_t
13958bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties_pnext(const void *val)
13959bf215546Sopenharmony_ci{
13960bf215546Sopenharmony_ci    /* no known/supported struct */
13961bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
13962bf215546Sopenharmony_ci}
13963bf215546Sopenharmony_ci
13964bf215546Sopenharmony_cistatic inline size_t
13965bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties_self(const VkPhysicalDeviceVulkan12Properties *val)
13966bf215546Sopenharmony_ci{
13967bf215546Sopenharmony_ci    size_t size = 0;
13968bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
13969bf215546Sopenharmony_ci    size += vn_sizeof_VkDriverId(&val->driverID);
13970bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DRIVER_NAME_SIZE);
13971bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->driverName, VK_MAX_DRIVER_NAME_SIZE);
13972bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DRIVER_INFO_SIZE);
13973bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->driverInfo, VK_MAX_DRIVER_INFO_SIZE);
13974bf215546Sopenharmony_ci    size += vn_sizeof_VkConformanceVersion(&val->conformanceVersion);
13975bf215546Sopenharmony_ci    size += vn_sizeof_VkShaderFloatControlsIndependence(&val->denormBehaviorIndependence);
13976bf215546Sopenharmony_ci    size += vn_sizeof_VkShaderFloatControlsIndependence(&val->roundingModeIndependence);
13977bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat16);
13978bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat32);
13979bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSignedZeroInfNanPreserveFloat64);
13980bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat16);
13981bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat32);
13982bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormPreserveFloat64);
13983bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat16);
13984bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat32);
13985bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderDenormFlushToZeroFloat64);
13986bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat16);
13987bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat32);
13988bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTEFloat64);
13989bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat16);
13990bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat32);
13991bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderRoundingModeRTZFloat64);
13992bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxUpdateAfterBindDescriptorsInAllPools);
13993bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderUniformBufferArrayNonUniformIndexingNative);
13994bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderSampledImageArrayNonUniformIndexingNative);
13995bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageBufferArrayNonUniformIndexingNative);
13996bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderStorageImageArrayNonUniformIndexingNative);
13997bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->shaderInputAttachmentArrayNonUniformIndexingNative);
13998bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->robustBufferAccessUpdateAfterBind);
13999bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->quadDivergentImplicitLod);
14000bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindSamplers);
14001bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
14002bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
14003bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindSampledImages);
14004bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindStorageImages);
14005bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
14006bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageUpdateAfterBindResources);
14007bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindSamplers);
14008bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindUniformBuffers);
14009bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
14010bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageBuffers);
14011bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
14012bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindSampledImages);
14013bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindStorageImages);
14014bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindInputAttachments);
14015bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedDepthResolveModes);
14016bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->supportedStencilResolveModes);
14017bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->independentResolveNone);
14018bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->independentResolve);
14019bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->filterMinmaxSingleComponentFormats);
14020bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->filterMinmaxImageComponentMapping);
14021bf215546Sopenharmony_ci    size += vn_sizeof_uint64_t(&val->maxTimelineSemaphoreValueDifference);
14022bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->framebufferIntegerColorSampleCounts);
14023bf215546Sopenharmony_ci    return size;
14024bf215546Sopenharmony_ci}
14025bf215546Sopenharmony_ci
14026bf215546Sopenharmony_cistatic inline size_t
14027bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties(const VkPhysicalDeviceVulkan12Properties *val)
14028bf215546Sopenharmony_ci{
14029bf215546Sopenharmony_ci    size_t size = 0;
14030bf215546Sopenharmony_ci
14031bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14032bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_pnext(val->pNext);
14033bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_self(val);
14034bf215546Sopenharmony_ci
14035bf215546Sopenharmony_ci    return size;
14036bf215546Sopenharmony_ci}
14037bf215546Sopenharmony_ci
14038bf215546Sopenharmony_cistatic inline void
14039bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Properties_pnext(struct vn_cs_decoder *dec, const void *val)
14040bf215546Sopenharmony_ci{
14041bf215546Sopenharmony_ci    /* no known/supported struct */
14042bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14043bf215546Sopenharmony_ci        assert(false);
14044bf215546Sopenharmony_ci}
14045bf215546Sopenharmony_ci
14046bf215546Sopenharmony_cistatic inline void
14047bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Properties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Properties *val)
14048bf215546Sopenharmony_ci{
14049bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14050bf215546Sopenharmony_ci    vn_decode_VkDriverId(dec, &val->driverID);
14051bf215546Sopenharmony_ci    {
14052bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_DRIVER_NAME_SIZE);
14053bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->driverName, array_size);
14054bf215546Sopenharmony_ci    }
14055bf215546Sopenharmony_ci    {
14056bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_DRIVER_INFO_SIZE);
14057bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->driverInfo, array_size);
14058bf215546Sopenharmony_ci    }
14059bf215546Sopenharmony_ci    vn_decode_VkConformanceVersion(dec, &val->conformanceVersion);
14060bf215546Sopenharmony_ci    vn_decode_VkShaderFloatControlsIndependence(dec, &val->denormBehaviorIndependence);
14061bf215546Sopenharmony_ci    vn_decode_VkShaderFloatControlsIndependence(dec, &val->roundingModeIndependence);
14062bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat16);
14063bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat32);
14064bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSignedZeroInfNanPreserveFloat64);
14065bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat16);
14066bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat32);
14067bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormPreserveFloat64);
14068bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat16);
14069bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat32);
14070bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderDenormFlushToZeroFloat64);
14071bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat16);
14072bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat32);
14073bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTEFloat64);
14074bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat16);
14075bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat32);
14076bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderRoundingModeRTZFloat64);
14077bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxUpdateAfterBindDescriptorsInAllPools);
14078bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexingNative);
14079bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexingNative);
14080bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexingNative);
14081bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexingNative);
14082bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexingNative);
14083bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->robustBufferAccessUpdateAfterBind);
14084bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->quadDivergentImplicitLod);
14085bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindSamplers);
14086bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
14087bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
14088bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindSampledImages);
14089bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindStorageImages);
14090bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindInputAttachments);
14091bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageUpdateAfterBindResources);
14092bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindSamplers);
14093bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindUniformBuffers);
14094bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
14095bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageBuffers);
14096bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
14097bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindSampledImages);
14098bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindStorageImages);
14099bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindInputAttachments);
14100bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedDepthResolveModes);
14101bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->supportedStencilResolveModes);
14102bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->independentResolveNone);
14103bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->independentResolve);
14104bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->filterMinmaxSingleComponentFormats);
14105bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->filterMinmaxImageComponentMapping);
14106bf215546Sopenharmony_ci    vn_decode_uint64_t(dec, &val->maxTimelineSemaphoreValueDifference);
14107bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->framebufferIntegerColorSampleCounts);
14108bf215546Sopenharmony_ci}
14109bf215546Sopenharmony_ci
14110bf215546Sopenharmony_cistatic inline void
14111bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan12Properties(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Properties *val)
14112bf215546Sopenharmony_ci{
14113bf215546Sopenharmony_ci    VkStructureType stype;
14114bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14115bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES);
14116bf215546Sopenharmony_ci
14117bf215546Sopenharmony_ci    assert(val->sType == stype);
14118bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan12Properties_pnext(dec, val->pNext);
14119bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan12Properties_self(dec, val);
14120bf215546Sopenharmony_ci}
14121bf215546Sopenharmony_ci
14122bf215546Sopenharmony_cistatic inline size_t
14123bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties_pnext_partial(const void *val)
14124bf215546Sopenharmony_ci{
14125bf215546Sopenharmony_ci    /* no known/supported struct */
14126bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14127bf215546Sopenharmony_ci}
14128bf215546Sopenharmony_ci
14129bf215546Sopenharmony_cistatic inline size_t
14130bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties_self_partial(const VkPhysicalDeviceVulkan12Properties *val)
14131bf215546Sopenharmony_ci{
14132bf215546Sopenharmony_ci    size_t size = 0;
14133bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14134bf215546Sopenharmony_ci    /* skip val->driverID */
14135bf215546Sopenharmony_ci    /* skip val->driverName */
14136bf215546Sopenharmony_ci    /* skip val->driverInfo */
14137bf215546Sopenharmony_ci    size += vn_sizeof_VkConformanceVersion_partial(&val->conformanceVersion);
14138bf215546Sopenharmony_ci    /* skip val->denormBehaviorIndependence */
14139bf215546Sopenharmony_ci    /* skip val->roundingModeIndependence */
14140bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
14141bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
14142bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
14143bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat16 */
14144bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat32 */
14145bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat64 */
14146bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat16 */
14147bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat32 */
14148bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat64 */
14149bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat16 */
14150bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat32 */
14151bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat64 */
14152bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat16 */
14153bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat32 */
14154bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat64 */
14155bf215546Sopenharmony_ci    /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
14156bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
14157bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
14158bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
14159bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
14160bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
14161bf215546Sopenharmony_ci    /* skip val->robustBufferAccessUpdateAfterBind */
14162bf215546Sopenharmony_ci    /* skip val->quadDivergentImplicitLod */
14163bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
14164bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
14165bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
14166bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
14167bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
14168bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
14169bf215546Sopenharmony_ci    /* skip val->maxPerStageUpdateAfterBindResources */
14170bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
14171bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
14172bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
14173bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
14174bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
14175bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
14176bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
14177bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
14178bf215546Sopenharmony_ci    /* skip val->supportedDepthResolveModes */
14179bf215546Sopenharmony_ci    /* skip val->supportedStencilResolveModes */
14180bf215546Sopenharmony_ci    /* skip val->independentResolveNone */
14181bf215546Sopenharmony_ci    /* skip val->independentResolve */
14182bf215546Sopenharmony_ci    /* skip val->filterMinmaxSingleComponentFormats */
14183bf215546Sopenharmony_ci    /* skip val->filterMinmaxImageComponentMapping */
14184bf215546Sopenharmony_ci    /* skip val->maxTimelineSemaphoreValueDifference */
14185bf215546Sopenharmony_ci    /* skip val->framebufferIntegerColorSampleCounts */
14186bf215546Sopenharmony_ci    return size;
14187bf215546Sopenharmony_ci}
14188bf215546Sopenharmony_ci
14189bf215546Sopenharmony_cistatic inline size_t
14190bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan12Properties_partial(const VkPhysicalDeviceVulkan12Properties *val)
14191bf215546Sopenharmony_ci{
14192bf215546Sopenharmony_ci    size_t size = 0;
14193bf215546Sopenharmony_ci
14194bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14195bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_pnext_partial(val->pNext);
14196bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_self_partial(val);
14197bf215546Sopenharmony_ci
14198bf215546Sopenharmony_ci    return size;
14199bf215546Sopenharmony_ci}
14200bf215546Sopenharmony_ci
14201bf215546Sopenharmony_cistatic inline void
14202bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Properties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
14203bf215546Sopenharmony_ci{
14204bf215546Sopenharmony_ci    /* no known/supported struct */
14205bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
14206bf215546Sopenharmony_ci}
14207bf215546Sopenharmony_ci
14208bf215546Sopenharmony_cistatic inline void
14209bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Properties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Properties *val)
14210bf215546Sopenharmony_ci{
14211bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14212bf215546Sopenharmony_ci    /* skip val->driverID */
14213bf215546Sopenharmony_ci    /* skip val->driverName */
14214bf215546Sopenharmony_ci    /* skip val->driverInfo */
14215bf215546Sopenharmony_ci    vn_encode_VkConformanceVersion_partial(enc, &val->conformanceVersion);
14216bf215546Sopenharmony_ci    /* skip val->denormBehaviorIndependence */
14217bf215546Sopenharmony_ci    /* skip val->roundingModeIndependence */
14218bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat16 */
14219bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat32 */
14220bf215546Sopenharmony_ci    /* skip val->shaderSignedZeroInfNanPreserveFloat64 */
14221bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat16 */
14222bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat32 */
14223bf215546Sopenharmony_ci    /* skip val->shaderDenormPreserveFloat64 */
14224bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat16 */
14225bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat32 */
14226bf215546Sopenharmony_ci    /* skip val->shaderDenormFlushToZeroFloat64 */
14227bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat16 */
14228bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat32 */
14229bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTEFloat64 */
14230bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat16 */
14231bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat32 */
14232bf215546Sopenharmony_ci    /* skip val->shaderRoundingModeRTZFloat64 */
14233bf215546Sopenharmony_ci    /* skip val->maxUpdateAfterBindDescriptorsInAllPools */
14234bf215546Sopenharmony_ci    /* skip val->shaderUniformBufferArrayNonUniformIndexingNative */
14235bf215546Sopenharmony_ci    /* skip val->shaderSampledImageArrayNonUniformIndexingNative */
14236bf215546Sopenharmony_ci    /* skip val->shaderStorageBufferArrayNonUniformIndexingNative */
14237bf215546Sopenharmony_ci    /* skip val->shaderStorageImageArrayNonUniformIndexingNative */
14238bf215546Sopenharmony_ci    /* skip val->shaderInputAttachmentArrayNonUniformIndexingNative */
14239bf215546Sopenharmony_ci    /* skip val->robustBufferAccessUpdateAfterBind */
14240bf215546Sopenharmony_ci    /* skip val->quadDivergentImplicitLod */
14241bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSamplers */
14242bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindUniformBuffers */
14243bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageBuffers */
14244bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindSampledImages */
14245bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindStorageImages */
14246bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInputAttachments */
14247bf215546Sopenharmony_ci    /* skip val->maxPerStageUpdateAfterBindResources */
14248bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSamplers */
14249bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffers */
14250bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic */
14251bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffers */
14252bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic */
14253bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindSampledImages */
14254bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindStorageImages */
14255bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInputAttachments */
14256bf215546Sopenharmony_ci    /* skip val->supportedDepthResolveModes */
14257bf215546Sopenharmony_ci    /* skip val->supportedStencilResolveModes */
14258bf215546Sopenharmony_ci    /* skip val->independentResolveNone */
14259bf215546Sopenharmony_ci    /* skip val->independentResolve */
14260bf215546Sopenharmony_ci    /* skip val->filterMinmaxSingleComponentFormats */
14261bf215546Sopenharmony_ci    /* skip val->filterMinmaxImageComponentMapping */
14262bf215546Sopenharmony_ci    /* skip val->maxTimelineSemaphoreValueDifference */
14263bf215546Sopenharmony_ci    /* skip val->framebufferIntegerColorSampleCounts */
14264bf215546Sopenharmony_ci}
14265bf215546Sopenharmony_ci
14266bf215546Sopenharmony_cistatic inline void
14267bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan12Properties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Properties *val)
14268bf215546Sopenharmony_ci{
14269bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES);
14270bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES });
14271bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Properties_pnext_partial(enc, val->pNext);
14272bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan12Properties_self_partial(enc, val);
14273bf215546Sopenharmony_ci}
14274bf215546Sopenharmony_ci
14275bf215546Sopenharmony_ci/* struct VkPhysicalDeviceVulkan13Properties chain */
14276bf215546Sopenharmony_ci
14277bf215546Sopenharmony_cistatic inline size_t
14278bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties_pnext(const void *val)
14279bf215546Sopenharmony_ci{
14280bf215546Sopenharmony_ci    /* no known/supported struct */
14281bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14282bf215546Sopenharmony_ci}
14283bf215546Sopenharmony_ci
14284bf215546Sopenharmony_cistatic inline size_t
14285bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties_self(const VkPhysicalDeviceVulkan13Properties *val)
14286bf215546Sopenharmony_ci{
14287bf215546Sopenharmony_ci    size_t size = 0;
14288bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14289bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->minSubgroupSize);
14290bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxSubgroupSize);
14291bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxComputeWorkgroupSubgroups);
14292bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->requiredSubgroupSizeStages);
14293bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxInlineUniformBlockSize);
14294bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorInlineUniformBlocks);
14295bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
14296bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetInlineUniformBlocks);
14297bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
14298bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxInlineUniformTotalSize);
14299bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitUnsignedAccelerated);
14300bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitSignedAccelerated);
14301bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitMixedSignednessAccelerated);
14302bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedUnsignedAccelerated);
14303bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedSignedAccelerated);
14304bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
14305bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitUnsignedAccelerated);
14306bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitSignedAccelerated);
14307bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitMixedSignednessAccelerated);
14308bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitUnsignedAccelerated);
14309bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitSignedAccelerated);
14310bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitMixedSignednessAccelerated);
14311bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitUnsignedAccelerated);
14312bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitSignedAccelerated);
14313bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitMixedSignednessAccelerated);
14314bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
14315bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
14316bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
14317bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
14318bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
14319bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
14320bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
14321bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
14322bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
14323bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
14324bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
14325bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
14326bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
14327bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
14328bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
14329bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->storageTexelBufferOffsetAlignmentBytes);
14330bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->storageTexelBufferOffsetSingleTexelAlignment);
14331bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->uniformTexelBufferOffsetAlignmentBytes);
14332bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->uniformTexelBufferOffsetSingleTexelAlignment);
14333bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->maxBufferSize);
14334bf215546Sopenharmony_ci    return size;
14335bf215546Sopenharmony_ci}
14336bf215546Sopenharmony_ci
14337bf215546Sopenharmony_cistatic inline size_t
14338bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties(const VkPhysicalDeviceVulkan13Properties *val)
14339bf215546Sopenharmony_ci{
14340bf215546Sopenharmony_ci    size_t size = 0;
14341bf215546Sopenharmony_ci
14342bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14343bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_pnext(val->pNext);
14344bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self(val);
14345bf215546Sopenharmony_ci
14346bf215546Sopenharmony_ci    return size;
14347bf215546Sopenharmony_ci}
14348bf215546Sopenharmony_ci
14349bf215546Sopenharmony_cistatic inline void
14350bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Properties_pnext(struct vn_cs_decoder *dec, const void *val)
14351bf215546Sopenharmony_ci{
14352bf215546Sopenharmony_ci    /* no known/supported struct */
14353bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14354bf215546Sopenharmony_ci        assert(false);
14355bf215546Sopenharmony_ci}
14356bf215546Sopenharmony_ci
14357bf215546Sopenharmony_cistatic inline void
14358bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Properties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val)
14359bf215546Sopenharmony_ci{
14360bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14361bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->minSubgroupSize);
14362bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxSubgroupSize);
14363bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxComputeWorkgroupSubgroups);
14364bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->requiredSubgroupSizeStages);
14365bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxInlineUniformBlockSize);
14366bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorInlineUniformBlocks);
14367bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks);
14368bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetInlineUniformBlocks);
14369bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
14370bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxInlineUniformTotalSize);
14371bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitUnsignedAccelerated);
14372bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitSignedAccelerated);
14373bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitMixedSignednessAccelerated);
14374bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedUnsignedAccelerated);
14375bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedSignedAccelerated);
14376bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
14377bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitUnsignedAccelerated);
14378bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitSignedAccelerated);
14379bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitMixedSignednessAccelerated);
14380bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitUnsignedAccelerated);
14381bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitSignedAccelerated);
14382bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitMixedSignednessAccelerated);
14383bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitUnsignedAccelerated);
14384bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitSignedAccelerated);
14385bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitMixedSignednessAccelerated);
14386bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
14387bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
14388bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
14389bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
14390bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
14391bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
14392bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
14393bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
14394bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
14395bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
14396bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
14397bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
14398bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
14399bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
14400bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
14401bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->storageTexelBufferOffsetAlignmentBytes);
14402bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->storageTexelBufferOffsetSingleTexelAlignment);
14403bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->uniformTexelBufferOffsetAlignmentBytes);
14404bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->uniformTexelBufferOffsetSingleTexelAlignment);
14405bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->maxBufferSize);
14406bf215546Sopenharmony_ci}
14407bf215546Sopenharmony_ci
14408bf215546Sopenharmony_cistatic inline void
14409bf215546Sopenharmony_civn_decode_VkPhysicalDeviceVulkan13Properties(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val)
14410bf215546Sopenharmony_ci{
14411bf215546Sopenharmony_ci    VkStructureType stype;
14412bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14413bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES);
14414bf215546Sopenharmony_ci
14415bf215546Sopenharmony_ci    assert(val->sType == stype);
14416bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan13Properties_pnext(dec, val->pNext);
14417bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceVulkan13Properties_self(dec, val);
14418bf215546Sopenharmony_ci}
14419bf215546Sopenharmony_ci
14420bf215546Sopenharmony_cistatic inline size_t
14421bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties_pnext_partial(const void *val)
14422bf215546Sopenharmony_ci{
14423bf215546Sopenharmony_ci    /* no known/supported struct */
14424bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14425bf215546Sopenharmony_ci}
14426bf215546Sopenharmony_ci
14427bf215546Sopenharmony_cistatic inline size_t
14428bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties_self_partial(const VkPhysicalDeviceVulkan13Properties *val)
14429bf215546Sopenharmony_ci{
14430bf215546Sopenharmony_ci    size_t size = 0;
14431bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14432bf215546Sopenharmony_ci    /* skip val->minSubgroupSize */
14433bf215546Sopenharmony_ci    /* skip val->maxSubgroupSize */
14434bf215546Sopenharmony_ci    /* skip val->maxComputeWorkgroupSubgroups */
14435bf215546Sopenharmony_ci    /* skip val->requiredSubgroupSizeStages */
14436bf215546Sopenharmony_ci    /* skip val->maxInlineUniformBlockSize */
14437bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInlineUniformBlocks */
14438bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
14439bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInlineUniformBlocks */
14440bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
14441bf215546Sopenharmony_ci    /* skip val->maxInlineUniformTotalSize */
14442bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitUnsignedAccelerated */
14443bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitSignedAccelerated */
14444bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
14445bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
14446bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
14447bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
14448bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitUnsignedAccelerated */
14449bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitSignedAccelerated */
14450bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
14451bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitUnsignedAccelerated */
14452bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitSignedAccelerated */
14453bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
14454bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitUnsignedAccelerated */
14455bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitSignedAccelerated */
14456bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
14457bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
14458bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
14459bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
14460bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
14461bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
14462bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
14463bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
14464bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
14465bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
14466bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
14467bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
14468bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
14469bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
14470bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
14471bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
14472bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetAlignmentBytes */
14473bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
14474bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetAlignmentBytes */
14475bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
14476bf215546Sopenharmony_ci    /* skip val->maxBufferSize */
14477bf215546Sopenharmony_ci    return size;
14478bf215546Sopenharmony_ci}
14479bf215546Sopenharmony_ci
14480bf215546Sopenharmony_cistatic inline size_t
14481bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceVulkan13Properties_partial(const VkPhysicalDeviceVulkan13Properties *val)
14482bf215546Sopenharmony_ci{
14483bf215546Sopenharmony_ci    size_t size = 0;
14484bf215546Sopenharmony_ci
14485bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14486bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_pnext_partial(val->pNext);
14487bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self_partial(val);
14488bf215546Sopenharmony_ci
14489bf215546Sopenharmony_ci    return size;
14490bf215546Sopenharmony_ci}
14491bf215546Sopenharmony_ci
14492bf215546Sopenharmony_cistatic inline void
14493bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Properties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
14494bf215546Sopenharmony_ci{
14495bf215546Sopenharmony_ci    /* no known/supported struct */
14496bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
14497bf215546Sopenharmony_ci}
14498bf215546Sopenharmony_ci
14499bf215546Sopenharmony_cistatic inline void
14500bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Properties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val)
14501bf215546Sopenharmony_ci{
14502bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14503bf215546Sopenharmony_ci    /* skip val->minSubgroupSize */
14504bf215546Sopenharmony_ci    /* skip val->maxSubgroupSize */
14505bf215546Sopenharmony_ci    /* skip val->maxComputeWorkgroupSubgroups */
14506bf215546Sopenharmony_ci    /* skip val->requiredSubgroupSizeStages */
14507bf215546Sopenharmony_ci    /* skip val->maxInlineUniformBlockSize */
14508bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorInlineUniformBlocks */
14509bf215546Sopenharmony_ci    /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */
14510bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetInlineUniformBlocks */
14511bf215546Sopenharmony_ci    /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */
14512bf215546Sopenharmony_ci    /* skip val->maxInlineUniformTotalSize */
14513bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitUnsignedAccelerated */
14514bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitSignedAccelerated */
14515bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
14516bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
14517bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
14518bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
14519bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitUnsignedAccelerated */
14520bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitSignedAccelerated */
14521bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
14522bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitUnsignedAccelerated */
14523bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitSignedAccelerated */
14524bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
14525bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitUnsignedAccelerated */
14526bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitSignedAccelerated */
14527bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
14528bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
14529bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
14530bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
14531bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
14532bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
14533bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
14534bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
14535bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
14536bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
14537bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
14538bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
14539bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
14540bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
14541bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
14542bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
14543bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetAlignmentBytes */
14544bf215546Sopenharmony_ci    /* skip val->storageTexelBufferOffsetSingleTexelAlignment */
14545bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetAlignmentBytes */
14546bf215546Sopenharmony_ci    /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */
14547bf215546Sopenharmony_ci    /* skip val->maxBufferSize */
14548bf215546Sopenharmony_ci}
14549bf215546Sopenharmony_ci
14550bf215546Sopenharmony_cistatic inline void
14551bf215546Sopenharmony_civn_encode_VkPhysicalDeviceVulkan13Properties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val)
14552bf215546Sopenharmony_ci{
14553bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES);
14554bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES });
14555bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Properties_pnext_partial(enc, val->pNext);
14556bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceVulkan13Properties_self_partial(enc, val);
14557bf215546Sopenharmony_ci}
14558bf215546Sopenharmony_ci
14559bf215546Sopenharmony_ci/* struct VkPhysicalDeviceCustomBorderColorPropertiesEXT chain */
14560bf215546Sopenharmony_ci
14561bf215546Sopenharmony_cistatic inline size_t
14562bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(const void *val)
14563bf215546Sopenharmony_ci{
14564bf215546Sopenharmony_ci    /* no known/supported struct */
14565bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14566bf215546Sopenharmony_ci}
14567bf215546Sopenharmony_ci
14568bf215546Sopenharmony_cistatic inline size_t
14569bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14570bf215546Sopenharmony_ci{
14571bf215546Sopenharmony_ci    size_t size = 0;
14572bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14573bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->maxCustomBorderColorSamplers);
14574bf215546Sopenharmony_ci    return size;
14575bf215546Sopenharmony_ci}
14576bf215546Sopenharmony_ci
14577bf215546Sopenharmony_cistatic inline size_t
14578bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14579bf215546Sopenharmony_ci{
14580bf215546Sopenharmony_ci    size_t size = 0;
14581bf215546Sopenharmony_ci
14582bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14583bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(val->pNext);
14584bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(val);
14585bf215546Sopenharmony_ci
14586bf215546Sopenharmony_ci    return size;
14587bf215546Sopenharmony_ci}
14588bf215546Sopenharmony_ci
14589bf215546Sopenharmony_cistatic inline void
14590bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
14591bf215546Sopenharmony_ci{
14592bf215546Sopenharmony_ci    /* no known/supported struct */
14593bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14594bf215546Sopenharmony_ci        assert(false);
14595bf215546Sopenharmony_ci}
14596bf215546Sopenharmony_ci
14597bf215546Sopenharmony_cistatic inline void
14598bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14599bf215546Sopenharmony_ci{
14600bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14601bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->maxCustomBorderColorSamplers);
14602bf215546Sopenharmony_ci}
14603bf215546Sopenharmony_ci
14604bf215546Sopenharmony_cistatic inline void
14605bf215546Sopenharmony_civn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14606bf215546Sopenharmony_ci{
14607bf215546Sopenharmony_ci    VkStructureType stype;
14608bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14609bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT);
14610bf215546Sopenharmony_ci
14611bf215546Sopenharmony_ci    assert(val->sType == stype);
14612bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(dec, val->pNext);
14613bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(dec, val);
14614bf215546Sopenharmony_ci}
14615bf215546Sopenharmony_ci
14616bf215546Sopenharmony_cistatic inline size_t
14617bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(const void *val)
14618bf215546Sopenharmony_ci{
14619bf215546Sopenharmony_ci    /* no known/supported struct */
14620bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14621bf215546Sopenharmony_ci}
14622bf215546Sopenharmony_ci
14623bf215546Sopenharmony_cistatic inline size_t
14624bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14625bf215546Sopenharmony_ci{
14626bf215546Sopenharmony_ci    size_t size = 0;
14627bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14628bf215546Sopenharmony_ci    /* skip val->maxCustomBorderColorSamplers */
14629bf215546Sopenharmony_ci    return size;
14630bf215546Sopenharmony_ci}
14631bf215546Sopenharmony_ci
14632bf215546Sopenharmony_cistatic inline size_t
14633bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14634bf215546Sopenharmony_ci{
14635bf215546Sopenharmony_ci    size_t size = 0;
14636bf215546Sopenharmony_ci
14637bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14638bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(val->pNext);
14639bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(val);
14640bf215546Sopenharmony_ci
14641bf215546Sopenharmony_ci    return size;
14642bf215546Sopenharmony_ci}
14643bf215546Sopenharmony_ci
14644bf215546Sopenharmony_cistatic inline void
14645bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
14646bf215546Sopenharmony_ci{
14647bf215546Sopenharmony_ci    /* no known/supported struct */
14648bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
14649bf215546Sopenharmony_ci}
14650bf215546Sopenharmony_ci
14651bf215546Sopenharmony_cistatic inline void
14652bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14653bf215546Sopenharmony_ci{
14654bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14655bf215546Sopenharmony_ci    /* skip val->maxCustomBorderColorSamplers */
14656bf215546Sopenharmony_ci}
14657bf215546Sopenharmony_ci
14658bf215546Sopenharmony_cistatic inline void
14659bf215546Sopenharmony_civn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val)
14660bf215546Sopenharmony_ci{
14661bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT);
14662bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT });
14663bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(enc, val->pNext);
14664bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(enc, val);
14665bf215546Sopenharmony_ci}
14666bf215546Sopenharmony_ci
14667bf215546Sopenharmony_ci/* struct VkPhysicalDeviceRobustness2PropertiesEXT chain */
14668bf215546Sopenharmony_ci
14669bf215546Sopenharmony_cistatic inline size_t
14670bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(const void *val)
14671bf215546Sopenharmony_ci{
14672bf215546Sopenharmony_ci    /* no known/supported struct */
14673bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14674bf215546Sopenharmony_ci}
14675bf215546Sopenharmony_ci
14676bf215546Sopenharmony_cistatic inline size_t
14677bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self(const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14678bf215546Sopenharmony_ci{
14679bf215546Sopenharmony_ci    size_t size = 0;
14680bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14681bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->robustStorageBufferAccessSizeAlignment);
14682bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceSize(&val->robustUniformBufferAccessSizeAlignment);
14683bf215546Sopenharmony_ci    return size;
14684bf215546Sopenharmony_ci}
14685bf215546Sopenharmony_ci
14686bf215546Sopenharmony_cistatic inline size_t
14687bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT(const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14688bf215546Sopenharmony_ci{
14689bf215546Sopenharmony_ci    size_t size = 0;
14690bf215546Sopenharmony_ci
14691bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14692bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(val->pNext);
14693bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self(val);
14694bf215546Sopenharmony_ci
14695bf215546Sopenharmony_ci    return size;
14696bf215546Sopenharmony_ci}
14697bf215546Sopenharmony_ci
14698bf215546Sopenharmony_cistatic inline void
14699bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
14700bf215546Sopenharmony_ci{
14701bf215546Sopenharmony_ci    /* no known/supported struct */
14702bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14703bf215546Sopenharmony_ci        assert(false);
14704bf215546Sopenharmony_ci}
14705bf215546Sopenharmony_ci
14706bf215546Sopenharmony_cistatic inline void
14707bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2PropertiesEXT *val)
14708bf215546Sopenharmony_ci{
14709bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14710bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->robustStorageBufferAccessSizeAlignment);
14711bf215546Sopenharmony_ci    vn_decode_VkDeviceSize(dec, &val->robustUniformBufferAccessSizeAlignment);
14712bf215546Sopenharmony_ci}
14713bf215546Sopenharmony_ci
14714bf215546Sopenharmony_cistatic inline void
14715bf215546Sopenharmony_civn_decode_VkPhysicalDeviceRobustness2PropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceRobustness2PropertiesEXT *val)
14716bf215546Sopenharmony_ci{
14717bf215546Sopenharmony_ci    VkStructureType stype;
14718bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14719bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT);
14720bf215546Sopenharmony_ci
14721bf215546Sopenharmony_ci    assert(val->sType == stype);
14722bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext(dec, val->pNext);
14723bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self(dec, val);
14724bf215546Sopenharmony_ci}
14725bf215546Sopenharmony_ci
14726bf215546Sopenharmony_cistatic inline size_t
14727bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial(const void *val)
14728bf215546Sopenharmony_ci{
14729bf215546Sopenharmony_ci    /* no known/supported struct */
14730bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14731bf215546Sopenharmony_ci}
14732bf215546Sopenharmony_ci
14733bf215546Sopenharmony_cistatic inline size_t
14734bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial(const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14735bf215546Sopenharmony_ci{
14736bf215546Sopenharmony_ci    size_t size = 0;
14737bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14738bf215546Sopenharmony_ci    /* skip val->robustStorageBufferAccessSizeAlignment */
14739bf215546Sopenharmony_ci    /* skip val->robustUniformBufferAccessSizeAlignment */
14740bf215546Sopenharmony_ci    return size;
14741bf215546Sopenharmony_ci}
14742bf215546Sopenharmony_ci
14743bf215546Sopenharmony_cistatic inline size_t
14744bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_partial(const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14745bf215546Sopenharmony_ci{
14746bf215546Sopenharmony_ci    size_t size = 0;
14747bf215546Sopenharmony_ci
14748bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14749bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial(val->pNext);
14750bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial(val);
14751bf215546Sopenharmony_ci
14752bf215546Sopenharmony_ci    return size;
14753bf215546Sopenharmony_ci}
14754bf215546Sopenharmony_ci
14755bf215546Sopenharmony_cistatic inline void
14756bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
14757bf215546Sopenharmony_ci{
14758bf215546Sopenharmony_ci    /* no known/supported struct */
14759bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
14760bf215546Sopenharmony_ci}
14761bf215546Sopenharmony_ci
14762bf215546Sopenharmony_cistatic inline void
14763bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14764bf215546Sopenharmony_ci{
14765bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14766bf215546Sopenharmony_ci    /* skip val->robustStorageBufferAccessSizeAlignment */
14767bf215546Sopenharmony_ci    /* skip val->robustUniformBufferAccessSizeAlignment */
14768bf215546Sopenharmony_ci}
14769bf215546Sopenharmony_ci
14770bf215546Sopenharmony_cistatic inline void
14771bf215546Sopenharmony_civn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceRobustness2PropertiesEXT *val)
14772bf215546Sopenharmony_ci{
14773bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT);
14774bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT });
14775bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_pnext_partial(enc, val->pNext);
14776bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial(enc, val);
14777bf215546Sopenharmony_ci}
14778bf215546Sopenharmony_ci
14779bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProvokingVertexPropertiesEXT chain */
14780bf215546Sopenharmony_ci
14781bf215546Sopenharmony_cistatic inline size_t
14782bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(const void *val)
14783bf215546Sopenharmony_ci{
14784bf215546Sopenharmony_ci    /* no known/supported struct */
14785bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14786bf215546Sopenharmony_ci}
14787bf215546Sopenharmony_ci
14788bf215546Sopenharmony_cistatic inline size_t
14789bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14790bf215546Sopenharmony_ci{
14791bf215546Sopenharmony_ci    size_t size = 0;
14792bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14793bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->provokingVertexModePerPipeline);
14794bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->transformFeedbackPreservesTriangleFanProvokingVertex);
14795bf215546Sopenharmony_ci    return size;
14796bf215546Sopenharmony_ci}
14797bf215546Sopenharmony_ci
14798bf215546Sopenharmony_cistatic inline size_t
14799bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT(const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14800bf215546Sopenharmony_ci{
14801bf215546Sopenharmony_ci    size_t size = 0;
14802bf215546Sopenharmony_ci
14803bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14804bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(val->pNext);
14805bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(val);
14806bf215546Sopenharmony_ci
14807bf215546Sopenharmony_ci    return size;
14808bf215546Sopenharmony_ci}
14809bf215546Sopenharmony_ci
14810bf215546Sopenharmony_cistatic inline void
14811bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)
14812bf215546Sopenharmony_ci{
14813bf215546Sopenharmony_ci    /* no known/supported struct */
14814bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14815bf215546Sopenharmony_ci        assert(false);
14816bf215546Sopenharmony_ci}
14817bf215546Sopenharmony_ci
14818bf215546Sopenharmony_cistatic inline void
14819bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14820bf215546Sopenharmony_ci{
14821bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14822bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->provokingVertexModePerPipeline);
14823bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->transformFeedbackPreservesTriangleFanProvokingVertex);
14824bf215546Sopenharmony_ci}
14825bf215546Sopenharmony_ci
14826bf215546Sopenharmony_cistatic inline void
14827bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14828bf215546Sopenharmony_ci{
14829bf215546Sopenharmony_ci    VkStructureType stype;
14830bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14831bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT);
14832bf215546Sopenharmony_ci
14833bf215546Sopenharmony_ci    assert(val->sType == stype);
14834bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(dec, val->pNext);
14835bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(dec, val);
14836bf215546Sopenharmony_ci}
14837bf215546Sopenharmony_ci
14838bf215546Sopenharmony_cistatic inline size_t
14839bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial(const void *val)
14840bf215546Sopenharmony_ci{
14841bf215546Sopenharmony_ci    /* no known/supported struct */
14842bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14843bf215546Sopenharmony_ci}
14844bf215546Sopenharmony_ci
14845bf215546Sopenharmony_cistatic inline size_t
14846bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial(const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14847bf215546Sopenharmony_ci{
14848bf215546Sopenharmony_ci    size_t size = 0;
14849bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14850bf215546Sopenharmony_ci    /* skip val->provokingVertexModePerPipeline */
14851bf215546Sopenharmony_ci    /* skip val->transformFeedbackPreservesTriangleFanProvokingVertex */
14852bf215546Sopenharmony_ci    return size;
14853bf215546Sopenharmony_ci}
14854bf215546Sopenharmony_ci
14855bf215546Sopenharmony_cistatic inline size_t
14856bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_partial(const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14857bf215546Sopenharmony_ci{
14858bf215546Sopenharmony_ci    size_t size = 0;
14859bf215546Sopenharmony_ci
14860bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14861bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial(val->pNext);
14862bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial(val);
14863bf215546Sopenharmony_ci
14864bf215546Sopenharmony_ci    return size;
14865bf215546Sopenharmony_ci}
14866bf215546Sopenharmony_ci
14867bf215546Sopenharmony_cistatic inline void
14868bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
14869bf215546Sopenharmony_ci{
14870bf215546Sopenharmony_ci    /* no known/supported struct */
14871bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
14872bf215546Sopenharmony_ci}
14873bf215546Sopenharmony_ci
14874bf215546Sopenharmony_cistatic inline void
14875bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14876bf215546Sopenharmony_ci{
14877bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14878bf215546Sopenharmony_ci    /* skip val->provokingVertexModePerPipeline */
14879bf215546Sopenharmony_ci    /* skip val->transformFeedbackPreservesTriangleFanProvokingVertex */
14880bf215546Sopenharmony_ci}
14881bf215546Sopenharmony_ci
14882bf215546Sopenharmony_cistatic inline void
14883bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
14884bf215546Sopenharmony_ci{
14885bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT);
14886bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT });
14887bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial(enc, val->pNext);
14888bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial(enc, val);
14889bf215546Sopenharmony_ci}
14890bf215546Sopenharmony_ci
14891bf215546Sopenharmony_ci/* struct VkPhysicalDeviceShaderIntegerDotProductProperties chain */
14892bf215546Sopenharmony_ci
14893bf215546Sopenharmony_cistatic inline size_t
14894bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(const void *val)
14895bf215546Sopenharmony_ci{
14896bf215546Sopenharmony_ci    /* no known/supported struct */
14897bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
14898bf215546Sopenharmony_ci}
14899bf215546Sopenharmony_ci
14900bf215546Sopenharmony_cistatic inline size_t
14901bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self(const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
14902bf215546Sopenharmony_ci{
14903bf215546Sopenharmony_ci    size_t size = 0;
14904bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14905bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitUnsignedAccelerated);
14906bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitSignedAccelerated);
14907bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct8BitMixedSignednessAccelerated);
14908bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedUnsignedAccelerated);
14909bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedSignedAccelerated);
14910bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
14911bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitUnsignedAccelerated);
14912bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitSignedAccelerated);
14913bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct16BitMixedSignednessAccelerated);
14914bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitUnsignedAccelerated);
14915bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitSignedAccelerated);
14916bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct32BitMixedSignednessAccelerated);
14917bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitUnsignedAccelerated);
14918bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitSignedAccelerated);
14919bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProduct64BitMixedSignednessAccelerated);
14920bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
14921bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
14922bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
14923bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
14924bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
14925bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
14926bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
14927bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
14928bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
14929bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
14930bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
14931bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
14932bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
14933bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
14934bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
14935bf215546Sopenharmony_ci    return size;
14936bf215546Sopenharmony_ci}
14937bf215546Sopenharmony_ci
14938bf215546Sopenharmony_cistatic inline size_t
14939bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties(const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
14940bf215546Sopenharmony_ci{
14941bf215546Sopenharmony_ci    size_t size = 0;
14942bf215546Sopenharmony_ci
14943bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
14944bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(val->pNext);
14945bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self(val);
14946bf215546Sopenharmony_ci
14947bf215546Sopenharmony_ci    return size;
14948bf215546Sopenharmony_ci}
14949bf215546Sopenharmony_ci
14950bf215546Sopenharmony_cistatic inline void
14951bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(struct vn_cs_decoder *dec, const void *val)
14952bf215546Sopenharmony_ci{
14953bf215546Sopenharmony_ci    /* no known/supported struct */
14954bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
14955bf215546Sopenharmony_ci        assert(false);
14956bf215546Sopenharmony_ci}
14957bf215546Sopenharmony_ci
14958bf215546Sopenharmony_cistatic inline void
14959bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val)
14960bf215546Sopenharmony_ci{
14961bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
14962bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitUnsignedAccelerated);
14963bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitSignedAccelerated);
14964bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct8BitMixedSignednessAccelerated);
14965bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedUnsignedAccelerated);
14966bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedSignedAccelerated);
14967bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated);
14968bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitUnsignedAccelerated);
14969bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitSignedAccelerated);
14970bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct16BitMixedSignednessAccelerated);
14971bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitUnsignedAccelerated);
14972bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitSignedAccelerated);
14973bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct32BitMixedSignednessAccelerated);
14974bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitUnsignedAccelerated);
14975bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitSignedAccelerated);
14976bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProduct64BitMixedSignednessAccelerated);
14977bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
14978bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated);
14979bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
14980bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
14981bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
14982bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
14983bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
14984bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated);
14985bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
14986bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
14987bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated);
14988bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
14989bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
14990bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated);
14991bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
14992bf215546Sopenharmony_ci}
14993bf215546Sopenharmony_ci
14994bf215546Sopenharmony_cistatic inline void
14995bf215546Sopenharmony_civn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val)
14996bf215546Sopenharmony_ci{
14997bf215546Sopenharmony_ci    VkStructureType stype;
14998bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
14999bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES);
15000bf215546Sopenharmony_ci
15001bf215546Sopenharmony_ci    assert(val->sType == stype);
15002bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(dec, val->pNext);
15003bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(dec, val);
15004bf215546Sopenharmony_ci}
15005bf215546Sopenharmony_ci
15006bf215546Sopenharmony_cistatic inline size_t
15007bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial(const void *val)
15008bf215546Sopenharmony_ci{
15009bf215546Sopenharmony_ci    /* no known/supported struct */
15010bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
15011bf215546Sopenharmony_ci}
15012bf215546Sopenharmony_ci
15013bf215546Sopenharmony_cistatic inline size_t
15014bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial(const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
15015bf215546Sopenharmony_ci{
15016bf215546Sopenharmony_ci    size_t size = 0;
15017bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15018bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitUnsignedAccelerated */
15019bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitSignedAccelerated */
15020bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
15021bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
15022bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
15023bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
15024bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitUnsignedAccelerated */
15025bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitSignedAccelerated */
15026bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
15027bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitUnsignedAccelerated */
15028bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitSignedAccelerated */
15029bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
15030bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitUnsignedAccelerated */
15031bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitSignedAccelerated */
15032bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
15033bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
15034bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
15035bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
15036bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
15037bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
15038bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
15039bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
15040bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
15041bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
15042bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
15043bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
15044bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
15045bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
15046bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
15047bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
15048bf215546Sopenharmony_ci    return size;
15049bf215546Sopenharmony_ci}
15050bf215546Sopenharmony_ci
15051bf215546Sopenharmony_cistatic inline size_t
15052bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_partial(const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
15053bf215546Sopenharmony_ci{
15054bf215546Sopenharmony_ci    size_t size = 0;
15055bf215546Sopenharmony_ci
15056bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
15057bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial(val->pNext);
15058bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial(val);
15059bf215546Sopenharmony_ci
15060bf215546Sopenharmony_ci    return size;
15061bf215546Sopenharmony_ci}
15062bf215546Sopenharmony_ci
15063bf215546Sopenharmony_cistatic inline void
15064bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
15065bf215546Sopenharmony_ci{
15066bf215546Sopenharmony_ci    /* no known/supported struct */
15067bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
15068bf215546Sopenharmony_ci}
15069bf215546Sopenharmony_ci
15070bf215546Sopenharmony_cistatic inline void
15071bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
15072bf215546Sopenharmony_ci{
15073bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15074bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitUnsignedAccelerated */
15075bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitSignedAccelerated */
15076bf215546Sopenharmony_ci    /* skip val->integerDotProduct8BitMixedSignednessAccelerated */
15077bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */
15078bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */
15079bf215546Sopenharmony_ci    /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */
15080bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitUnsignedAccelerated */
15081bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitSignedAccelerated */
15082bf215546Sopenharmony_ci    /* skip val->integerDotProduct16BitMixedSignednessAccelerated */
15083bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitUnsignedAccelerated */
15084bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitSignedAccelerated */
15085bf215546Sopenharmony_ci    /* skip val->integerDotProduct32BitMixedSignednessAccelerated */
15086bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitUnsignedAccelerated */
15087bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitSignedAccelerated */
15088bf215546Sopenharmony_ci    /* skip val->integerDotProduct64BitMixedSignednessAccelerated */
15089bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */
15090bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */
15091bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */
15092bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */
15093bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */
15094bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */
15095bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */
15096bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */
15097bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */
15098bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */
15099bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */
15100bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */
15101bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */
15102bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */
15103bf215546Sopenharmony_ci    /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */
15104bf215546Sopenharmony_ci}
15105bf215546Sopenharmony_ci
15106bf215546Sopenharmony_cistatic inline void
15107bf215546Sopenharmony_civn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val)
15108bf215546Sopenharmony_ci{
15109bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES);
15110bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES });
15111bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial(enc, val->pNext);
15112bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial(enc, val);
15113bf215546Sopenharmony_ci}
15114bf215546Sopenharmony_ci
15115bf215546Sopenharmony_ci/* struct VkPhysicalDeviceProperties2 chain */
15116bf215546Sopenharmony_ci
15117bf215546Sopenharmony_cistatic inline size_t
15118bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2_pnext(const void *val)
15119bf215546Sopenharmony_ci{
15120bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
15121bf215546Sopenharmony_ci    size_t size = 0;
15122bf215546Sopenharmony_ci
15123bf215546Sopenharmony_ci    while (pnext) {
15124bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
15125bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
15126bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15127bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15128bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15129bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDriverProperties_self((const VkPhysicalDeviceDriverProperties *)pnext);
15130bf215546Sopenharmony_ci            return size;
15131bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
15132bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15133bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15134bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15135bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceIDProperties_self((const VkPhysicalDeviceIDProperties *)pnext);
15136bf215546Sopenharmony_ci            return size;
15137bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
15138bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15139bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15140bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15141bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_self((const VkPhysicalDeviceMultiviewProperties *)pnext);
15142bf215546Sopenharmony_ci            return size;
15143bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
15144bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15145bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15146bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15147bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_self((const VkPhysicalDeviceSubgroupProperties *)pnext);
15148bf215546Sopenharmony_ci            return size;
15149bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
15150bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15151bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15152bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15153bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePointClippingProperties_self((const VkPhysicalDevicePointClippingProperties *)pnext);
15154bf215546Sopenharmony_ci            return size;
15155bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
15156bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15157bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15158bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15159bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self((const VkPhysicalDeviceProtectedMemoryProperties *)pnext);
15160bf215546Sopenharmony_ci            return size;
15161bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
15162bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15163bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15164bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15165bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self((const VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
15166bf215546Sopenharmony_ci            return size;
15167bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
15168bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
15169bf215546Sopenharmony_ci                break;
15170bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15171bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15172bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15173bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self((const VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
15174bf215546Sopenharmony_ci            return size;
15175bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
15176bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15177bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15178bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15179bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_self((const VkPhysicalDeviceMaintenance3Properties *)pnext);
15180bf215546Sopenharmony_ci            return size;
15181bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
15182bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
15183bf215546Sopenharmony_ci                break;
15184bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15185bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15186bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15187bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_self((const VkPhysicalDeviceMaintenance4Properties *)pnext);
15188bf215546Sopenharmony_ci            return size;
15189bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
15190bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15191bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15192bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15193bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_self((const VkPhysicalDeviceFloatControlsProperties *)pnext);
15194bf215546Sopenharmony_ci            return size;
15195bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
15196bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(102 /* VK_EXT_conservative_rasterization */))
15197bf215546Sopenharmony_ci                break;
15198bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15199bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15200bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15201bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self((const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
15202bf215546Sopenharmony_ci            return size;
15203bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
15204bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15205bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15206bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15207bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self((const VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
15208bf215546Sopenharmony_ci            return size;
15209bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
15210bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15211bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15212bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15213bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self((const VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
15214bf215546Sopenharmony_ci            return size;
15215bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
15216bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
15217bf215546Sopenharmony_ci                break;
15218bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15219bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15220bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15221bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self((const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
15222bf215546Sopenharmony_ci            return size;
15223bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
15224bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15225bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15226bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15227bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self((const VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
15228bf215546Sopenharmony_ci            return size;
15229bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
15230bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
15231bf215546Sopenharmony_ci                break;
15232bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15233bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15234bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15235bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self((const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
15236bf215546Sopenharmony_ci            return size;
15237bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
15238bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
15239bf215546Sopenharmony_ci                break;
15240bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15241bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15242bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15243bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self((const VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
15244bf215546Sopenharmony_ci            return size;
15245bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
15246bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
15247bf215546Sopenharmony_ci                break;
15248bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15249bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15250bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15251bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self((const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
15252bf215546Sopenharmony_ci            return size;
15253bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
15254bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
15255bf215546Sopenharmony_ci                break;
15256bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15257bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15258bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15259bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self((const VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
15260bf215546Sopenharmony_ci            return size;
15261bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
15262bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15263bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15264bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15265bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_self((const VkPhysicalDeviceVulkan11Properties *)pnext);
15266bf215546Sopenharmony_ci            return size;
15267bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
15268bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15269bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15270bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15271bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_self((const VkPhysicalDeviceVulkan12Properties *)pnext);
15272bf215546Sopenharmony_ci            return size;
15273bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
15274bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
15275bf215546Sopenharmony_ci                break;
15276bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15277bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15278bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15279bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self((const VkPhysicalDeviceVulkan13Properties *)pnext);
15280bf215546Sopenharmony_ci            return size;
15281bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
15282bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
15283bf215546Sopenharmony_ci                break;
15284bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15285bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15286bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15287bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self((const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
15288bf215546Sopenharmony_ci            return size;
15289bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
15290bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
15291bf215546Sopenharmony_ci                break;
15292bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15293bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15294bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15295bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self((const VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
15296bf215546Sopenharmony_ci            return size;
15297bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
15298bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
15299bf215546Sopenharmony_ci                break;
15300bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15301bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15302bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15303bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self((const VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
15304bf215546Sopenharmony_ci            return size;
15305bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
15306bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
15307bf215546Sopenharmony_ci                break;
15308bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15309bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15310bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
15311bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self((const VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
15312bf215546Sopenharmony_ci            return size;
15313bf215546Sopenharmony_ci        default:
15314bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
15315bf215546Sopenharmony_ci            break;
15316bf215546Sopenharmony_ci        }
15317bf215546Sopenharmony_ci        pnext = pnext->pNext;
15318bf215546Sopenharmony_ci    }
15319bf215546Sopenharmony_ci
15320bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
15321bf215546Sopenharmony_ci}
15322bf215546Sopenharmony_ci
15323bf215546Sopenharmony_cistatic inline size_t
15324bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2_self(const VkPhysicalDeviceProperties2 *val)
15325bf215546Sopenharmony_ci{
15326bf215546Sopenharmony_ci    size_t size = 0;
15327bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15328bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties(&val->properties);
15329bf215546Sopenharmony_ci    return size;
15330bf215546Sopenharmony_ci}
15331bf215546Sopenharmony_ci
15332bf215546Sopenharmony_cistatic inline size_t
15333bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2(const VkPhysicalDeviceProperties2 *val)
15334bf215546Sopenharmony_ci{
15335bf215546Sopenharmony_ci    size_t size = 0;
15336bf215546Sopenharmony_ci
15337bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
15338bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(val->pNext);
15339bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties2_self(val);
15340bf215546Sopenharmony_ci
15341bf215546Sopenharmony_ci    return size;
15342bf215546Sopenharmony_ci}
15343bf215546Sopenharmony_ci
15344bf215546Sopenharmony_cistatic inline void
15345bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
15346bf215546Sopenharmony_ci{
15347bf215546Sopenharmony_ci    VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;
15348bf215546Sopenharmony_ci    VkStructureType stype;
15349bf215546Sopenharmony_ci
15350bf215546Sopenharmony_ci    if (!vn_decode_simple_pointer(dec))
15351bf215546Sopenharmony_ci        return;
15352bf215546Sopenharmony_ci
15353bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
15354bf215546Sopenharmony_ci    while (true) {
15355bf215546Sopenharmony_ci        assert(pnext);
15356bf215546Sopenharmony_ci        if (pnext->sType == stype)
15357bf215546Sopenharmony_ci            break;
15358bf215546Sopenharmony_ci
15359bf215546Sopenharmony_ci        pnext = pnext->pNext;
15360bf215546Sopenharmony_ci    }
15361bf215546Sopenharmony_ci
15362bf215546Sopenharmony_ci    switch ((int32_t)pnext->sType) {
15363bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
15364bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15365bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDriverProperties_self(dec, (VkPhysicalDeviceDriverProperties *)pnext);
15366bf215546Sopenharmony_ci        break;
15367bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
15368bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15369bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceIDProperties_self(dec, (VkPhysicalDeviceIDProperties *)pnext);
15370bf215546Sopenharmony_ci        break;
15371bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
15372bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15373bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMultiviewProperties_self(dec, (VkPhysicalDeviceMultiviewProperties *)pnext);
15374bf215546Sopenharmony_ci        break;
15375bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
15376bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15377bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSubgroupProperties_self(dec, (VkPhysicalDeviceSubgroupProperties *)pnext);
15378bf215546Sopenharmony_ci        break;
15379bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
15380bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15381bf215546Sopenharmony_ci        vn_decode_VkPhysicalDevicePointClippingProperties_self(dec, (VkPhysicalDevicePointClippingProperties *)pnext);
15382bf215546Sopenharmony_ci        break;
15383bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
15384bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15385bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProtectedMemoryProperties_self(dec, (VkPhysicalDeviceProtectedMemoryProperties *)pnext);
15386bf215546Sopenharmony_ci        break;
15387bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
15388bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15389bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(dec, (VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
15390bf215546Sopenharmony_ci        break;
15391bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
15392bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15393bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self(dec, (VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
15394bf215546Sopenharmony_ci        break;
15395bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
15396bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15397bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMaintenance3Properties_self(dec, (VkPhysicalDeviceMaintenance3Properties *)pnext);
15398bf215546Sopenharmony_ci        break;
15399bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
15400bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15401bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMaintenance4Properties_self(dec, (VkPhysicalDeviceMaintenance4Properties *)pnext);
15402bf215546Sopenharmony_ci        break;
15403bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
15404bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15405bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFloatControlsProperties_self(dec, (VkPhysicalDeviceFloatControlsProperties *)pnext);
15406bf215546Sopenharmony_ci        break;
15407bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
15408bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15409bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self(dec, (VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
15410bf215546Sopenharmony_ci        break;
15411bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
15412bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15413bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDescriptorIndexingProperties_self(dec, (VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
15414bf215546Sopenharmony_ci        break;
15415bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
15416bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15417bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTimelineSemaphoreProperties_self(dec, (VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
15418bf215546Sopenharmony_ci        break;
15419bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
15420bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15421bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self(dec, (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
15422bf215546Sopenharmony_ci        break;
15423bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
15424bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15425bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceDepthStencilResolveProperties_self(dec, (VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
15426bf215546Sopenharmony_ci        break;
15427bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
15428bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15429bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(dec, (VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
15430bf215546Sopenharmony_ci        break;
15431bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
15432bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15433bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(dec, (VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
15434bf215546Sopenharmony_ci        break;
15435bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
15436bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15437bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self(dec, (VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
15438bf215546Sopenharmony_ci        break;
15439bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
15440bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15441bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(dec, (VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
15442bf215546Sopenharmony_ci        break;
15443bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
15444bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15445bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan11Properties_self(dec, (VkPhysicalDeviceVulkan11Properties *)pnext);
15446bf215546Sopenharmony_ci        break;
15447bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
15448bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15449bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan12Properties_self(dec, (VkPhysicalDeviceVulkan12Properties *)pnext);
15450bf215546Sopenharmony_ci        break;
15451bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
15452bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15453bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceVulkan13Properties_self(dec, (VkPhysicalDeviceVulkan13Properties *)pnext);
15454bf215546Sopenharmony_ci        break;
15455bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
15456bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15457bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(dec, (VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
15458bf215546Sopenharmony_ci        break;
15459bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
15460bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15461bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceRobustness2PropertiesEXT_self(dec, (VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
15462bf215546Sopenharmony_ci        break;
15463bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
15464bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15465bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(dec, (VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
15466bf215546Sopenharmony_ci        break;
15467bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
15468bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
15469bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(dec, (VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
15470bf215546Sopenharmony_ci        break;
15471bf215546Sopenharmony_ci    default:
15472bf215546Sopenharmony_ci        assert(false);
15473bf215546Sopenharmony_ci        break;
15474bf215546Sopenharmony_ci    }
15475bf215546Sopenharmony_ci}
15476bf215546Sopenharmony_ci
15477bf215546Sopenharmony_cistatic inline void
15478bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProperties2_self(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties2 *val)
15479bf215546Sopenharmony_ci{
15480bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15481bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProperties(dec, &val->properties);
15482bf215546Sopenharmony_ci}
15483bf215546Sopenharmony_ci
15484bf215546Sopenharmony_cistatic inline void
15485bf215546Sopenharmony_civn_decode_VkPhysicalDeviceProperties2(struct vn_cs_decoder *dec, VkPhysicalDeviceProperties2 *val)
15486bf215546Sopenharmony_ci{
15487bf215546Sopenharmony_ci    VkStructureType stype;
15488bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
15489bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2);
15490bf215546Sopenharmony_ci
15491bf215546Sopenharmony_ci    assert(val->sType == stype);
15492bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProperties2_pnext(dec, val->pNext);
15493bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceProperties2_self(dec, val);
15494bf215546Sopenharmony_ci}
15495bf215546Sopenharmony_ci
15496bf215546Sopenharmony_cistatic inline size_t
15497bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(const void *val)
15498bf215546Sopenharmony_ci{
15499bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
15500bf215546Sopenharmony_ci    size_t size = 0;
15501bf215546Sopenharmony_ci
15502bf215546Sopenharmony_ci    while (pnext) {
15503bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
15504bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
15505bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15506bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15507bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15508bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDriverProperties_self_partial((const VkPhysicalDeviceDriverProperties *)pnext);
15509bf215546Sopenharmony_ci            return size;
15510bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
15511bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15512bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15513bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15514bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceIDProperties_self_partial((const VkPhysicalDeviceIDProperties *)pnext);
15515bf215546Sopenharmony_ci            return size;
15516bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
15517bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15518bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15519bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15520bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMultiviewProperties_self_partial((const VkPhysicalDeviceMultiviewProperties *)pnext);
15521bf215546Sopenharmony_ci            return size;
15522bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
15523bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15524bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15525bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15526bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupProperties_self_partial((const VkPhysicalDeviceSubgroupProperties *)pnext);
15527bf215546Sopenharmony_ci            return size;
15528bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
15529bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15530bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15531bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15532bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDevicePointClippingProperties_self_partial((const VkPhysicalDevicePointClippingProperties *)pnext);
15533bf215546Sopenharmony_ci            return size;
15534bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
15535bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15536bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15537bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15538bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProtectedMemoryProperties_self_partial((const VkPhysicalDeviceProtectedMemoryProperties *)pnext);
15539bf215546Sopenharmony_ci            return size;
15540bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
15541bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15542bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15543bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15544bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial((const VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
15545bf215546Sopenharmony_ci            return size;
15546bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
15547bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
15548bf215546Sopenharmony_ci                break;
15549bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15550bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15551bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15552bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceInlineUniformBlockProperties_self_partial((const VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
15553bf215546Sopenharmony_ci            return size;
15554bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
15555bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15556bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15557bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15558bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance3Properties_self_partial((const VkPhysicalDeviceMaintenance3Properties *)pnext);
15559bf215546Sopenharmony_ci            return size;
15560bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
15561bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
15562bf215546Sopenharmony_ci                break;
15563bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15564bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15565bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15566bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceMaintenance4Properties_self_partial((const VkPhysicalDeviceMaintenance4Properties *)pnext);
15567bf215546Sopenharmony_ci            return size;
15568bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
15569bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15570bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15571bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15572bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceFloatControlsProperties_self_partial((const VkPhysicalDeviceFloatControlsProperties *)pnext);
15573bf215546Sopenharmony_ci            return size;
15574bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
15575bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(102 /* VK_EXT_conservative_rasterization */))
15576bf215546Sopenharmony_ci                break;
15577bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15578bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15579bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15580bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial((const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
15581bf215546Sopenharmony_ci            return size;
15582bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
15583bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15584bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15585bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15586bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDescriptorIndexingProperties_self_partial((const VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
15587bf215546Sopenharmony_ci            return size;
15588bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
15589bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15590bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15591bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15592bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial((const VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
15593bf215546Sopenharmony_ci            return size;
15594bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
15595bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
15596bf215546Sopenharmony_ci                break;
15597bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15598bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15599bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15600bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial((const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
15601bf215546Sopenharmony_ci            return size;
15602bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
15603bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15604bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15605bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15606bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceDepthStencilResolveProperties_self_partial((const VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
15607bf215546Sopenharmony_ci            return size;
15608bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
15609bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
15610bf215546Sopenharmony_ci                break;
15611bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15612bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15613bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15614bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial((const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
15615bf215546Sopenharmony_ci            return size;
15616bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
15617bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
15618bf215546Sopenharmony_ci                break;
15619bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15620bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15621bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15622bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial((const VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
15623bf215546Sopenharmony_ci            return size;
15624bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
15625bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
15626bf215546Sopenharmony_ci                break;
15627bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15628bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15629bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15630bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial((const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
15631bf215546Sopenharmony_ci            return size;
15632bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
15633bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
15634bf215546Sopenharmony_ci                break;
15635bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15636bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15637bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15638bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial((const VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
15639bf215546Sopenharmony_ci            return size;
15640bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
15641bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15642bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15643bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15644bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan11Properties_self_partial((const VkPhysicalDeviceVulkan11Properties *)pnext);
15645bf215546Sopenharmony_ci            return size;
15646bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
15647bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15648bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15649bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15650bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan12Properties_self_partial((const VkPhysicalDeviceVulkan12Properties *)pnext);
15651bf215546Sopenharmony_ci            return size;
15652bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
15653bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
15654bf215546Sopenharmony_ci                break;
15655bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15656bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15657bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15658bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self_partial((const VkPhysicalDeviceVulkan13Properties *)pnext);
15659bf215546Sopenharmony_ci            return size;
15660bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
15661bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
15662bf215546Sopenharmony_ci                break;
15663bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15664bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15665bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15666bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial((const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
15667bf215546Sopenharmony_ci            return size;
15668bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
15669bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
15670bf215546Sopenharmony_ci                break;
15671bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15672bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15673bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15674bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial((const VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
15675bf215546Sopenharmony_ci            return size;
15676bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
15677bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
15678bf215546Sopenharmony_ci                break;
15679bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15680bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15681bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15682bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial((const VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
15683bf215546Sopenharmony_ci            return size;
15684bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
15685bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
15686bf215546Sopenharmony_ci                break;
15687bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
15688bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
15689bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
15690bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial((const VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
15691bf215546Sopenharmony_ci            return size;
15692bf215546Sopenharmony_ci        default:
15693bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
15694bf215546Sopenharmony_ci            break;
15695bf215546Sopenharmony_ci        }
15696bf215546Sopenharmony_ci        pnext = pnext->pNext;
15697bf215546Sopenharmony_ci    }
15698bf215546Sopenharmony_ci
15699bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
15700bf215546Sopenharmony_ci}
15701bf215546Sopenharmony_ci
15702bf215546Sopenharmony_cistatic inline size_t
15703bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2_self_partial(const VkPhysicalDeviceProperties2 *val)
15704bf215546Sopenharmony_ci{
15705bf215546Sopenharmony_ci    size_t size = 0;
15706bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15707bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties_partial(&val->properties);
15708bf215546Sopenharmony_ci    return size;
15709bf215546Sopenharmony_ci}
15710bf215546Sopenharmony_ci
15711bf215546Sopenharmony_cistatic inline size_t
15712bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceProperties2_partial(const VkPhysicalDeviceProperties2 *val)
15713bf215546Sopenharmony_ci{
15714bf215546Sopenharmony_ci    size_t size = 0;
15715bf215546Sopenharmony_ci
15716bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
15717bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(val->pNext);
15718bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceProperties2_self_partial(val);
15719bf215546Sopenharmony_ci
15720bf215546Sopenharmony_ci    return size;
15721bf215546Sopenharmony_ci}
15722bf215546Sopenharmony_ci
15723bf215546Sopenharmony_cistatic inline void
15724bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
15725bf215546Sopenharmony_ci{
15726bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
15727bf215546Sopenharmony_ci
15728bf215546Sopenharmony_ci    while (pnext) {
15729bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
15730bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
15731bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15732bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15733bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15734bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDriverProperties_self_partial(enc, (const VkPhysicalDeviceDriverProperties *)pnext);
15735bf215546Sopenharmony_ci            return;
15736bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
15737bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15738bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15739bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15740bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceIDProperties_self_partial(enc, (const VkPhysicalDeviceIDProperties *)pnext);
15741bf215546Sopenharmony_ci            return;
15742bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
15743bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15744bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15745bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15746bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMultiviewProperties_self_partial(enc, (const VkPhysicalDeviceMultiviewProperties *)pnext);
15747bf215546Sopenharmony_ci            return;
15748bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
15749bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15750bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15751bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15752bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSubgroupProperties_self_partial(enc, (const VkPhysicalDeviceSubgroupProperties *)pnext);
15753bf215546Sopenharmony_ci            return;
15754bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
15755bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15756bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15757bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15758bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevicePointClippingProperties_self_partial(enc, (const VkPhysicalDevicePointClippingProperties *)pnext);
15759bf215546Sopenharmony_ci            return;
15760bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
15761bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15762bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15763bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15764bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProtectedMemoryProperties_self_partial(enc, (const VkPhysicalDeviceProtectedMemoryProperties *)pnext);
15765bf215546Sopenharmony_ci            return;
15766bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
15767bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15768bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15769bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15770bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial(enc, (const VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext);
15771bf215546Sopenharmony_ci            return;
15772bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
15773bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
15774bf215546Sopenharmony_ci                break;
15775bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15776bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15777bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15778bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial(enc, (const VkPhysicalDeviceInlineUniformBlockProperties *)pnext);
15779bf215546Sopenharmony_ci            return;
15780bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
15781bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15782bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15783bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15784bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMaintenance3Properties_self_partial(enc, (const VkPhysicalDeviceMaintenance3Properties *)pnext);
15785bf215546Sopenharmony_ci            return;
15786bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
15787bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(414 /* VK_KHR_maintenance4 */))
15788bf215546Sopenharmony_ci                break;
15789bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15790bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15791bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15792bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceMaintenance4Properties_self_partial(enc, (const VkPhysicalDeviceMaintenance4Properties *)pnext);
15793bf215546Sopenharmony_ci            return;
15794bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
15795bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15796bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15797bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15798bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceFloatControlsProperties_self_partial(enc, (const VkPhysicalDeviceFloatControlsProperties *)pnext);
15799bf215546Sopenharmony_ci            return;
15800bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
15801bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(102 /* VK_EXT_conservative_rasterization */))
15802bf215546Sopenharmony_ci                break;
15803bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15804bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15805bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15806bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceConservativeRasterizationPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)pnext);
15807bf215546Sopenharmony_ci            return;
15808bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
15809bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15810bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15811bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15812bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDescriptorIndexingProperties_self_partial(enc, (const VkPhysicalDeviceDescriptorIndexingProperties *)pnext);
15813bf215546Sopenharmony_ci            return;
15814bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
15815bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15816bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15817bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15818bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self_partial(enc, (const VkPhysicalDeviceTimelineSemaphoreProperties *)pnext);
15819bf215546Sopenharmony_ci            return;
15820bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
15821bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
15822bf215546Sopenharmony_ci                break;
15823bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15824bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15825bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15826bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)pnext);
15827bf215546Sopenharmony_ci            return;
15828bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
15829bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15830bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15831bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15832bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self_partial(enc, (const VkPhysicalDeviceDepthStencilResolveProperties *)pnext);
15833bf215546Sopenharmony_ci            return;
15834bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
15835bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
15836bf215546Sopenharmony_ci                break;
15837bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15838bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15839bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15840bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext);
15841bf215546Sopenharmony_ci            return;
15842bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
15843bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(282 /* VK_EXT_texel_buffer_alignment */))
15844bf215546Sopenharmony_ci                break;
15845bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15846bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15847bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15848bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial(enc, (const VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext);
15849bf215546Sopenharmony_ci            return;
15850bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
15851bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
15852bf215546Sopenharmony_ci                break;
15853bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15854bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15855bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15856bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial(enc, (const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
15857bf215546Sopenharmony_ci            return;
15858bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
15859bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
15860bf215546Sopenharmony_ci                break;
15861bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15862bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15863bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15864bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
15865bf215546Sopenharmony_ci            return;
15866bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
15867bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15868bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15869bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15870bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan11Properties_self_partial(enc, (const VkPhysicalDeviceVulkan11Properties *)pnext);
15871bf215546Sopenharmony_ci            return;
15872bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
15873bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15874bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15875bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15876bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan12Properties_self_partial(enc, (const VkPhysicalDeviceVulkan12Properties *)pnext);
15877bf215546Sopenharmony_ci            return;
15878bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
15879bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_api_version(VK_API_VERSION_1_3))
15880bf215546Sopenharmony_ci                break;
15881bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15882bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15883bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15884bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceVulkan13Properties_self_partial(enc, (const VkPhysicalDeviceVulkan13Properties *)pnext);
15885bf215546Sopenharmony_ci            return;
15886bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
15887bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
15888bf215546Sopenharmony_ci                break;
15889bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15890bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15891bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15892bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
15893bf215546Sopenharmony_ci            return;
15894bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
15895bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(287 /* VK_EXT_robustness2 */))
15896bf215546Sopenharmony_ci                break;
15897bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15898bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15899bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15900bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceRobustness2PropertiesEXT_self_partial(enc, (const VkPhysicalDeviceRobustness2PropertiesEXT *)pnext);
15901bf215546Sopenharmony_ci            return;
15902bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
15903bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
15904bf215546Sopenharmony_ci                break;
15905bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15906bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15907bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15908bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
15909bf215546Sopenharmony_ci            return;
15910bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
15911bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(281 /* VK_KHR_shader_integer_dot_product */))
15912bf215546Sopenharmony_ci                break;
15913bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
15914bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
15915bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
15916bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial(enc, (const VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext);
15917bf215546Sopenharmony_ci            return;
15918bf215546Sopenharmony_ci        default:
15919bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
15920bf215546Sopenharmony_ci            break;
15921bf215546Sopenharmony_ci        }
15922bf215546Sopenharmony_ci        pnext = pnext->pNext;
15923bf215546Sopenharmony_ci    }
15924bf215546Sopenharmony_ci
15925bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
15926bf215546Sopenharmony_ci}
15927bf215546Sopenharmony_ci
15928bf215546Sopenharmony_cistatic inline void
15929bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProperties2_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties2 *val)
15930bf215546Sopenharmony_ci{
15931bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15932bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProperties_partial(enc, &val->properties);
15933bf215546Sopenharmony_ci}
15934bf215546Sopenharmony_ci
15935bf215546Sopenharmony_cistatic inline void
15936bf215546Sopenharmony_civn_encode_VkPhysicalDeviceProperties2_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceProperties2 *val)
15937bf215546Sopenharmony_ci{
15938bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2);
15939bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 });
15940bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, val->pNext);
15941bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceProperties2_self_partial(enc, val);
15942bf215546Sopenharmony_ci}
15943bf215546Sopenharmony_ci
15944bf215546Sopenharmony_ci/* struct VkDrmFormatModifierPropertiesEXT */
15945bf215546Sopenharmony_ci
15946bf215546Sopenharmony_cistatic inline size_t
15947bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesEXT(const VkDrmFormatModifierPropertiesEXT *val)
15948bf215546Sopenharmony_ci{
15949bf215546Sopenharmony_ci    size_t size = 0;
15950bf215546Sopenharmony_ci    size += vn_sizeof_uint64_t(&val->drmFormatModifier);
15951bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->drmFormatModifierPlaneCount);
15952bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->drmFormatModifierTilingFeatures);
15953bf215546Sopenharmony_ci    return size;
15954bf215546Sopenharmony_ci}
15955bf215546Sopenharmony_ci
15956bf215546Sopenharmony_cistatic inline void
15957bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesEXT(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesEXT *val)
15958bf215546Sopenharmony_ci{
15959bf215546Sopenharmony_ci    vn_decode_uint64_t(dec, &val->drmFormatModifier);
15960bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->drmFormatModifierPlaneCount);
15961bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->drmFormatModifierTilingFeatures);
15962bf215546Sopenharmony_ci}
15963bf215546Sopenharmony_ci
15964bf215546Sopenharmony_cistatic inline size_t
15965bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesEXT_partial(const VkDrmFormatModifierPropertiesEXT *val)
15966bf215546Sopenharmony_ci{
15967bf215546Sopenharmony_ci    size_t size = 0;
15968bf215546Sopenharmony_ci    /* skip val->drmFormatModifier */
15969bf215546Sopenharmony_ci    /* skip val->drmFormatModifierPlaneCount */
15970bf215546Sopenharmony_ci    /* skip val->drmFormatModifierTilingFeatures */
15971bf215546Sopenharmony_ci    return size;
15972bf215546Sopenharmony_ci}
15973bf215546Sopenharmony_ci
15974bf215546Sopenharmony_cistatic inline void
15975bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesEXT *val)
15976bf215546Sopenharmony_ci{
15977bf215546Sopenharmony_ci    /* skip val->drmFormatModifier */
15978bf215546Sopenharmony_ci    /* skip val->drmFormatModifierPlaneCount */
15979bf215546Sopenharmony_ci    /* skip val->drmFormatModifierTilingFeatures */
15980bf215546Sopenharmony_ci}
15981bf215546Sopenharmony_ci
15982bf215546Sopenharmony_ci/* struct VkDrmFormatModifierPropertiesListEXT chain */
15983bf215546Sopenharmony_ci
15984bf215546Sopenharmony_cistatic inline size_t
15985bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT_pnext(const void *val)
15986bf215546Sopenharmony_ci{
15987bf215546Sopenharmony_ci    /* no known/supported struct */
15988bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
15989bf215546Sopenharmony_ci}
15990bf215546Sopenharmony_ci
15991bf215546Sopenharmony_cistatic inline size_t
15992bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT_self(const VkDrmFormatModifierPropertiesListEXT *val)
15993bf215546Sopenharmony_ci{
15994bf215546Sopenharmony_ci    size_t size = 0;
15995bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
15996bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->drmFormatModifierCount);
15997bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
15998bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->drmFormatModifierCount);
15999bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16000bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesEXT(&val->pDrmFormatModifierProperties[i]);
16001bf215546Sopenharmony_ci    } else {
16002bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
16003bf215546Sopenharmony_ci    }
16004bf215546Sopenharmony_ci    return size;
16005bf215546Sopenharmony_ci}
16006bf215546Sopenharmony_ci
16007bf215546Sopenharmony_cistatic inline size_t
16008bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT(const VkDrmFormatModifierPropertiesListEXT *val)
16009bf215546Sopenharmony_ci{
16010bf215546Sopenharmony_ci    size_t size = 0;
16011bf215546Sopenharmony_ci
16012bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16013bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_pnext(val->pNext);
16014bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_self(val);
16015bf215546Sopenharmony_ci
16016bf215546Sopenharmony_ci    return size;
16017bf215546Sopenharmony_ci}
16018bf215546Sopenharmony_ci
16019bf215546Sopenharmony_cistatic inline void
16020bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesListEXT_pnext(struct vn_cs_decoder *dec, const void *val)
16021bf215546Sopenharmony_ci{
16022bf215546Sopenharmony_ci    /* no known/supported struct */
16023bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
16024bf215546Sopenharmony_ci        assert(false);
16025bf215546Sopenharmony_ci}
16026bf215546Sopenharmony_ci
16027bf215546Sopenharmony_cistatic inline void
16028bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesListEXT_self(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesListEXT *val)
16029bf215546Sopenharmony_ci{
16030bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16031bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->drmFormatModifierCount);
16032bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
16033bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, val->drmFormatModifierCount);
16034bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
16035bf215546Sopenharmony_ci            vn_decode_VkDrmFormatModifierPropertiesEXT(dec, &val->pDrmFormatModifierProperties[i]);
16036bf215546Sopenharmony_ci    } else {
16037bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
16038bf215546Sopenharmony_ci        val->pDrmFormatModifierProperties = NULL;
16039bf215546Sopenharmony_ci    }
16040bf215546Sopenharmony_ci}
16041bf215546Sopenharmony_ci
16042bf215546Sopenharmony_cistatic inline void
16043bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesListEXT(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesListEXT *val)
16044bf215546Sopenharmony_ci{
16045bf215546Sopenharmony_ci    VkStructureType stype;
16046bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16047bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT);
16048bf215546Sopenharmony_ci
16049bf215546Sopenharmony_ci    assert(val->sType == stype);
16050bf215546Sopenharmony_ci    vn_decode_VkDrmFormatModifierPropertiesListEXT_pnext(dec, val->pNext);
16051bf215546Sopenharmony_ci    vn_decode_VkDrmFormatModifierPropertiesListEXT_self(dec, val);
16052bf215546Sopenharmony_ci}
16053bf215546Sopenharmony_ci
16054bf215546Sopenharmony_cistatic inline size_t
16055bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT_pnext_partial(const void *val)
16056bf215546Sopenharmony_ci{
16057bf215546Sopenharmony_ci    /* no known/supported struct */
16058bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16059bf215546Sopenharmony_ci}
16060bf215546Sopenharmony_ci
16061bf215546Sopenharmony_cistatic inline size_t
16062bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT_self_partial(const VkDrmFormatModifierPropertiesListEXT *val)
16063bf215546Sopenharmony_ci{
16064bf215546Sopenharmony_ci    size_t size = 0;
16065bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16066bf215546Sopenharmony_ci    /* WA1: size += vn_sizeof_uint32_t(&val->drmFormatModifierCount) */(void)0;
16067bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
16068bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->drmFormatModifierCount);
16069bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16070bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesEXT_partial(&val->pDrmFormatModifierProperties[i]);
16071bf215546Sopenharmony_ci    } else {
16072bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
16073bf215546Sopenharmony_ci    }
16074bf215546Sopenharmony_ci    return size;
16075bf215546Sopenharmony_ci}
16076bf215546Sopenharmony_ci
16077bf215546Sopenharmony_cistatic inline size_t
16078bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesListEXT_partial(const VkDrmFormatModifierPropertiesListEXT *val)
16079bf215546Sopenharmony_ci{
16080bf215546Sopenharmony_ci    size_t size = 0;
16081bf215546Sopenharmony_ci
16082bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16083bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_pnext_partial(val->pNext);
16084bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_self_partial(val);
16085bf215546Sopenharmony_ci
16086bf215546Sopenharmony_ci    return size;
16087bf215546Sopenharmony_ci}
16088bf215546Sopenharmony_ci
16089bf215546Sopenharmony_cistatic inline void
16090bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesListEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
16091bf215546Sopenharmony_ci{
16092bf215546Sopenharmony_ci    /* no known/supported struct */
16093bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16094bf215546Sopenharmony_ci}
16095bf215546Sopenharmony_ci
16096bf215546Sopenharmony_cistatic inline void
16097bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesListEXT_self_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesListEXT *val)
16098bf215546Sopenharmony_ci{
16099bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16100bf215546Sopenharmony_ci    /* WA1: vn_encode_uint32_t(enc, &val->drmFormatModifierCount) */(void)0;
16101bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
16102bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->drmFormatModifierCount);
16103bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16104bf215546Sopenharmony_ci            vn_encode_VkDrmFormatModifierPropertiesEXT_partial(enc, &val->pDrmFormatModifierProperties[i]);
16105bf215546Sopenharmony_ci    } else {
16106bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
16107bf215546Sopenharmony_ci    }
16108bf215546Sopenharmony_ci}
16109bf215546Sopenharmony_ci
16110bf215546Sopenharmony_cistatic inline void
16111bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesListEXT_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesListEXT *val)
16112bf215546Sopenharmony_ci{
16113bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT);
16114bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT });
16115bf215546Sopenharmony_ci    vn_encode_VkDrmFormatModifierPropertiesListEXT_pnext_partial(enc, val->pNext);
16116bf215546Sopenharmony_ci    vn_encode_VkDrmFormatModifierPropertiesListEXT_self_partial(enc, val);
16117bf215546Sopenharmony_ci}
16118bf215546Sopenharmony_ci
16119bf215546Sopenharmony_ci/* struct VkFormatProperties3 chain */
16120bf215546Sopenharmony_ci
16121bf215546Sopenharmony_cistatic inline size_t
16122bf215546Sopenharmony_civn_sizeof_VkFormatProperties3_pnext(const void *val)
16123bf215546Sopenharmony_ci{
16124bf215546Sopenharmony_ci    /* no known/supported struct */
16125bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16126bf215546Sopenharmony_ci}
16127bf215546Sopenharmony_ci
16128bf215546Sopenharmony_cistatic inline size_t
16129bf215546Sopenharmony_civn_sizeof_VkFormatProperties3_self(const VkFormatProperties3 *val)
16130bf215546Sopenharmony_ci{
16131bf215546Sopenharmony_ci    size_t size = 0;
16132bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16133bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags64(&val->linearTilingFeatures);
16134bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags64(&val->optimalTilingFeatures);
16135bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags64(&val->bufferFeatures);
16136bf215546Sopenharmony_ci    return size;
16137bf215546Sopenharmony_ci}
16138bf215546Sopenharmony_ci
16139bf215546Sopenharmony_cistatic inline size_t
16140bf215546Sopenharmony_civn_sizeof_VkFormatProperties3(const VkFormatProperties3 *val)
16141bf215546Sopenharmony_ci{
16142bf215546Sopenharmony_ci    size_t size = 0;
16143bf215546Sopenharmony_ci
16144bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16145bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties3_pnext(val->pNext);
16146bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties3_self(val);
16147bf215546Sopenharmony_ci
16148bf215546Sopenharmony_ci    return size;
16149bf215546Sopenharmony_ci}
16150bf215546Sopenharmony_ci
16151bf215546Sopenharmony_cistatic inline void
16152bf215546Sopenharmony_civn_decode_VkFormatProperties3_pnext(struct vn_cs_decoder *dec, const void *val)
16153bf215546Sopenharmony_ci{
16154bf215546Sopenharmony_ci    /* no known/supported struct */
16155bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
16156bf215546Sopenharmony_ci        assert(false);
16157bf215546Sopenharmony_ci}
16158bf215546Sopenharmony_ci
16159bf215546Sopenharmony_cistatic inline void
16160bf215546Sopenharmony_civn_decode_VkFormatProperties3_self(struct vn_cs_decoder *dec, VkFormatProperties3 *val)
16161bf215546Sopenharmony_ci{
16162bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16163bf215546Sopenharmony_ci    vn_decode_VkFlags64(dec, &val->linearTilingFeatures);
16164bf215546Sopenharmony_ci    vn_decode_VkFlags64(dec, &val->optimalTilingFeatures);
16165bf215546Sopenharmony_ci    vn_decode_VkFlags64(dec, &val->bufferFeatures);
16166bf215546Sopenharmony_ci}
16167bf215546Sopenharmony_ci
16168bf215546Sopenharmony_cistatic inline void
16169bf215546Sopenharmony_civn_decode_VkFormatProperties3(struct vn_cs_decoder *dec, VkFormatProperties3 *val)
16170bf215546Sopenharmony_ci{
16171bf215546Sopenharmony_ci    VkStructureType stype;
16172bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16173bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3);
16174bf215546Sopenharmony_ci
16175bf215546Sopenharmony_ci    assert(val->sType == stype);
16176bf215546Sopenharmony_ci    vn_decode_VkFormatProperties3_pnext(dec, val->pNext);
16177bf215546Sopenharmony_ci    vn_decode_VkFormatProperties3_self(dec, val);
16178bf215546Sopenharmony_ci}
16179bf215546Sopenharmony_ci
16180bf215546Sopenharmony_cistatic inline size_t
16181bf215546Sopenharmony_civn_sizeof_VkFormatProperties3_pnext_partial(const void *val)
16182bf215546Sopenharmony_ci{
16183bf215546Sopenharmony_ci    /* no known/supported struct */
16184bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16185bf215546Sopenharmony_ci}
16186bf215546Sopenharmony_ci
16187bf215546Sopenharmony_cistatic inline size_t
16188bf215546Sopenharmony_civn_sizeof_VkFormatProperties3_self_partial(const VkFormatProperties3 *val)
16189bf215546Sopenharmony_ci{
16190bf215546Sopenharmony_ci    size_t size = 0;
16191bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16192bf215546Sopenharmony_ci    /* skip val->linearTilingFeatures */
16193bf215546Sopenharmony_ci    /* skip val->optimalTilingFeatures */
16194bf215546Sopenharmony_ci    /* skip val->bufferFeatures */
16195bf215546Sopenharmony_ci    return size;
16196bf215546Sopenharmony_ci}
16197bf215546Sopenharmony_ci
16198bf215546Sopenharmony_cistatic inline size_t
16199bf215546Sopenharmony_civn_sizeof_VkFormatProperties3_partial(const VkFormatProperties3 *val)
16200bf215546Sopenharmony_ci{
16201bf215546Sopenharmony_ci    size_t size = 0;
16202bf215546Sopenharmony_ci
16203bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16204bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties3_pnext_partial(val->pNext);
16205bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties3_self_partial(val);
16206bf215546Sopenharmony_ci
16207bf215546Sopenharmony_ci    return size;
16208bf215546Sopenharmony_ci}
16209bf215546Sopenharmony_ci
16210bf215546Sopenharmony_cistatic inline void
16211bf215546Sopenharmony_civn_encode_VkFormatProperties3_pnext_partial(struct vn_cs_encoder *enc, const void *val)
16212bf215546Sopenharmony_ci{
16213bf215546Sopenharmony_ci    /* no known/supported struct */
16214bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16215bf215546Sopenharmony_ci}
16216bf215546Sopenharmony_ci
16217bf215546Sopenharmony_cistatic inline void
16218bf215546Sopenharmony_civn_encode_VkFormatProperties3_self_partial(struct vn_cs_encoder *enc, const VkFormatProperties3 *val)
16219bf215546Sopenharmony_ci{
16220bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16221bf215546Sopenharmony_ci    /* skip val->linearTilingFeatures */
16222bf215546Sopenharmony_ci    /* skip val->optimalTilingFeatures */
16223bf215546Sopenharmony_ci    /* skip val->bufferFeatures */
16224bf215546Sopenharmony_ci}
16225bf215546Sopenharmony_ci
16226bf215546Sopenharmony_cistatic inline void
16227bf215546Sopenharmony_civn_encode_VkFormatProperties3_partial(struct vn_cs_encoder *enc, const VkFormatProperties3 *val)
16228bf215546Sopenharmony_ci{
16229bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3);
16230bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 });
16231bf215546Sopenharmony_ci    vn_encode_VkFormatProperties3_pnext_partial(enc, val->pNext);
16232bf215546Sopenharmony_ci    vn_encode_VkFormatProperties3_self_partial(enc, val);
16233bf215546Sopenharmony_ci}
16234bf215546Sopenharmony_ci
16235bf215546Sopenharmony_ci/* struct VkDrmFormatModifierProperties2EXT */
16236bf215546Sopenharmony_ci
16237bf215546Sopenharmony_cistatic inline size_t
16238bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierProperties2EXT(const VkDrmFormatModifierProperties2EXT *val)
16239bf215546Sopenharmony_ci{
16240bf215546Sopenharmony_ci    size_t size = 0;
16241bf215546Sopenharmony_ci    size += vn_sizeof_uint64_t(&val->drmFormatModifier);
16242bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->drmFormatModifierPlaneCount);
16243bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags64(&val->drmFormatModifierTilingFeatures);
16244bf215546Sopenharmony_ci    return size;
16245bf215546Sopenharmony_ci}
16246bf215546Sopenharmony_ci
16247bf215546Sopenharmony_cistatic inline void
16248bf215546Sopenharmony_civn_decode_VkDrmFormatModifierProperties2EXT(struct vn_cs_decoder *dec, VkDrmFormatModifierProperties2EXT *val)
16249bf215546Sopenharmony_ci{
16250bf215546Sopenharmony_ci    vn_decode_uint64_t(dec, &val->drmFormatModifier);
16251bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->drmFormatModifierPlaneCount);
16252bf215546Sopenharmony_ci    vn_decode_VkFlags64(dec, &val->drmFormatModifierTilingFeatures);
16253bf215546Sopenharmony_ci}
16254bf215546Sopenharmony_ci
16255bf215546Sopenharmony_cistatic inline size_t
16256bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierProperties2EXT_partial(const VkDrmFormatModifierProperties2EXT *val)
16257bf215546Sopenharmony_ci{
16258bf215546Sopenharmony_ci    size_t size = 0;
16259bf215546Sopenharmony_ci    /* skip val->drmFormatModifier */
16260bf215546Sopenharmony_ci    /* skip val->drmFormatModifierPlaneCount */
16261bf215546Sopenharmony_ci    /* skip val->drmFormatModifierTilingFeatures */
16262bf215546Sopenharmony_ci    return size;
16263bf215546Sopenharmony_ci}
16264bf215546Sopenharmony_ci
16265bf215546Sopenharmony_cistatic inline void
16266bf215546Sopenharmony_civn_encode_VkDrmFormatModifierProperties2EXT_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierProperties2EXT *val)
16267bf215546Sopenharmony_ci{
16268bf215546Sopenharmony_ci    /* skip val->drmFormatModifier */
16269bf215546Sopenharmony_ci    /* skip val->drmFormatModifierPlaneCount */
16270bf215546Sopenharmony_ci    /* skip val->drmFormatModifierTilingFeatures */
16271bf215546Sopenharmony_ci}
16272bf215546Sopenharmony_ci
16273bf215546Sopenharmony_ci/* struct VkDrmFormatModifierPropertiesList2EXT chain */
16274bf215546Sopenharmony_ci
16275bf215546Sopenharmony_cistatic inline size_t
16276bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT_pnext(const void *val)
16277bf215546Sopenharmony_ci{
16278bf215546Sopenharmony_ci    /* no known/supported struct */
16279bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16280bf215546Sopenharmony_ci}
16281bf215546Sopenharmony_ci
16282bf215546Sopenharmony_cistatic inline size_t
16283bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self(const VkDrmFormatModifierPropertiesList2EXT *val)
16284bf215546Sopenharmony_ci{
16285bf215546Sopenharmony_ci    size_t size = 0;
16286bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16287bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->drmFormatModifierCount);
16288bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
16289bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->drmFormatModifierCount);
16290bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16291bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierProperties2EXT(&val->pDrmFormatModifierProperties[i]);
16292bf215546Sopenharmony_ci    } else {
16293bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
16294bf215546Sopenharmony_ci    }
16295bf215546Sopenharmony_ci    return size;
16296bf215546Sopenharmony_ci}
16297bf215546Sopenharmony_ci
16298bf215546Sopenharmony_cistatic inline size_t
16299bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT(const VkDrmFormatModifierPropertiesList2EXT *val)
16300bf215546Sopenharmony_ci{
16301bf215546Sopenharmony_ci    size_t size = 0;
16302bf215546Sopenharmony_ci
16303bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16304bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_pnext(val->pNext);
16305bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self(val);
16306bf215546Sopenharmony_ci
16307bf215546Sopenharmony_ci    return size;
16308bf215546Sopenharmony_ci}
16309bf215546Sopenharmony_ci
16310bf215546Sopenharmony_cistatic inline void
16311bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext(struct vn_cs_decoder *dec, const void *val)
16312bf215546Sopenharmony_ci{
16313bf215546Sopenharmony_ci    /* no known/supported struct */
16314bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
16315bf215546Sopenharmony_ci        assert(false);
16316bf215546Sopenharmony_ci}
16317bf215546Sopenharmony_ci
16318bf215546Sopenharmony_cistatic inline void
16319bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesList2EXT_self(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val)
16320bf215546Sopenharmony_ci{
16321bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16322bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->drmFormatModifierCount);
16323bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
16324bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, val->drmFormatModifierCount);
16325bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
16326bf215546Sopenharmony_ci            vn_decode_VkDrmFormatModifierProperties2EXT(dec, &val->pDrmFormatModifierProperties[i]);
16327bf215546Sopenharmony_ci    } else {
16328bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
16329bf215546Sopenharmony_ci        val->pDrmFormatModifierProperties = NULL;
16330bf215546Sopenharmony_ci    }
16331bf215546Sopenharmony_ci}
16332bf215546Sopenharmony_ci
16333bf215546Sopenharmony_cistatic inline void
16334bf215546Sopenharmony_civn_decode_VkDrmFormatModifierPropertiesList2EXT(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val)
16335bf215546Sopenharmony_ci{
16336bf215546Sopenharmony_ci    VkStructureType stype;
16337bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16338bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT);
16339bf215546Sopenharmony_ci
16340bf215546Sopenharmony_ci    assert(val->sType == stype);
16341bf215546Sopenharmony_ci    vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext(dec, val->pNext);
16342bf215546Sopenharmony_ci    vn_decode_VkDrmFormatModifierPropertiesList2EXT_self(dec, val);
16343bf215546Sopenharmony_ci}
16344bf215546Sopenharmony_ci
16345bf215546Sopenharmony_cistatic inline size_t
16346bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT_pnext_partial(const void *val)
16347bf215546Sopenharmony_ci{
16348bf215546Sopenharmony_ci    /* no known/supported struct */
16349bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16350bf215546Sopenharmony_ci}
16351bf215546Sopenharmony_ci
16352bf215546Sopenharmony_cistatic inline size_t
16353bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self_partial(const VkDrmFormatModifierPropertiesList2EXT *val)
16354bf215546Sopenharmony_ci{
16355bf215546Sopenharmony_ci    size_t size = 0;
16356bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16357bf215546Sopenharmony_ci    /* WA1: size += vn_sizeof_uint32_t(&val->drmFormatModifierCount) */(void)0;
16358bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
16359bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->drmFormatModifierCount);
16360bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16361bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierProperties2EXT_partial(&val->pDrmFormatModifierProperties[i]);
16362bf215546Sopenharmony_ci    } else {
16363bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
16364bf215546Sopenharmony_ci    }
16365bf215546Sopenharmony_ci    return size;
16366bf215546Sopenharmony_ci}
16367bf215546Sopenharmony_ci
16368bf215546Sopenharmony_cistatic inline size_t
16369bf215546Sopenharmony_civn_sizeof_VkDrmFormatModifierPropertiesList2EXT_partial(const VkDrmFormatModifierPropertiesList2EXT *val)
16370bf215546Sopenharmony_ci{
16371bf215546Sopenharmony_ci    size_t size = 0;
16372bf215546Sopenharmony_ci
16373bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16374bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_pnext_partial(val->pNext);
16375bf215546Sopenharmony_ci    size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self_partial(val);
16376bf215546Sopenharmony_ci
16377bf215546Sopenharmony_ci    return size;
16378bf215546Sopenharmony_ci}
16379bf215546Sopenharmony_ci
16380bf215546Sopenharmony_cistatic inline void
16381bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)
16382bf215546Sopenharmony_ci{
16383bf215546Sopenharmony_ci    /* no known/supported struct */
16384bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16385bf215546Sopenharmony_ci}
16386bf215546Sopenharmony_ci
16387bf215546Sopenharmony_cistatic inline void
16388bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesList2EXT_self_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val)
16389bf215546Sopenharmony_ci{
16390bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16391bf215546Sopenharmony_ci    /* WA1: vn_encode_uint32_t(enc, &val->drmFormatModifierCount) */(void)0;
16392bf215546Sopenharmony_ci    if (val->pDrmFormatModifierProperties) {
16393bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->drmFormatModifierCount);
16394bf215546Sopenharmony_ci        for (uint32_t i = 0; i < val->drmFormatModifierCount; i++)
16395bf215546Sopenharmony_ci            vn_encode_VkDrmFormatModifierProperties2EXT_partial(enc, &val->pDrmFormatModifierProperties[i]);
16396bf215546Sopenharmony_ci    } else {
16397bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
16398bf215546Sopenharmony_ci    }
16399bf215546Sopenharmony_ci}
16400bf215546Sopenharmony_ci
16401bf215546Sopenharmony_cistatic inline void
16402bf215546Sopenharmony_civn_encode_VkDrmFormatModifierPropertiesList2EXT_partial(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val)
16403bf215546Sopenharmony_ci{
16404bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT);
16405bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT });
16406bf215546Sopenharmony_ci    vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial(enc, val->pNext);
16407bf215546Sopenharmony_ci    vn_encode_VkDrmFormatModifierPropertiesList2EXT_self_partial(enc, val);
16408bf215546Sopenharmony_ci}
16409bf215546Sopenharmony_ci
16410bf215546Sopenharmony_ci/* struct VkFormatProperties2 chain */
16411bf215546Sopenharmony_ci
16412bf215546Sopenharmony_cistatic inline size_t
16413bf215546Sopenharmony_civn_sizeof_VkFormatProperties2_pnext(const void *val)
16414bf215546Sopenharmony_ci{
16415bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
16416bf215546Sopenharmony_ci    size_t size = 0;
16417bf215546Sopenharmony_ci
16418bf215546Sopenharmony_ci    while (pnext) {
16419bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
16420bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
16421bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
16422bf215546Sopenharmony_ci                break;
16423bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16424bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16425bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext(pnext->pNext);
16426bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_self((const VkDrmFormatModifierPropertiesListEXT *)pnext);
16427bf215546Sopenharmony_ci            return size;
16428bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
16429bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */))
16430bf215546Sopenharmony_ci                break;
16431bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16432bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16433bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext(pnext->pNext);
16434bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties3_self((const VkFormatProperties3 *)pnext);
16435bf215546Sopenharmony_ci            return size;
16436bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
16437bf215546Sopenharmony_ci            if (!(vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */) && vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */)))
16438bf215546Sopenharmony_ci                break;
16439bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16440bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16441bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext(pnext->pNext);
16442bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self((const VkDrmFormatModifierPropertiesList2EXT *)pnext);
16443bf215546Sopenharmony_ci            return size;
16444bf215546Sopenharmony_ci        default:
16445bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
16446bf215546Sopenharmony_ci            break;
16447bf215546Sopenharmony_ci        }
16448bf215546Sopenharmony_ci        pnext = pnext->pNext;
16449bf215546Sopenharmony_ci    }
16450bf215546Sopenharmony_ci
16451bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16452bf215546Sopenharmony_ci}
16453bf215546Sopenharmony_ci
16454bf215546Sopenharmony_cistatic inline size_t
16455bf215546Sopenharmony_civn_sizeof_VkFormatProperties2_self(const VkFormatProperties2 *val)
16456bf215546Sopenharmony_ci{
16457bf215546Sopenharmony_ci    size_t size = 0;
16458bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16459bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties(&val->formatProperties);
16460bf215546Sopenharmony_ci    return size;
16461bf215546Sopenharmony_ci}
16462bf215546Sopenharmony_ci
16463bf215546Sopenharmony_cistatic inline size_t
16464bf215546Sopenharmony_civn_sizeof_VkFormatProperties2(const VkFormatProperties2 *val)
16465bf215546Sopenharmony_ci{
16466bf215546Sopenharmony_ci    size_t size = 0;
16467bf215546Sopenharmony_ci
16468bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16469bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties2_pnext(val->pNext);
16470bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties2_self(val);
16471bf215546Sopenharmony_ci
16472bf215546Sopenharmony_ci    return size;
16473bf215546Sopenharmony_ci}
16474bf215546Sopenharmony_ci
16475bf215546Sopenharmony_cistatic inline void
16476bf215546Sopenharmony_civn_decode_VkFormatProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
16477bf215546Sopenharmony_ci{
16478bf215546Sopenharmony_ci    VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;
16479bf215546Sopenharmony_ci    VkStructureType stype;
16480bf215546Sopenharmony_ci
16481bf215546Sopenharmony_ci    if (!vn_decode_simple_pointer(dec))
16482bf215546Sopenharmony_ci        return;
16483bf215546Sopenharmony_ci
16484bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16485bf215546Sopenharmony_ci    while (true) {
16486bf215546Sopenharmony_ci        assert(pnext);
16487bf215546Sopenharmony_ci        if (pnext->sType == stype)
16488bf215546Sopenharmony_ci            break;
16489bf215546Sopenharmony_ci
16490bf215546Sopenharmony_ci        pnext = pnext->pNext;
16491bf215546Sopenharmony_ci    }
16492bf215546Sopenharmony_ci
16493bf215546Sopenharmony_ci    switch ((int32_t)pnext->sType) {
16494bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
16495bf215546Sopenharmony_ci        vn_decode_VkFormatProperties2_pnext(dec, pnext->pNext);
16496bf215546Sopenharmony_ci        vn_decode_VkDrmFormatModifierPropertiesListEXT_self(dec, (VkDrmFormatModifierPropertiesListEXT *)pnext);
16497bf215546Sopenharmony_ci        break;
16498bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
16499bf215546Sopenharmony_ci        vn_decode_VkFormatProperties2_pnext(dec, pnext->pNext);
16500bf215546Sopenharmony_ci        vn_decode_VkFormatProperties3_self(dec, (VkFormatProperties3 *)pnext);
16501bf215546Sopenharmony_ci        break;
16502bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
16503bf215546Sopenharmony_ci        vn_decode_VkFormatProperties2_pnext(dec, pnext->pNext);
16504bf215546Sopenharmony_ci        vn_decode_VkDrmFormatModifierPropertiesList2EXT_self(dec, (VkDrmFormatModifierPropertiesList2EXT *)pnext);
16505bf215546Sopenharmony_ci        break;
16506bf215546Sopenharmony_ci    default:
16507bf215546Sopenharmony_ci        assert(false);
16508bf215546Sopenharmony_ci        break;
16509bf215546Sopenharmony_ci    }
16510bf215546Sopenharmony_ci}
16511bf215546Sopenharmony_ci
16512bf215546Sopenharmony_cistatic inline void
16513bf215546Sopenharmony_civn_decode_VkFormatProperties2_self(struct vn_cs_decoder *dec, VkFormatProperties2 *val)
16514bf215546Sopenharmony_ci{
16515bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16516bf215546Sopenharmony_ci    vn_decode_VkFormatProperties(dec, &val->formatProperties);
16517bf215546Sopenharmony_ci}
16518bf215546Sopenharmony_ci
16519bf215546Sopenharmony_cistatic inline void
16520bf215546Sopenharmony_civn_decode_VkFormatProperties2(struct vn_cs_decoder *dec, VkFormatProperties2 *val)
16521bf215546Sopenharmony_ci{
16522bf215546Sopenharmony_ci    VkStructureType stype;
16523bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16524bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2);
16525bf215546Sopenharmony_ci
16526bf215546Sopenharmony_ci    assert(val->sType == stype);
16527bf215546Sopenharmony_ci    vn_decode_VkFormatProperties2_pnext(dec, val->pNext);
16528bf215546Sopenharmony_ci    vn_decode_VkFormatProperties2_self(dec, val);
16529bf215546Sopenharmony_ci}
16530bf215546Sopenharmony_ci
16531bf215546Sopenharmony_cistatic inline size_t
16532bf215546Sopenharmony_civn_sizeof_VkFormatProperties2_pnext_partial(const void *val)
16533bf215546Sopenharmony_ci{
16534bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
16535bf215546Sopenharmony_ci    size_t size = 0;
16536bf215546Sopenharmony_ci
16537bf215546Sopenharmony_ci    while (pnext) {
16538bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
16539bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
16540bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
16541bf215546Sopenharmony_ci                break;
16542bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16543bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16544bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext_partial(pnext->pNext);
16545bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesListEXT_self_partial((const VkDrmFormatModifierPropertiesListEXT *)pnext);
16546bf215546Sopenharmony_ci            return size;
16547bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
16548bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */))
16549bf215546Sopenharmony_ci                break;
16550bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16551bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16552bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext_partial(pnext->pNext);
16553bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties3_self_partial((const VkFormatProperties3 *)pnext);
16554bf215546Sopenharmony_ci            return size;
16555bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
16556bf215546Sopenharmony_ci            if (!(vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */) && vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */)))
16557bf215546Sopenharmony_ci                break;
16558bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16559bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16560bf215546Sopenharmony_ci            size += vn_sizeof_VkFormatProperties2_pnext_partial(pnext->pNext);
16561bf215546Sopenharmony_ci            size += vn_sizeof_VkDrmFormatModifierPropertiesList2EXT_self_partial((const VkDrmFormatModifierPropertiesList2EXT *)pnext);
16562bf215546Sopenharmony_ci            return size;
16563bf215546Sopenharmony_ci        default:
16564bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
16565bf215546Sopenharmony_ci            break;
16566bf215546Sopenharmony_ci        }
16567bf215546Sopenharmony_ci        pnext = pnext->pNext;
16568bf215546Sopenharmony_ci    }
16569bf215546Sopenharmony_ci
16570bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16571bf215546Sopenharmony_ci}
16572bf215546Sopenharmony_ci
16573bf215546Sopenharmony_cistatic inline size_t
16574bf215546Sopenharmony_civn_sizeof_VkFormatProperties2_self_partial(const VkFormatProperties2 *val)
16575bf215546Sopenharmony_ci{
16576bf215546Sopenharmony_ci    size_t size = 0;
16577bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16578bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties_partial(&val->formatProperties);
16579bf215546Sopenharmony_ci    return size;
16580bf215546Sopenharmony_ci}
16581bf215546Sopenharmony_ci
16582bf215546Sopenharmony_cistatic inline size_t
16583bf215546Sopenharmony_civn_sizeof_VkFormatProperties2_partial(const VkFormatProperties2 *val)
16584bf215546Sopenharmony_ci{
16585bf215546Sopenharmony_ci    size_t size = 0;
16586bf215546Sopenharmony_ci
16587bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16588bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties2_pnext_partial(val->pNext);
16589bf215546Sopenharmony_ci    size += vn_sizeof_VkFormatProperties2_self_partial(val);
16590bf215546Sopenharmony_ci
16591bf215546Sopenharmony_ci    return size;
16592bf215546Sopenharmony_ci}
16593bf215546Sopenharmony_ci
16594bf215546Sopenharmony_cistatic inline void
16595bf215546Sopenharmony_civn_encode_VkFormatProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
16596bf215546Sopenharmony_ci{
16597bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
16598bf215546Sopenharmony_ci
16599bf215546Sopenharmony_ci    while (pnext) {
16600bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
16601bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
16602bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
16603bf215546Sopenharmony_ci                break;
16604bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16605bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16606bf215546Sopenharmony_ci            vn_encode_VkFormatProperties2_pnext_partial(enc, pnext->pNext);
16607bf215546Sopenharmony_ci            vn_encode_VkDrmFormatModifierPropertiesListEXT_self_partial(enc, (const VkDrmFormatModifierPropertiesListEXT *)pnext);
16608bf215546Sopenharmony_ci            return;
16609bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
16610bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */))
16611bf215546Sopenharmony_ci                break;
16612bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16613bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16614bf215546Sopenharmony_ci            vn_encode_VkFormatProperties2_pnext_partial(enc, pnext->pNext);
16615bf215546Sopenharmony_ci            vn_encode_VkFormatProperties3_self_partial(enc, (const VkFormatProperties3 *)pnext);
16616bf215546Sopenharmony_ci            return;
16617bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
16618bf215546Sopenharmony_ci            if (!(vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */) && vn_cs_renderer_protocol_has_extension(361 /* VK_KHR_format_feature_flags2 */)))
16619bf215546Sopenharmony_ci                break;
16620bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16621bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16622bf215546Sopenharmony_ci            vn_encode_VkFormatProperties2_pnext_partial(enc, pnext->pNext);
16623bf215546Sopenharmony_ci            vn_encode_VkDrmFormatModifierPropertiesList2EXT_self_partial(enc, (const VkDrmFormatModifierPropertiesList2EXT *)pnext);
16624bf215546Sopenharmony_ci            return;
16625bf215546Sopenharmony_ci        default:
16626bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
16627bf215546Sopenharmony_ci            break;
16628bf215546Sopenharmony_ci        }
16629bf215546Sopenharmony_ci        pnext = pnext->pNext;
16630bf215546Sopenharmony_ci    }
16631bf215546Sopenharmony_ci
16632bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16633bf215546Sopenharmony_ci}
16634bf215546Sopenharmony_ci
16635bf215546Sopenharmony_cistatic inline void
16636bf215546Sopenharmony_civn_encode_VkFormatProperties2_self_partial(struct vn_cs_encoder *enc, const VkFormatProperties2 *val)
16637bf215546Sopenharmony_ci{
16638bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16639bf215546Sopenharmony_ci    vn_encode_VkFormatProperties_partial(enc, &val->formatProperties);
16640bf215546Sopenharmony_ci}
16641bf215546Sopenharmony_ci
16642bf215546Sopenharmony_cistatic inline void
16643bf215546Sopenharmony_civn_encode_VkFormatProperties2_partial(struct vn_cs_encoder *enc, const VkFormatProperties2 *val)
16644bf215546Sopenharmony_ci{
16645bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2);
16646bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 });
16647bf215546Sopenharmony_ci    vn_encode_VkFormatProperties2_pnext_partial(enc, val->pNext);
16648bf215546Sopenharmony_ci    vn_encode_VkFormatProperties2_self_partial(enc, val);
16649bf215546Sopenharmony_ci}
16650bf215546Sopenharmony_ci
16651bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExternalImageFormatInfo chain */
16652bf215546Sopenharmony_ci
16653bf215546Sopenharmony_cistatic inline size_t
16654bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalImageFormatInfo_pnext(const void *val)
16655bf215546Sopenharmony_ci{
16656bf215546Sopenharmony_ci    /* no known/supported struct */
16657bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16658bf215546Sopenharmony_ci}
16659bf215546Sopenharmony_ci
16660bf215546Sopenharmony_cistatic inline size_t
16661bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalImageFormatInfo_self(const VkPhysicalDeviceExternalImageFormatInfo *val)
16662bf215546Sopenharmony_ci{
16663bf215546Sopenharmony_ci    size_t size = 0;
16664bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16665bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryHandleTypeFlagBits(&val->handleType);
16666bf215546Sopenharmony_ci    return size;
16667bf215546Sopenharmony_ci}
16668bf215546Sopenharmony_ci
16669bf215546Sopenharmony_cistatic inline size_t
16670bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalImageFormatInfo(const VkPhysicalDeviceExternalImageFormatInfo *val)
16671bf215546Sopenharmony_ci{
16672bf215546Sopenharmony_ci    size_t size = 0;
16673bf215546Sopenharmony_ci
16674bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16675bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalImageFormatInfo_pnext(val->pNext);
16676bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalImageFormatInfo_self(val);
16677bf215546Sopenharmony_ci
16678bf215546Sopenharmony_ci    return size;
16679bf215546Sopenharmony_ci}
16680bf215546Sopenharmony_ci
16681bf215546Sopenharmony_cistatic inline void
16682bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalImageFormatInfo_pnext(struct vn_cs_encoder *enc, const void *val)
16683bf215546Sopenharmony_ci{
16684bf215546Sopenharmony_ci    /* no known/supported struct */
16685bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16686bf215546Sopenharmony_ci}
16687bf215546Sopenharmony_ci
16688bf215546Sopenharmony_cistatic inline void
16689bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalImageFormatInfo_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalImageFormatInfo *val)
16690bf215546Sopenharmony_ci{
16691bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16692bf215546Sopenharmony_ci    vn_encode_VkExternalMemoryHandleTypeFlagBits(enc, &val->handleType);
16693bf215546Sopenharmony_ci}
16694bf215546Sopenharmony_ci
16695bf215546Sopenharmony_cistatic inline void
16696bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalImageFormatInfo(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalImageFormatInfo *val)
16697bf215546Sopenharmony_ci{
16698bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO);
16699bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO });
16700bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalImageFormatInfo_pnext(enc, val->pNext);
16701bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalImageFormatInfo_self(enc, val);
16702bf215546Sopenharmony_ci}
16703bf215546Sopenharmony_ci
16704bf215546Sopenharmony_ci/* struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT chain */
16705bf215546Sopenharmony_ci
16706bf215546Sopenharmony_cistatic inline size_t
16707bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext(const void *val)
16708bf215546Sopenharmony_ci{
16709bf215546Sopenharmony_ci    /* no known/supported struct */
16710bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16711bf215546Sopenharmony_ci}
16712bf215546Sopenharmony_ci
16713bf215546Sopenharmony_cistatic inline size_t
16714bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self(const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
16715bf215546Sopenharmony_ci{
16716bf215546Sopenharmony_ci    size_t size = 0;
16717bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16718bf215546Sopenharmony_ci    size += vn_sizeof_uint64_t(&val->drmFormatModifier);
16719bf215546Sopenharmony_ci    size += vn_sizeof_VkSharingMode(&val->sharingMode);
16720bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueFamilyIndexCount);
16721bf215546Sopenharmony_ci    if (val->pQueueFamilyIndices) {
16722bf215546Sopenharmony_ci        size += vn_sizeof_array_size(val->queueFamilyIndexCount);
16723bf215546Sopenharmony_ci        size += vn_sizeof_uint32_t_array(val->pQueueFamilyIndices, val->queueFamilyIndexCount);
16724bf215546Sopenharmony_ci    } else {
16725bf215546Sopenharmony_ci        size += vn_sizeof_array_size(0);
16726bf215546Sopenharmony_ci    }
16727bf215546Sopenharmony_ci    return size;
16728bf215546Sopenharmony_ci}
16729bf215546Sopenharmony_ci
16730bf215546Sopenharmony_cistatic inline size_t
16731bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
16732bf215546Sopenharmony_ci{
16733bf215546Sopenharmony_ci    size_t size = 0;
16734bf215546Sopenharmony_ci
16735bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16736bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext(val->pNext);
16737bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self(val);
16738bf215546Sopenharmony_ci
16739bf215546Sopenharmony_ci    return size;
16740bf215546Sopenharmony_ci}
16741bf215546Sopenharmony_ci
16742bf215546Sopenharmony_cistatic inline void
16743bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)
16744bf215546Sopenharmony_ci{
16745bf215546Sopenharmony_ci    /* no known/supported struct */
16746bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16747bf215546Sopenharmony_ci}
16748bf215546Sopenharmony_ci
16749bf215546Sopenharmony_cistatic inline void
16750bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
16751bf215546Sopenharmony_ci{
16752bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16753bf215546Sopenharmony_ci    vn_encode_uint64_t(enc, &val->drmFormatModifier);
16754bf215546Sopenharmony_ci    vn_encode_VkSharingMode(enc, &val->sharingMode);
16755bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueFamilyIndexCount);
16756bf215546Sopenharmony_ci    if (val->pQueueFamilyIndices) {
16757bf215546Sopenharmony_ci        vn_encode_array_size(enc, val->queueFamilyIndexCount);
16758bf215546Sopenharmony_ci        vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount);
16759bf215546Sopenharmony_ci    } else {
16760bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
16761bf215546Sopenharmony_ci    }
16762bf215546Sopenharmony_ci}
16763bf215546Sopenharmony_ci
16764bf215546Sopenharmony_cistatic inline void
16765bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *val)
16766bf215546Sopenharmony_ci{
16767bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT);
16768bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT });
16769bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_pnext(enc, val->pNext);
16770bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self(enc, val);
16771bf215546Sopenharmony_ci}
16772bf215546Sopenharmony_ci
16773bf215546Sopenharmony_ci/* struct VkPhysicalDeviceImageFormatInfo2 chain */
16774bf215546Sopenharmony_ci
16775bf215546Sopenharmony_cistatic inline size_t
16776bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(const void *val)
16777bf215546Sopenharmony_ci{
16778bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
16779bf215546Sopenharmony_ci    size_t size = 0;
16780bf215546Sopenharmony_ci
16781bf215546Sopenharmony_ci    while (pnext) {
16782bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
16783bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
16784bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16785bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16786bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(pnext->pNext);
16787bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExternalImageFormatInfo_self((const VkPhysicalDeviceExternalImageFormatInfo *)pnext);
16788bf215546Sopenharmony_ci            return size;
16789bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
16790bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16791bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16792bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(pnext->pNext);
16793bf215546Sopenharmony_ci            size += vn_sizeof_VkImageFormatListCreateInfo_self((const VkImageFormatListCreateInfo *)pnext);
16794bf215546Sopenharmony_ci            return size;
16795bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
16796bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
16797bf215546Sopenharmony_ci                break;
16798bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16799bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16800bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(pnext->pNext);
16801bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self((const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)pnext);
16802bf215546Sopenharmony_ci            return size;
16803bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
16804bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
16805bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
16806bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(pnext->pNext);
16807bf215546Sopenharmony_ci            size += vn_sizeof_VkImageStencilUsageCreateInfo_self((const VkImageStencilUsageCreateInfo *)pnext);
16808bf215546Sopenharmony_ci            return size;
16809bf215546Sopenharmony_ci        default:
16810bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
16811bf215546Sopenharmony_ci            break;
16812bf215546Sopenharmony_ci        }
16813bf215546Sopenharmony_ci        pnext = pnext->pNext;
16814bf215546Sopenharmony_ci    }
16815bf215546Sopenharmony_ci
16816bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16817bf215546Sopenharmony_ci}
16818bf215546Sopenharmony_ci
16819bf215546Sopenharmony_cistatic inline size_t
16820bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageFormatInfo2_self(const VkPhysicalDeviceImageFormatInfo2 *val)
16821bf215546Sopenharmony_ci{
16822bf215546Sopenharmony_ci    size_t size = 0;
16823bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16824bf215546Sopenharmony_ci    size += vn_sizeof_VkFormat(&val->format);
16825bf215546Sopenharmony_ci    size += vn_sizeof_VkImageType(&val->type);
16826bf215546Sopenharmony_ci    size += vn_sizeof_VkImageTiling(&val->tiling);
16827bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->usage);
16828bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
16829bf215546Sopenharmony_ci    return size;
16830bf215546Sopenharmony_ci}
16831bf215546Sopenharmony_ci
16832bf215546Sopenharmony_cistatic inline size_t
16833bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceImageFormatInfo2(const VkPhysicalDeviceImageFormatInfo2 *val)
16834bf215546Sopenharmony_ci{
16835bf215546Sopenharmony_ci    size_t size = 0;
16836bf215546Sopenharmony_ci
16837bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16838bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_pnext(val->pNext);
16839bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2_self(val);
16840bf215546Sopenharmony_ci
16841bf215546Sopenharmony_ci    return size;
16842bf215546Sopenharmony_ci}
16843bf215546Sopenharmony_ci
16844bf215546Sopenharmony_cistatic inline void
16845bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(struct vn_cs_encoder *enc, const void *val)
16846bf215546Sopenharmony_ci{
16847bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
16848bf215546Sopenharmony_ci
16849bf215546Sopenharmony_ci    while (pnext) {
16850bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
16851bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
16852bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16853bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16854bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(enc, pnext->pNext);
16855bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExternalImageFormatInfo_self(enc, (const VkPhysicalDeviceExternalImageFormatInfo *)pnext);
16856bf215546Sopenharmony_ci            return;
16857bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
16858bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16859bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16860bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(enc, pnext->pNext);
16861bf215546Sopenharmony_ci            vn_encode_VkImageFormatListCreateInfo_self(enc, (const VkImageFormatListCreateInfo *)pnext);
16862bf215546Sopenharmony_ci            return;
16863bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
16864bf215546Sopenharmony_ci            if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
16865bf215546Sopenharmony_ci                break;
16866bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16867bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16868bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(enc, pnext->pNext);
16869bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageDrmFormatModifierInfoEXT_self(enc, (const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)pnext);
16870bf215546Sopenharmony_ci            return;
16871bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
16872bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
16873bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
16874bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(enc, pnext->pNext);
16875bf215546Sopenharmony_ci            vn_encode_VkImageStencilUsageCreateInfo_self(enc, (const VkImageStencilUsageCreateInfo *)pnext);
16876bf215546Sopenharmony_ci            return;
16877bf215546Sopenharmony_ci        default:
16878bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
16879bf215546Sopenharmony_ci            break;
16880bf215546Sopenharmony_ci        }
16881bf215546Sopenharmony_ci        pnext = pnext->pNext;
16882bf215546Sopenharmony_ci    }
16883bf215546Sopenharmony_ci
16884bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
16885bf215546Sopenharmony_ci}
16886bf215546Sopenharmony_ci
16887bf215546Sopenharmony_cistatic inline void
16888bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageFormatInfo2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageFormatInfo2 *val)
16889bf215546Sopenharmony_ci{
16890bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16891bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &val->format);
16892bf215546Sopenharmony_ci    vn_encode_VkImageType(enc, &val->type);
16893bf215546Sopenharmony_ci    vn_encode_VkImageTiling(enc, &val->tiling);
16894bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->usage);
16895bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->flags);
16896bf215546Sopenharmony_ci}
16897bf215546Sopenharmony_ci
16898bf215546Sopenharmony_cistatic inline void
16899bf215546Sopenharmony_civn_encode_VkPhysicalDeviceImageFormatInfo2(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageFormatInfo2 *val)
16900bf215546Sopenharmony_ci{
16901bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2);
16902bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 });
16903bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageFormatInfo2_pnext(enc, val->pNext);
16904bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceImageFormatInfo2_self(enc, val);
16905bf215546Sopenharmony_ci}
16906bf215546Sopenharmony_ci
16907bf215546Sopenharmony_ci/* struct VkExternalMemoryProperties */
16908bf215546Sopenharmony_ci
16909bf215546Sopenharmony_cistatic inline size_t
16910bf215546Sopenharmony_civn_sizeof_VkExternalMemoryProperties(const VkExternalMemoryProperties *val)
16911bf215546Sopenharmony_ci{
16912bf215546Sopenharmony_ci    size_t size = 0;
16913bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->externalMemoryFeatures);
16914bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->exportFromImportedHandleTypes);
16915bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->compatibleHandleTypes);
16916bf215546Sopenharmony_ci    return size;
16917bf215546Sopenharmony_ci}
16918bf215546Sopenharmony_ci
16919bf215546Sopenharmony_cistatic inline void
16920bf215546Sopenharmony_civn_decode_VkExternalMemoryProperties(struct vn_cs_decoder *dec, VkExternalMemoryProperties *val)
16921bf215546Sopenharmony_ci{
16922bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->externalMemoryFeatures);
16923bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->exportFromImportedHandleTypes);
16924bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->compatibleHandleTypes);
16925bf215546Sopenharmony_ci}
16926bf215546Sopenharmony_ci
16927bf215546Sopenharmony_cistatic inline size_t
16928bf215546Sopenharmony_civn_sizeof_VkExternalMemoryProperties_partial(const VkExternalMemoryProperties *val)
16929bf215546Sopenharmony_ci{
16930bf215546Sopenharmony_ci    size_t size = 0;
16931bf215546Sopenharmony_ci    /* skip val->externalMemoryFeatures */
16932bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
16933bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
16934bf215546Sopenharmony_ci    return size;
16935bf215546Sopenharmony_ci}
16936bf215546Sopenharmony_ci
16937bf215546Sopenharmony_cistatic inline void
16938bf215546Sopenharmony_civn_encode_VkExternalMemoryProperties_partial(struct vn_cs_encoder *enc, const VkExternalMemoryProperties *val)
16939bf215546Sopenharmony_ci{
16940bf215546Sopenharmony_ci    /* skip val->externalMemoryFeatures */
16941bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
16942bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
16943bf215546Sopenharmony_ci}
16944bf215546Sopenharmony_ci
16945bf215546Sopenharmony_ci/* struct VkExternalImageFormatProperties chain */
16946bf215546Sopenharmony_ci
16947bf215546Sopenharmony_cistatic inline size_t
16948bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties_pnext(const void *val)
16949bf215546Sopenharmony_ci{
16950bf215546Sopenharmony_ci    /* no known/supported struct */
16951bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
16952bf215546Sopenharmony_ci}
16953bf215546Sopenharmony_ci
16954bf215546Sopenharmony_cistatic inline size_t
16955bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties_self(const VkExternalImageFormatProperties *val)
16956bf215546Sopenharmony_ci{
16957bf215546Sopenharmony_ci    size_t size = 0;
16958bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16959bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryProperties(&val->externalMemoryProperties);
16960bf215546Sopenharmony_ci    return size;
16961bf215546Sopenharmony_ci}
16962bf215546Sopenharmony_ci
16963bf215546Sopenharmony_cistatic inline size_t
16964bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties(const VkExternalImageFormatProperties *val)
16965bf215546Sopenharmony_ci{
16966bf215546Sopenharmony_ci    size_t size = 0;
16967bf215546Sopenharmony_ci
16968bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
16969bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalImageFormatProperties_pnext(val->pNext);
16970bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalImageFormatProperties_self(val);
16971bf215546Sopenharmony_ci
16972bf215546Sopenharmony_ci    return size;
16973bf215546Sopenharmony_ci}
16974bf215546Sopenharmony_ci
16975bf215546Sopenharmony_cistatic inline void
16976bf215546Sopenharmony_civn_decode_VkExternalImageFormatProperties_pnext(struct vn_cs_decoder *dec, const void *val)
16977bf215546Sopenharmony_ci{
16978bf215546Sopenharmony_ci    /* no known/supported struct */
16979bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
16980bf215546Sopenharmony_ci        assert(false);
16981bf215546Sopenharmony_ci}
16982bf215546Sopenharmony_ci
16983bf215546Sopenharmony_cistatic inline void
16984bf215546Sopenharmony_civn_decode_VkExternalImageFormatProperties_self(struct vn_cs_decoder *dec, VkExternalImageFormatProperties *val)
16985bf215546Sopenharmony_ci{
16986bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
16987bf215546Sopenharmony_ci    vn_decode_VkExternalMemoryProperties(dec, &val->externalMemoryProperties);
16988bf215546Sopenharmony_ci}
16989bf215546Sopenharmony_ci
16990bf215546Sopenharmony_cistatic inline void
16991bf215546Sopenharmony_civn_decode_VkExternalImageFormatProperties(struct vn_cs_decoder *dec, VkExternalImageFormatProperties *val)
16992bf215546Sopenharmony_ci{
16993bf215546Sopenharmony_ci    VkStructureType stype;
16994bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
16995bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES);
16996bf215546Sopenharmony_ci
16997bf215546Sopenharmony_ci    assert(val->sType == stype);
16998bf215546Sopenharmony_ci    vn_decode_VkExternalImageFormatProperties_pnext(dec, val->pNext);
16999bf215546Sopenharmony_ci    vn_decode_VkExternalImageFormatProperties_self(dec, val);
17000bf215546Sopenharmony_ci}
17001bf215546Sopenharmony_ci
17002bf215546Sopenharmony_cistatic inline size_t
17003bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties_pnext_partial(const void *val)
17004bf215546Sopenharmony_ci{
17005bf215546Sopenharmony_ci    /* no known/supported struct */
17006bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17007bf215546Sopenharmony_ci}
17008bf215546Sopenharmony_ci
17009bf215546Sopenharmony_cistatic inline size_t
17010bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties_self_partial(const VkExternalImageFormatProperties *val)
17011bf215546Sopenharmony_ci{
17012bf215546Sopenharmony_ci    size_t size = 0;
17013bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17014bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryProperties_partial(&val->externalMemoryProperties);
17015bf215546Sopenharmony_ci    return size;
17016bf215546Sopenharmony_ci}
17017bf215546Sopenharmony_ci
17018bf215546Sopenharmony_cistatic inline size_t
17019bf215546Sopenharmony_civn_sizeof_VkExternalImageFormatProperties_partial(const VkExternalImageFormatProperties *val)
17020bf215546Sopenharmony_ci{
17021bf215546Sopenharmony_ci    size_t size = 0;
17022bf215546Sopenharmony_ci
17023bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17024bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalImageFormatProperties_pnext_partial(val->pNext);
17025bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalImageFormatProperties_self_partial(val);
17026bf215546Sopenharmony_ci
17027bf215546Sopenharmony_ci    return size;
17028bf215546Sopenharmony_ci}
17029bf215546Sopenharmony_ci
17030bf215546Sopenharmony_cistatic inline void
17031bf215546Sopenharmony_civn_encode_VkExternalImageFormatProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17032bf215546Sopenharmony_ci{
17033bf215546Sopenharmony_ci    /* no known/supported struct */
17034bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17035bf215546Sopenharmony_ci}
17036bf215546Sopenharmony_ci
17037bf215546Sopenharmony_cistatic inline void
17038bf215546Sopenharmony_civn_encode_VkExternalImageFormatProperties_self_partial(struct vn_cs_encoder *enc, const VkExternalImageFormatProperties *val)
17039bf215546Sopenharmony_ci{
17040bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17041bf215546Sopenharmony_ci    vn_encode_VkExternalMemoryProperties_partial(enc, &val->externalMemoryProperties);
17042bf215546Sopenharmony_ci}
17043bf215546Sopenharmony_ci
17044bf215546Sopenharmony_cistatic inline void
17045bf215546Sopenharmony_civn_encode_VkExternalImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkExternalImageFormatProperties *val)
17046bf215546Sopenharmony_ci{
17047bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES);
17048bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES });
17049bf215546Sopenharmony_ci    vn_encode_VkExternalImageFormatProperties_pnext_partial(enc, val->pNext);
17050bf215546Sopenharmony_ci    vn_encode_VkExternalImageFormatProperties_self_partial(enc, val);
17051bf215546Sopenharmony_ci}
17052bf215546Sopenharmony_ci
17053bf215546Sopenharmony_ci/* struct VkSamplerYcbcrConversionImageFormatProperties chain */
17054bf215546Sopenharmony_ci
17055bf215546Sopenharmony_cistatic inline size_t
17056bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_pnext(const void *val)
17057bf215546Sopenharmony_ci{
17058bf215546Sopenharmony_ci    /* no known/supported struct */
17059bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17060bf215546Sopenharmony_ci}
17061bf215546Sopenharmony_ci
17062bf215546Sopenharmony_cistatic inline size_t
17063bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self(const VkSamplerYcbcrConversionImageFormatProperties *val)
17064bf215546Sopenharmony_ci{
17065bf215546Sopenharmony_ci    size_t size = 0;
17066bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17067bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->combinedImageSamplerDescriptorCount);
17068bf215546Sopenharmony_ci    return size;
17069bf215546Sopenharmony_ci}
17070bf215546Sopenharmony_ci
17071bf215546Sopenharmony_cistatic inline size_t
17072bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties(const VkSamplerYcbcrConversionImageFormatProperties *val)
17073bf215546Sopenharmony_ci{
17074bf215546Sopenharmony_ci    size_t size = 0;
17075bf215546Sopenharmony_ci
17076bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17077bf215546Sopenharmony_ci    size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_pnext(val->pNext);
17078bf215546Sopenharmony_ci    size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self(val);
17079bf215546Sopenharmony_ci
17080bf215546Sopenharmony_ci    return size;
17081bf215546Sopenharmony_ci}
17082bf215546Sopenharmony_ci
17083bf215546Sopenharmony_cistatic inline void
17084bf215546Sopenharmony_civn_decode_VkSamplerYcbcrConversionImageFormatProperties_pnext(struct vn_cs_decoder *dec, const void *val)
17085bf215546Sopenharmony_ci{
17086bf215546Sopenharmony_ci    /* no known/supported struct */
17087bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
17088bf215546Sopenharmony_ci        assert(false);
17089bf215546Sopenharmony_ci}
17090bf215546Sopenharmony_ci
17091bf215546Sopenharmony_cistatic inline void
17092bf215546Sopenharmony_civn_decode_VkSamplerYcbcrConversionImageFormatProperties_self(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionImageFormatProperties *val)
17093bf215546Sopenharmony_ci{
17094bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17095bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->combinedImageSamplerDescriptorCount);
17096bf215546Sopenharmony_ci}
17097bf215546Sopenharmony_ci
17098bf215546Sopenharmony_cistatic inline void
17099bf215546Sopenharmony_civn_decode_VkSamplerYcbcrConversionImageFormatProperties(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionImageFormatProperties *val)
17100bf215546Sopenharmony_ci{
17101bf215546Sopenharmony_ci    VkStructureType stype;
17102bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17103bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES);
17104bf215546Sopenharmony_ci
17105bf215546Sopenharmony_ci    assert(val->sType == stype);
17106bf215546Sopenharmony_ci    vn_decode_VkSamplerYcbcrConversionImageFormatProperties_pnext(dec, val->pNext);
17107bf215546Sopenharmony_ci    vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self(dec, val);
17108bf215546Sopenharmony_ci}
17109bf215546Sopenharmony_ci
17110bf215546Sopenharmony_cistatic inline size_t
17111bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial(const void *val)
17112bf215546Sopenharmony_ci{
17113bf215546Sopenharmony_ci    /* no known/supported struct */
17114bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17115bf215546Sopenharmony_ci}
17116bf215546Sopenharmony_ci
17117bf215546Sopenharmony_cistatic inline size_t
17118bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self_partial(const VkSamplerYcbcrConversionImageFormatProperties *val)
17119bf215546Sopenharmony_ci{
17120bf215546Sopenharmony_ci    size_t size = 0;
17121bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17122bf215546Sopenharmony_ci    /* skip val->combinedImageSamplerDescriptorCount */
17123bf215546Sopenharmony_ci    return size;
17124bf215546Sopenharmony_ci}
17125bf215546Sopenharmony_ci
17126bf215546Sopenharmony_cistatic inline size_t
17127bf215546Sopenharmony_civn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_partial(const VkSamplerYcbcrConversionImageFormatProperties *val)
17128bf215546Sopenharmony_ci{
17129bf215546Sopenharmony_ci    size_t size = 0;
17130bf215546Sopenharmony_ci
17131bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17132bf215546Sopenharmony_ci    size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial(val->pNext);
17133bf215546Sopenharmony_ci    size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self_partial(val);
17134bf215546Sopenharmony_ci
17135bf215546Sopenharmony_ci    return size;
17136bf215546Sopenharmony_ci}
17137bf215546Sopenharmony_ci
17138bf215546Sopenharmony_cistatic inline void
17139bf215546Sopenharmony_civn_encode_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17140bf215546Sopenharmony_ci{
17141bf215546Sopenharmony_ci    /* no known/supported struct */
17142bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17143bf215546Sopenharmony_ci}
17144bf215546Sopenharmony_ci
17145bf215546Sopenharmony_cistatic inline void
17146bf215546Sopenharmony_civn_encode_VkSamplerYcbcrConversionImageFormatProperties_self_partial(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionImageFormatProperties *val)
17147bf215546Sopenharmony_ci{
17148bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17149bf215546Sopenharmony_ci    /* skip val->combinedImageSamplerDescriptorCount */
17150bf215546Sopenharmony_ci}
17151bf215546Sopenharmony_ci
17152bf215546Sopenharmony_cistatic inline void
17153bf215546Sopenharmony_civn_encode_VkSamplerYcbcrConversionImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionImageFormatProperties *val)
17154bf215546Sopenharmony_ci{
17155bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES);
17156bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES });
17157bf215546Sopenharmony_ci    vn_encode_VkSamplerYcbcrConversionImageFormatProperties_pnext_partial(enc, val->pNext);
17158bf215546Sopenharmony_ci    vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self_partial(enc, val);
17159bf215546Sopenharmony_ci}
17160bf215546Sopenharmony_ci
17161bf215546Sopenharmony_ci/* struct VkImageFormatProperties2 chain */
17162bf215546Sopenharmony_ci
17163bf215546Sopenharmony_cistatic inline size_t
17164bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2_pnext(const void *val)
17165bf215546Sopenharmony_ci{
17166bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
17167bf215546Sopenharmony_ci    size_t size = 0;
17168bf215546Sopenharmony_ci
17169bf215546Sopenharmony_ci    while (pnext) {
17170bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
17171bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
17172bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
17173bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
17174bf215546Sopenharmony_ci            size += vn_sizeof_VkImageFormatProperties2_pnext(pnext->pNext);
17175bf215546Sopenharmony_ci            size += vn_sizeof_VkExternalImageFormatProperties_self((const VkExternalImageFormatProperties *)pnext);
17176bf215546Sopenharmony_ci            return size;
17177bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
17178bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
17179bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
17180bf215546Sopenharmony_ci            size += vn_sizeof_VkImageFormatProperties2_pnext(pnext->pNext);
17181bf215546Sopenharmony_ci            size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self((const VkSamplerYcbcrConversionImageFormatProperties *)pnext);
17182bf215546Sopenharmony_ci            return size;
17183bf215546Sopenharmony_ci        default:
17184bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
17185bf215546Sopenharmony_ci            break;
17186bf215546Sopenharmony_ci        }
17187bf215546Sopenharmony_ci        pnext = pnext->pNext;
17188bf215546Sopenharmony_ci    }
17189bf215546Sopenharmony_ci
17190bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17191bf215546Sopenharmony_ci}
17192bf215546Sopenharmony_ci
17193bf215546Sopenharmony_cistatic inline size_t
17194bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2_self(const VkImageFormatProperties2 *val)
17195bf215546Sopenharmony_ci{
17196bf215546Sopenharmony_ci    size_t size = 0;
17197bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17198bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties(&val->imageFormatProperties);
17199bf215546Sopenharmony_ci    return size;
17200bf215546Sopenharmony_ci}
17201bf215546Sopenharmony_ci
17202bf215546Sopenharmony_cistatic inline size_t
17203bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2(const VkImageFormatProperties2 *val)
17204bf215546Sopenharmony_ci{
17205bf215546Sopenharmony_ci    size_t size = 0;
17206bf215546Sopenharmony_ci
17207bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17208bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties2_pnext(val->pNext);
17209bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties2_self(val);
17210bf215546Sopenharmony_ci
17211bf215546Sopenharmony_ci    return size;
17212bf215546Sopenharmony_ci}
17213bf215546Sopenharmony_ci
17214bf215546Sopenharmony_cistatic inline void
17215bf215546Sopenharmony_civn_decode_VkImageFormatProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
17216bf215546Sopenharmony_ci{
17217bf215546Sopenharmony_ci    VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;
17218bf215546Sopenharmony_ci    VkStructureType stype;
17219bf215546Sopenharmony_ci
17220bf215546Sopenharmony_ci    if (!vn_decode_simple_pointer(dec))
17221bf215546Sopenharmony_ci        return;
17222bf215546Sopenharmony_ci
17223bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17224bf215546Sopenharmony_ci    while (true) {
17225bf215546Sopenharmony_ci        assert(pnext);
17226bf215546Sopenharmony_ci        if (pnext->sType == stype)
17227bf215546Sopenharmony_ci            break;
17228bf215546Sopenharmony_ci
17229bf215546Sopenharmony_ci        pnext = pnext->pNext;
17230bf215546Sopenharmony_ci    }
17231bf215546Sopenharmony_ci
17232bf215546Sopenharmony_ci    switch ((int32_t)pnext->sType) {
17233bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
17234bf215546Sopenharmony_ci        vn_decode_VkImageFormatProperties2_pnext(dec, pnext->pNext);
17235bf215546Sopenharmony_ci        vn_decode_VkExternalImageFormatProperties_self(dec, (VkExternalImageFormatProperties *)pnext);
17236bf215546Sopenharmony_ci        break;
17237bf215546Sopenharmony_ci    case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
17238bf215546Sopenharmony_ci        vn_decode_VkImageFormatProperties2_pnext(dec, pnext->pNext);
17239bf215546Sopenharmony_ci        vn_decode_VkSamplerYcbcrConversionImageFormatProperties_self(dec, (VkSamplerYcbcrConversionImageFormatProperties *)pnext);
17240bf215546Sopenharmony_ci        break;
17241bf215546Sopenharmony_ci    default:
17242bf215546Sopenharmony_ci        assert(false);
17243bf215546Sopenharmony_ci        break;
17244bf215546Sopenharmony_ci    }
17245bf215546Sopenharmony_ci}
17246bf215546Sopenharmony_ci
17247bf215546Sopenharmony_cistatic inline void
17248bf215546Sopenharmony_civn_decode_VkImageFormatProperties2_self(struct vn_cs_decoder *dec, VkImageFormatProperties2 *val)
17249bf215546Sopenharmony_ci{
17250bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17251bf215546Sopenharmony_ci    vn_decode_VkImageFormatProperties(dec, &val->imageFormatProperties);
17252bf215546Sopenharmony_ci}
17253bf215546Sopenharmony_ci
17254bf215546Sopenharmony_cistatic inline void
17255bf215546Sopenharmony_civn_decode_VkImageFormatProperties2(struct vn_cs_decoder *dec, VkImageFormatProperties2 *val)
17256bf215546Sopenharmony_ci{
17257bf215546Sopenharmony_ci    VkStructureType stype;
17258bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17259bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2);
17260bf215546Sopenharmony_ci
17261bf215546Sopenharmony_ci    assert(val->sType == stype);
17262bf215546Sopenharmony_ci    vn_decode_VkImageFormatProperties2_pnext(dec, val->pNext);
17263bf215546Sopenharmony_ci    vn_decode_VkImageFormatProperties2_self(dec, val);
17264bf215546Sopenharmony_ci}
17265bf215546Sopenharmony_ci
17266bf215546Sopenharmony_cistatic inline size_t
17267bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2_pnext_partial(const void *val)
17268bf215546Sopenharmony_ci{
17269bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
17270bf215546Sopenharmony_ci    size_t size = 0;
17271bf215546Sopenharmony_ci
17272bf215546Sopenharmony_ci    while (pnext) {
17273bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
17274bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
17275bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
17276bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
17277bf215546Sopenharmony_ci            size += vn_sizeof_VkImageFormatProperties2_pnext_partial(pnext->pNext);
17278bf215546Sopenharmony_ci            size += vn_sizeof_VkExternalImageFormatProperties_self_partial((const VkExternalImageFormatProperties *)pnext);
17279bf215546Sopenharmony_ci            return size;
17280bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
17281bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
17282bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
17283bf215546Sopenharmony_ci            size += vn_sizeof_VkImageFormatProperties2_pnext_partial(pnext->pNext);
17284bf215546Sopenharmony_ci            size += vn_sizeof_VkSamplerYcbcrConversionImageFormatProperties_self_partial((const VkSamplerYcbcrConversionImageFormatProperties *)pnext);
17285bf215546Sopenharmony_ci            return size;
17286bf215546Sopenharmony_ci        default:
17287bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
17288bf215546Sopenharmony_ci            break;
17289bf215546Sopenharmony_ci        }
17290bf215546Sopenharmony_ci        pnext = pnext->pNext;
17291bf215546Sopenharmony_ci    }
17292bf215546Sopenharmony_ci
17293bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17294bf215546Sopenharmony_ci}
17295bf215546Sopenharmony_ci
17296bf215546Sopenharmony_cistatic inline size_t
17297bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2_self_partial(const VkImageFormatProperties2 *val)
17298bf215546Sopenharmony_ci{
17299bf215546Sopenharmony_ci    size_t size = 0;
17300bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17301bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties_partial(&val->imageFormatProperties);
17302bf215546Sopenharmony_ci    return size;
17303bf215546Sopenharmony_ci}
17304bf215546Sopenharmony_ci
17305bf215546Sopenharmony_cistatic inline size_t
17306bf215546Sopenharmony_civn_sizeof_VkImageFormatProperties2_partial(const VkImageFormatProperties2 *val)
17307bf215546Sopenharmony_ci{
17308bf215546Sopenharmony_ci    size_t size = 0;
17309bf215546Sopenharmony_ci
17310bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17311bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties2_pnext_partial(val->pNext);
17312bf215546Sopenharmony_ci    size += vn_sizeof_VkImageFormatProperties2_self_partial(val);
17313bf215546Sopenharmony_ci
17314bf215546Sopenharmony_ci    return size;
17315bf215546Sopenharmony_ci}
17316bf215546Sopenharmony_ci
17317bf215546Sopenharmony_cistatic inline void
17318bf215546Sopenharmony_civn_encode_VkImageFormatProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17319bf215546Sopenharmony_ci{
17320bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
17321bf215546Sopenharmony_ci
17322bf215546Sopenharmony_ci    while (pnext) {
17323bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
17324bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
17325bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
17326bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
17327bf215546Sopenharmony_ci            vn_encode_VkImageFormatProperties2_pnext_partial(enc, pnext->pNext);
17328bf215546Sopenharmony_ci            vn_encode_VkExternalImageFormatProperties_self_partial(enc, (const VkExternalImageFormatProperties *)pnext);
17329bf215546Sopenharmony_ci            return;
17330bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
17331bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
17332bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
17333bf215546Sopenharmony_ci            vn_encode_VkImageFormatProperties2_pnext_partial(enc, pnext->pNext);
17334bf215546Sopenharmony_ci            vn_encode_VkSamplerYcbcrConversionImageFormatProperties_self_partial(enc, (const VkSamplerYcbcrConversionImageFormatProperties *)pnext);
17335bf215546Sopenharmony_ci            return;
17336bf215546Sopenharmony_ci        default:
17337bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
17338bf215546Sopenharmony_ci            break;
17339bf215546Sopenharmony_ci        }
17340bf215546Sopenharmony_ci        pnext = pnext->pNext;
17341bf215546Sopenharmony_ci    }
17342bf215546Sopenharmony_ci
17343bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17344bf215546Sopenharmony_ci}
17345bf215546Sopenharmony_ci
17346bf215546Sopenharmony_cistatic inline void
17347bf215546Sopenharmony_civn_encode_VkImageFormatProperties2_self_partial(struct vn_cs_encoder *enc, const VkImageFormatProperties2 *val)
17348bf215546Sopenharmony_ci{
17349bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17350bf215546Sopenharmony_ci    vn_encode_VkImageFormatProperties_partial(enc, &val->imageFormatProperties);
17351bf215546Sopenharmony_ci}
17352bf215546Sopenharmony_ci
17353bf215546Sopenharmony_cistatic inline void
17354bf215546Sopenharmony_civn_encode_VkImageFormatProperties2_partial(struct vn_cs_encoder *enc, const VkImageFormatProperties2 *val)
17355bf215546Sopenharmony_ci{
17356bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2);
17357bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 });
17358bf215546Sopenharmony_ci    vn_encode_VkImageFormatProperties2_pnext_partial(enc, val->pNext);
17359bf215546Sopenharmony_ci    vn_encode_VkImageFormatProperties2_self_partial(enc, val);
17360bf215546Sopenharmony_ci}
17361bf215546Sopenharmony_ci
17362bf215546Sopenharmony_ci/* struct VkQueueFamilyProperties2 chain */
17363bf215546Sopenharmony_ci
17364bf215546Sopenharmony_cistatic inline size_t
17365bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2_pnext(const void *val)
17366bf215546Sopenharmony_ci{
17367bf215546Sopenharmony_ci    /* no known/supported struct */
17368bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17369bf215546Sopenharmony_ci}
17370bf215546Sopenharmony_ci
17371bf215546Sopenharmony_cistatic inline size_t
17372bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2_self(const VkQueueFamilyProperties2 *val)
17373bf215546Sopenharmony_ci{
17374bf215546Sopenharmony_ci    size_t size = 0;
17375bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17376bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties(&val->queueFamilyProperties);
17377bf215546Sopenharmony_ci    return size;
17378bf215546Sopenharmony_ci}
17379bf215546Sopenharmony_ci
17380bf215546Sopenharmony_cistatic inline size_t
17381bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2(const VkQueueFamilyProperties2 *val)
17382bf215546Sopenharmony_ci{
17383bf215546Sopenharmony_ci    size_t size = 0;
17384bf215546Sopenharmony_ci
17385bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17386bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties2_pnext(val->pNext);
17387bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties2_self(val);
17388bf215546Sopenharmony_ci
17389bf215546Sopenharmony_ci    return size;
17390bf215546Sopenharmony_ci}
17391bf215546Sopenharmony_ci
17392bf215546Sopenharmony_cistatic inline void
17393bf215546Sopenharmony_civn_decode_VkQueueFamilyProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
17394bf215546Sopenharmony_ci{
17395bf215546Sopenharmony_ci    /* no known/supported struct */
17396bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
17397bf215546Sopenharmony_ci        assert(false);
17398bf215546Sopenharmony_ci}
17399bf215546Sopenharmony_ci
17400bf215546Sopenharmony_cistatic inline void
17401bf215546Sopenharmony_civn_decode_VkQueueFamilyProperties2_self(struct vn_cs_decoder *dec, VkQueueFamilyProperties2 *val)
17402bf215546Sopenharmony_ci{
17403bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17404bf215546Sopenharmony_ci    vn_decode_VkQueueFamilyProperties(dec, &val->queueFamilyProperties);
17405bf215546Sopenharmony_ci}
17406bf215546Sopenharmony_ci
17407bf215546Sopenharmony_cistatic inline void
17408bf215546Sopenharmony_civn_decode_VkQueueFamilyProperties2(struct vn_cs_decoder *dec, VkQueueFamilyProperties2 *val)
17409bf215546Sopenharmony_ci{
17410bf215546Sopenharmony_ci    VkStructureType stype;
17411bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17412bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2);
17413bf215546Sopenharmony_ci
17414bf215546Sopenharmony_ci    assert(val->sType == stype);
17415bf215546Sopenharmony_ci    vn_decode_VkQueueFamilyProperties2_pnext(dec, val->pNext);
17416bf215546Sopenharmony_ci    vn_decode_VkQueueFamilyProperties2_self(dec, val);
17417bf215546Sopenharmony_ci}
17418bf215546Sopenharmony_ci
17419bf215546Sopenharmony_cistatic inline size_t
17420bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2_pnext_partial(const void *val)
17421bf215546Sopenharmony_ci{
17422bf215546Sopenharmony_ci    /* no known/supported struct */
17423bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17424bf215546Sopenharmony_ci}
17425bf215546Sopenharmony_ci
17426bf215546Sopenharmony_cistatic inline size_t
17427bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2_self_partial(const VkQueueFamilyProperties2 *val)
17428bf215546Sopenharmony_ci{
17429bf215546Sopenharmony_ci    size_t size = 0;
17430bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17431bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties_partial(&val->queueFamilyProperties);
17432bf215546Sopenharmony_ci    return size;
17433bf215546Sopenharmony_ci}
17434bf215546Sopenharmony_ci
17435bf215546Sopenharmony_cistatic inline size_t
17436bf215546Sopenharmony_civn_sizeof_VkQueueFamilyProperties2_partial(const VkQueueFamilyProperties2 *val)
17437bf215546Sopenharmony_ci{
17438bf215546Sopenharmony_ci    size_t size = 0;
17439bf215546Sopenharmony_ci
17440bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17441bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties2_pnext_partial(val->pNext);
17442bf215546Sopenharmony_ci    size += vn_sizeof_VkQueueFamilyProperties2_self_partial(val);
17443bf215546Sopenharmony_ci
17444bf215546Sopenharmony_ci    return size;
17445bf215546Sopenharmony_ci}
17446bf215546Sopenharmony_ci
17447bf215546Sopenharmony_cistatic inline void
17448bf215546Sopenharmony_civn_encode_VkQueueFamilyProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17449bf215546Sopenharmony_ci{
17450bf215546Sopenharmony_ci    /* no known/supported struct */
17451bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17452bf215546Sopenharmony_ci}
17453bf215546Sopenharmony_ci
17454bf215546Sopenharmony_cistatic inline void
17455bf215546Sopenharmony_civn_encode_VkQueueFamilyProperties2_self_partial(struct vn_cs_encoder *enc, const VkQueueFamilyProperties2 *val)
17456bf215546Sopenharmony_ci{
17457bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17458bf215546Sopenharmony_ci    vn_encode_VkQueueFamilyProperties_partial(enc, &val->queueFamilyProperties);
17459bf215546Sopenharmony_ci}
17460bf215546Sopenharmony_ci
17461bf215546Sopenharmony_cistatic inline void
17462bf215546Sopenharmony_civn_encode_VkQueueFamilyProperties2_partial(struct vn_cs_encoder *enc, const VkQueueFamilyProperties2 *val)
17463bf215546Sopenharmony_ci{
17464bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2);
17465bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 });
17466bf215546Sopenharmony_ci    vn_encode_VkQueueFamilyProperties2_pnext_partial(enc, val->pNext);
17467bf215546Sopenharmony_ci    vn_encode_VkQueueFamilyProperties2_self_partial(enc, val);
17468bf215546Sopenharmony_ci}
17469bf215546Sopenharmony_ci
17470bf215546Sopenharmony_ci/* struct VkPhysicalDeviceMemoryProperties2 chain */
17471bf215546Sopenharmony_ci
17472bf215546Sopenharmony_cistatic inline size_t
17473bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2_pnext(const void *val)
17474bf215546Sopenharmony_ci{
17475bf215546Sopenharmony_ci    /* no known/supported struct */
17476bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17477bf215546Sopenharmony_ci}
17478bf215546Sopenharmony_ci
17479bf215546Sopenharmony_cistatic inline size_t
17480bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2_self(const VkPhysicalDeviceMemoryProperties2 *val)
17481bf215546Sopenharmony_ci{
17482bf215546Sopenharmony_ci    size_t size = 0;
17483bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17484bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties(&val->memoryProperties);
17485bf215546Sopenharmony_ci    return size;
17486bf215546Sopenharmony_ci}
17487bf215546Sopenharmony_ci
17488bf215546Sopenharmony_cistatic inline size_t
17489bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2(const VkPhysicalDeviceMemoryProperties2 *val)
17490bf215546Sopenharmony_ci{
17491bf215546Sopenharmony_ci    size_t size = 0;
17492bf215546Sopenharmony_ci
17493bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17494bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties2_pnext(val->pNext);
17495bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties2_self(val);
17496bf215546Sopenharmony_ci
17497bf215546Sopenharmony_ci    return size;
17498bf215546Sopenharmony_ci}
17499bf215546Sopenharmony_ci
17500bf215546Sopenharmony_cistatic inline void
17501bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMemoryProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
17502bf215546Sopenharmony_ci{
17503bf215546Sopenharmony_ci    /* no known/supported struct */
17504bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
17505bf215546Sopenharmony_ci        assert(false);
17506bf215546Sopenharmony_ci}
17507bf215546Sopenharmony_ci
17508bf215546Sopenharmony_cistatic inline void
17509bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMemoryProperties2_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties2 *val)
17510bf215546Sopenharmony_ci{
17511bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17512bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMemoryProperties(dec, &val->memoryProperties);
17513bf215546Sopenharmony_ci}
17514bf215546Sopenharmony_ci
17515bf215546Sopenharmony_cistatic inline void
17516bf215546Sopenharmony_civn_decode_VkPhysicalDeviceMemoryProperties2(struct vn_cs_decoder *dec, VkPhysicalDeviceMemoryProperties2 *val)
17517bf215546Sopenharmony_ci{
17518bf215546Sopenharmony_ci    VkStructureType stype;
17519bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17520bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2);
17521bf215546Sopenharmony_ci
17522bf215546Sopenharmony_ci    assert(val->sType == stype);
17523bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMemoryProperties2_pnext(dec, val->pNext);
17524bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceMemoryProperties2_self(dec, val);
17525bf215546Sopenharmony_ci}
17526bf215546Sopenharmony_ci
17527bf215546Sopenharmony_cistatic inline size_t
17528bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2_pnext_partial(const void *val)
17529bf215546Sopenharmony_ci{
17530bf215546Sopenharmony_ci    /* no known/supported struct */
17531bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17532bf215546Sopenharmony_ci}
17533bf215546Sopenharmony_ci
17534bf215546Sopenharmony_cistatic inline size_t
17535bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2_self_partial(const VkPhysicalDeviceMemoryProperties2 *val)
17536bf215546Sopenharmony_ci{
17537bf215546Sopenharmony_ci    size_t size = 0;
17538bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17539bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties_partial(&val->memoryProperties);
17540bf215546Sopenharmony_ci    return size;
17541bf215546Sopenharmony_ci}
17542bf215546Sopenharmony_ci
17543bf215546Sopenharmony_cistatic inline size_t
17544bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceMemoryProperties2_partial(const VkPhysicalDeviceMemoryProperties2 *val)
17545bf215546Sopenharmony_ci{
17546bf215546Sopenharmony_ci    size_t size = 0;
17547bf215546Sopenharmony_ci
17548bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17549bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties2_pnext_partial(val->pNext);
17550bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceMemoryProperties2_self_partial(val);
17551bf215546Sopenharmony_ci
17552bf215546Sopenharmony_ci    return size;
17553bf215546Sopenharmony_ci}
17554bf215546Sopenharmony_ci
17555bf215546Sopenharmony_cistatic inline void
17556bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMemoryProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17557bf215546Sopenharmony_ci{
17558bf215546Sopenharmony_ci    /* no known/supported struct */
17559bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17560bf215546Sopenharmony_ci}
17561bf215546Sopenharmony_ci
17562bf215546Sopenharmony_cistatic inline void
17563bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMemoryProperties2_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties2 *val)
17564bf215546Sopenharmony_ci{
17565bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17566bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMemoryProperties_partial(enc, &val->memoryProperties);
17567bf215546Sopenharmony_ci}
17568bf215546Sopenharmony_ci
17569bf215546Sopenharmony_cistatic inline void
17570bf215546Sopenharmony_civn_encode_VkPhysicalDeviceMemoryProperties2_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMemoryProperties2 *val)
17571bf215546Sopenharmony_ci{
17572bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2);
17573bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 });
17574bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMemoryProperties2_pnext_partial(enc, val->pNext);
17575bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceMemoryProperties2_self_partial(enc, val);
17576bf215546Sopenharmony_ci}
17577bf215546Sopenharmony_ci
17578bf215546Sopenharmony_ci/* struct VkPhysicalDeviceSparseImageFormatInfo2 chain */
17579bf215546Sopenharmony_ci
17580bf215546Sopenharmony_cistatic inline size_t
17581bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2_pnext(const void *val)
17582bf215546Sopenharmony_ci{
17583bf215546Sopenharmony_ci    /* no known/supported struct */
17584bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17585bf215546Sopenharmony_ci}
17586bf215546Sopenharmony_ci
17587bf215546Sopenharmony_cistatic inline size_t
17588bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2_self(const VkPhysicalDeviceSparseImageFormatInfo2 *val)
17589bf215546Sopenharmony_ci{
17590bf215546Sopenharmony_ci    size_t size = 0;
17591bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17592bf215546Sopenharmony_ci    size += vn_sizeof_VkFormat(&val->format);
17593bf215546Sopenharmony_ci    size += vn_sizeof_VkImageType(&val->type);
17594bf215546Sopenharmony_ci    size += vn_sizeof_VkSampleCountFlagBits(&val->samples);
17595bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->usage);
17596bf215546Sopenharmony_ci    size += vn_sizeof_VkImageTiling(&val->tiling);
17597bf215546Sopenharmony_ci    return size;
17598bf215546Sopenharmony_ci}
17599bf215546Sopenharmony_ci
17600bf215546Sopenharmony_cistatic inline size_t
17601bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2(const VkPhysicalDeviceSparseImageFormatInfo2 *val)
17602bf215546Sopenharmony_ci{
17603bf215546Sopenharmony_ci    size_t size = 0;
17604bf215546Sopenharmony_ci
17605bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17606bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2_pnext(val->pNext);
17607bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2_self(val);
17608bf215546Sopenharmony_ci
17609bf215546Sopenharmony_ci    return size;
17610bf215546Sopenharmony_ci}
17611bf215546Sopenharmony_ci
17612bf215546Sopenharmony_cistatic inline void
17613bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSparseImageFormatInfo2_pnext(struct vn_cs_encoder *enc, const void *val)
17614bf215546Sopenharmony_ci{
17615bf215546Sopenharmony_ci    /* no known/supported struct */
17616bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17617bf215546Sopenharmony_ci}
17618bf215546Sopenharmony_ci
17619bf215546Sopenharmony_cistatic inline void
17620bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSparseImageFormatInfo2_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSparseImageFormatInfo2 *val)
17621bf215546Sopenharmony_ci{
17622bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17623bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &val->format);
17624bf215546Sopenharmony_ci    vn_encode_VkImageType(enc, &val->type);
17625bf215546Sopenharmony_ci    vn_encode_VkSampleCountFlagBits(enc, &val->samples);
17626bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->usage);
17627bf215546Sopenharmony_ci    vn_encode_VkImageTiling(enc, &val->tiling);
17628bf215546Sopenharmony_ci}
17629bf215546Sopenharmony_ci
17630bf215546Sopenharmony_cistatic inline void
17631bf215546Sopenharmony_civn_encode_VkPhysicalDeviceSparseImageFormatInfo2(struct vn_cs_encoder *enc, const VkPhysicalDeviceSparseImageFormatInfo2 *val)
17632bf215546Sopenharmony_ci{
17633bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2);
17634bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 });
17635bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSparseImageFormatInfo2_pnext(enc, val->pNext);
17636bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceSparseImageFormatInfo2_self(enc, val);
17637bf215546Sopenharmony_ci}
17638bf215546Sopenharmony_ci
17639bf215546Sopenharmony_ci/* struct VkSparseImageFormatProperties2 chain */
17640bf215546Sopenharmony_ci
17641bf215546Sopenharmony_cistatic inline size_t
17642bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2_pnext(const void *val)
17643bf215546Sopenharmony_ci{
17644bf215546Sopenharmony_ci    /* no known/supported struct */
17645bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17646bf215546Sopenharmony_ci}
17647bf215546Sopenharmony_ci
17648bf215546Sopenharmony_cistatic inline size_t
17649bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2_self(const VkSparseImageFormatProperties2 *val)
17650bf215546Sopenharmony_ci{
17651bf215546Sopenharmony_ci    size_t size = 0;
17652bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17653bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties(&val->properties);
17654bf215546Sopenharmony_ci    return size;
17655bf215546Sopenharmony_ci}
17656bf215546Sopenharmony_ci
17657bf215546Sopenharmony_cistatic inline size_t
17658bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2(const VkSparseImageFormatProperties2 *val)
17659bf215546Sopenharmony_ci{
17660bf215546Sopenharmony_ci    size_t size = 0;
17661bf215546Sopenharmony_ci
17662bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17663bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties2_pnext(val->pNext);
17664bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties2_self(val);
17665bf215546Sopenharmony_ci
17666bf215546Sopenharmony_ci    return size;
17667bf215546Sopenharmony_ci}
17668bf215546Sopenharmony_ci
17669bf215546Sopenharmony_cistatic inline void
17670bf215546Sopenharmony_civn_decode_VkSparseImageFormatProperties2_pnext(struct vn_cs_decoder *dec, const void *val)
17671bf215546Sopenharmony_ci{
17672bf215546Sopenharmony_ci    /* no known/supported struct */
17673bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
17674bf215546Sopenharmony_ci        assert(false);
17675bf215546Sopenharmony_ci}
17676bf215546Sopenharmony_ci
17677bf215546Sopenharmony_cistatic inline void
17678bf215546Sopenharmony_civn_decode_VkSparseImageFormatProperties2_self(struct vn_cs_decoder *dec, VkSparseImageFormatProperties2 *val)
17679bf215546Sopenharmony_ci{
17680bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17681bf215546Sopenharmony_ci    vn_decode_VkSparseImageFormatProperties(dec, &val->properties);
17682bf215546Sopenharmony_ci}
17683bf215546Sopenharmony_ci
17684bf215546Sopenharmony_cistatic inline void
17685bf215546Sopenharmony_civn_decode_VkSparseImageFormatProperties2(struct vn_cs_decoder *dec, VkSparseImageFormatProperties2 *val)
17686bf215546Sopenharmony_ci{
17687bf215546Sopenharmony_ci    VkStructureType stype;
17688bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17689bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2);
17690bf215546Sopenharmony_ci
17691bf215546Sopenharmony_ci    assert(val->sType == stype);
17692bf215546Sopenharmony_ci    vn_decode_VkSparseImageFormatProperties2_pnext(dec, val->pNext);
17693bf215546Sopenharmony_ci    vn_decode_VkSparseImageFormatProperties2_self(dec, val);
17694bf215546Sopenharmony_ci}
17695bf215546Sopenharmony_ci
17696bf215546Sopenharmony_cistatic inline size_t
17697bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2_pnext_partial(const void *val)
17698bf215546Sopenharmony_ci{
17699bf215546Sopenharmony_ci    /* no known/supported struct */
17700bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17701bf215546Sopenharmony_ci}
17702bf215546Sopenharmony_ci
17703bf215546Sopenharmony_cistatic inline size_t
17704bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2_self_partial(const VkSparseImageFormatProperties2 *val)
17705bf215546Sopenharmony_ci{
17706bf215546Sopenharmony_ci    size_t size = 0;
17707bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17708bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties_partial(&val->properties);
17709bf215546Sopenharmony_ci    return size;
17710bf215546Sopenharmony_ci}
17711bf215546Sopenharmony_ci
17712bf215546Sopenharmony_cistatic inline size_t
17713bf215546Sopenharmony_civn_sizeof_VkSparseImageFormatProperties2_partial(const VkSparseImageFormatProperties2 *val)
17714bf215546Sopenharmony_ci{
17715bf215546Sopenharmony_ci    size_t size = 0;
17716bf215546Sopenharmony_ci
17717bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17718bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties2_pnext_partial(val->pNext);
17719bf215546Sopenharmony_ci    size += vn_sizeof_VkSparseImageFormatProperties2_self_partial(val);
17720bf215546Sopenharmony_ci
17721bf215546Sopenharmony_ci    return size;
17722bf215546Sopenharmony_ci}
17723bf215546Sopenharmony_ci
17724bf215546Sopenharmony_cistatic inline void
17725bf215546Sopenharmony_civn_encode_VkSparseImageFormatProperties2_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17726bf215546Sopenharmony_ci{
17727bf215546Sopenharmony_ci    /* no known/supported struct */
17728bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17729bf215546Sopenharmony_ci}
17730bf215546Sopenharmony_ci
17731bf215546Sopenharmony_cistatic inline void
17732bf215546Sopenharmony_civn_encode_VkSparseImageFormatProperties2_self_partial(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties2 *val)
17733bf215546Sopenharmony_ci{
17734bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17735bf215546Sopenharmony_ci    vn_encode_VkSparseImageFormatProperties_partial(enc, &val->properties);
17736bf215546Sopenharmony_ci}
17737bf215546Sopenharmony_ci
17738bf215546Sopenharmony_cistatic inline void
17739bf215546Sopenharmony_civn_encode_VkSparseImageFormatProperties2_partial(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties2 *val)
17740bf215546Sopenharmony_ci{
17741bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2);
17742bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 });
17743bf215546Sopenharmony_ci    vn_encode_VkSparseImageFormatProperties2_pnext_partial(enc, val->pNext);
17744bf215546Sopenharmony_ci    vn_encode_VkSparseImageFormatProperties2_self_partial(enc, val);
17745bf215546Sopenharmony_ci}
17746bf215546Sopenharmony_ci
17747bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExternalBufferInfo chain */
17748bf215546Sopenharmony_ci
17749bf215546Sopenharmony_cistatic inline size_t
17750bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalBufferInfo_pnext(const void *val)
17751bf215546Sopenharmony_ci{
17752bf215546Sopenharmony_ci    /* no known/supported struct */
17753bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17754bf215546Sopenharmony_ci}
17755bf215546Sopenharmony_ci
17756bf215546Sopenharmony_cistatic inline size_t
17757bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalBufferInfo_self(const VkPhysicalDeviceExternalBufferInfo *val)
17758bf215546Sopenharmony_ci{
17759bf215546Sopenharmony_ci    size_t size = 0;
17760bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17761bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
17762bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->usage);
17763bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryHandleTypeFlagBits(&val->handleType);
17764bf215546Sopenharmony_ci    return size;
17765bf215546Sopenharmony_ci}
17766bf215546Sopenharmony_ci
17767bf215546Sopenharmony_cistatic inline size_t
17768bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalBufferInfo(const VkPhysicalDeviceExternalBufferInfo *val)
17769bf215546Sopenharmony_ci{
17770bf215546Sopenharmony_ci    size_t size = 0;
17771bf215546Sopenharmony_ci
17772bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17773bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalBufferInfo_pnext(val->pNext);
17774bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalBufferInfo_self(val);
17775bf215546Sopenharmony_ci
17776bf215546Sopenharmony_ci    return size;
17777bf215546Sopenharmony_ci}
17778bf215546Sopenharmony_ci
17779bf215546Sopenharmony_cistatic inline void
17780bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalBufferInfo_pnext(struct vn_cs_encoder *enc, const void *val)
17781bf215546Sopenharmony_ci{
17782bf215546Sopenharmony_ci    /* no known/supported struct */
17783bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17784bf215546Sopenharmony_ci}
17785bf215546Sopenharmony_ci
17786bf215546Sopenharmony_cistatic inline void
17787bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalBufferInfo_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalBufferInfo *val)
17788bf215546Sopenharmony_ci{
17789bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17790bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->flags);
17791bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->usage);
17792bf215546Sopenharmony_ci    vn_encode_VkExternalMemoryHandleTypeFlagBits(enc, &val->handleType);
17793bf215546Sopenharmony_ci}
17794bf215546Sopenharmony_ci
17795bf215546Sopenharmony_cistatic inline void
17796bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalBufferInfo(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalBufferInfo *val)
17797bf215546Sopenharmony_ci{
17798bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO);
17799bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO });
17800bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalBufferInfo_pnext(enc, val->pNext);
17801bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalBufferInfo_self(enc, val);
17802bf215546Sopenharmony_ci}
17803bf215546Sopenharmony_ci
17804bf215546Sopenharmony_ci/* struct VkExternalBufferProperties chain */
17805bf215546Sopenharmony_ci
17806bf215546Sopenharmony_cistatic inline size_t
17807bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties_pnext(const void *val)
17808bf215546Sopenharmony_ci{
17809bf215546Sopenharmony_ci    /* no known/supported struct */
17810bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17811bf215546Sopenharmony_ci}
17812bf215546Sopenharmony_ci
17813bf215546Sopenharmony_cistatic inline size_t
17814bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties_self(const VkExternalBufferProperties *val)
17815bf215546Sopenharmony_ci{
17816bf215546Sopenharmony_ci    size_t size = 0;
17817bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17818bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryProperties(&val->externalMemoryProperties);
17819bf215546Sopenharmony_ci    return size;
17820bf215546Sopenharmony_ci}
17821bf215546Sopenharmony_ci
17822bf215546Sopenharmony_cistatic inline size_t
17823bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties(const VkExternalBufferProperties *val)
17824bf215546Sopenharmony_ci{
17825bf215546Sopenharmony_ci    size_t size = 0;
17826bf215546Sopenharmony_ci
17827bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17828bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalBufferProperties_pnext(val->pNext);
17829bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalBufferProperties_self(val);
17830bf215546Sopenharmony_ci
17831bf215546Sopenharmony_ci    return size;
17832bf215546Sopenharmony_ci}
17833bf215546Sopenharmony_ci
17834bf215546Sopenharmony_cistatic inline void
17835bf215546Sopenharmony_civn_decode_VkExternalBufferProperties_pnext(struct vn_cs_decoder *dec, const void *val)
17836bf215546Sopenharmony_ci{
17837bf215546Sopenharmony_ci    /* no known/supported struct */
17838bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
17839bf215546Sopenharmony_ci        assert(false);
17840bf215546Sopenharmony_ci}
17841bf215546Sopenharmony_ci
17842bf215546Sopenharmony_cistatic inline void
17843bf215546Sopenharmony_civn_decode_VkExternalBufferProperties_self(struct vn_cs_decoder *dec, VkExternalBufferProperties *val)
17844bf215546Sopenharmony_ci{
17845bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17846bf215546Sopenharmony_ci    vn_decode_VkExternalMemoryProperties(dec, &val->externalMemoryProperties);
17847bf215546Sopenharmony_ci}
17848bf215546Sopenharmony_ci
17849bf215546Sopenharmony_cistatic inline void
17850bf215546Sopenharmony_civn_decode_VkExternalBufferProperties(struct vn_cs_decoder *dec, VkExternalBufferProperties *val)
17851bf215546Sopenharmony_ci{
17852bf215546Sopenharmony_ci    VkStructureType stype;
17853bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
17854bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES);
17855bf215546Sopenharmony_ci
17856bf215546Sopenharmony_ci    assert(val->sType == stype);
17857bf215546Sopenharmony_ci    vn_decode_VkExternalBufferProperties_pnext(dec, val->pNext);
17858bf215546Sopenharmony_ci    vn_decode_VkExternalBufferProperties_self(dec, val);
17859bf215546Sopenharmony_ci}
17860bf215546Sopenharmony_ci
17861bf215546Sopenharmony_cistatic inline size_t
17862bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties_pnext_partial(const void *val)
17863bf215546Sopenharmony_ci{
17864bf215546Sopenharmony_ci    /* no known/supported struct */
17865bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17866bf215546Sopenharmony_ci}
17867bf215546Sopenharmony_ci
17868bf215546Sopenharmony_cistatic inline size_t
17869bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties_self_partial(const VkExternalBufferProperties *val)
17870bf215546Sopenharmony_ci{
17871bf215546Sopenharmony_ci    size_t size = 0;
17872bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17873bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalMemoryProperties_partial(&val->externalMemoryProperties);
17874bf215546Sopenharmony_ci    return size;
17875bf215546Sopenharmony_ci}
17876bf215546Sopenharmony_ci
17877bf215546Sopenharmony_cistatic inline size_t
17878bf215546Sopenharmony_civn_sizeof_VkExternalBufferProperties_partial(const VkExternalBufferProperties *val)
17879bf215546Sopenharmony_ci{
17880bf215546Sopenharmony_ci    size_t size = 0;
17881bf215546Sopenharmony_ci
17882bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17883bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalBufferProperties_pnext_partial(val->pNext);
17884bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalBufferProperties_self_partial(val);
17885bf215546Sopenharmony_ci
17886bf215546Sopenharmony_ci    return size;
17887bf215546Sopenharmony_ci}
17888bf215546Sopenharmony_ci
17889bf215546Sopenharmony_cistatic inline void
17890bf215546Sopenharmony_civn_encode_VkExternalBufferProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
17891bf215546Sopenharmony_ci{
17892bf215546Sopenharmony_ci    /* no known/supported struct */
17893bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17894bf215546Sopenharmony_ci}
17895bf215546Sopenharmony_ci
17896bf215546Sopenharmony_cistatic inline void
17897bf215546Sopenharmony_civn_encode_VkExternalBufferProperties_self_partial(struct vn_cs_encoder *enc, const VkExternalBufferProperties *val)
17898bf215546Sopenharmony_ci{
17899bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17900bf215546Sopenharmony_ci    vn_encode_VkExternalMemoryProperties_partial(enc, &val->externalMemoryProperties);
17901bf215546Sopenharmony_ci}
17902bf215546Sopenharmony_ci
17903bf215546Sopenharmony_cistatic inline void
17904bf215546Sopenharmony_civn_encode_VkExternalBufferProperties_partial(struct vn_cs_encoder *enc, const VkExternalBufferProperties *val)
17905bf215546Sopenharmony_ci{
17906bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES);
17907bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES });
17908bf215546Sopenharmony_ci    vn_encode_VkExternalBufferProperties_pnext_partial(enc, val->pNext);
17909bf215546Sopenharmony_ci    vn_encode_VkExternalBufferProperties_self_partial(enc, val);
17910bf215546Sopenharmony_ci}
17911bf215546Sopenharmony_ci
17912bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExternalSemaphoreInfo chain */
17913bf215546Sopenharmony_ci
17914bf215546Sopenharmony_cistatic inline size_t
17915bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo_pnext(const void *val)
17916bf215546Sopenharmony_ci{
17917bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
17918bf215546Sopenharmony_ci    size_t size = 0;
17919bf215546Sopenharmony_ci
17920bf215546Sopenharmony_ci    while (pnext) {
17921bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
17922bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
17923bf215546Sopenharmony_ci            size += vn_sizeof_simple_pointer(pnext);
17924bf215546Sopenharmony_ci            size += vn_sizeof_VkStructureType(&pnext->sType);
17925bf215546Sopenharmony_ci            size += vn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo_pnext(pnext->pNext);
17926bf215546Sopenharmony_ci            size += vn_sizeof_VkSemaphoreTypeCreateInfo_self((const VkSemaphoreTypeCreateInfo *)pnext);
17927bf215546Sopenharmony_ci            return size;
17928bf215546Sopenharmony_ci        default:
17929bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
17930bf215546Sopenharmony_ci            break;
17931bf215546Sopenharmony_ci        }
17932bf215546Sopenharmony_ci        pnext = pnext->pNext;
17933bf215546Sopenharmony_ci    }
17934bf215546Sopenharmony_ci
17935bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
17936bf215546Sopenharmony_ci}
17937bf215546Sopenharmony_ci
17938bf215546Sopenharmony_cistatic inline size_t
17939bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo_self(const VkPhysicalDeviceExternalSemaphoreInfo *val)
17940bf215546Sopenharmony_ci{
17941bf215546Sopenharmony_ci    size_t size = 0;
17942bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17943bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalSemaphoreHandleTypeFlagBits(&val->handleType);
17944bf215546Sopenharmony_ci    return size;
17945bf215546Sopenharmony_ci}
17946bf215546Sopenharmony_ci
17947bf215546Sopenharmony_cistatic inline size_t
17948bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo(const VkPhysicalDeviceExternalSemaphoreInfo *val)
17949bf215546Sopenharmony_ci{
17950bf215546Sopenharmony_ci    size_t size = 0;
17951bf215546Sopenharmony_ci
17952bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
17953bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo_pnext(val->pNext);
17954bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo_self(val);
17955bf215546Sopenharmony_ci
17956bf215546Sopenharmony_ci    return size;
17957bf215546Sopenharmony_ci}
17958bf215546Sopenharmony_ci
17959bf215546Sopenharmony_cistatic inline void
17960bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalSemaphoreInfo_pnext(struct vn_cs_encoder *enc, const void *val)
17961bf215546Sopenharmony_ci{
17962bf215546Sopenharmony_ci    const VkBaseInStructure *pnext = val;
17963bf215546Sopenharmony_ci
17964bf215546Sopenharmony_ci    while (pnext) {
17965bf215546Sopenharmony_ci        switch ((int32_t)pnext->sType) {
17966bf215546Sopenharmony_ci        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
17967bf215546Sopenharmony_ci            vn_encode_simple_pointer(enc, pnext);
17968bf215546Sopenharmony_ci            vn_encode_VkStructureType(enc, &pnext->sType);
17969bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceExternalSemaphoreInfo_pnext(enc, pnext->pNext);
17970bf215546Sopenharmony_ci            vn_encode_VkSemaphoreTypeCreateInfo_self(enc, (const VkSemaphoreTypeCreateInfo *)pnext);
17971bf215546Sopenharmony_ci            return;
17972bf215546Sopenharmony_ci        default:
17973bf215546Sopenharmony_ci            /* ignore unknown/unsupported struct */
17974bf215546Sopenharmony_ci            break;
17975bf215546Sopenharmony_ci        }
17976bf215546Sopenharmony_ci        pnext = pnext->pNext;
17977bf215546Sopenharmony_ci    }
17978bf215546Sopenharmony_ci
17979bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
17980bf215546Sopenharmony_ci}
17981bf215546Sopenharmony_ci
17982bf215546Sopenharmony_cistatic inline void
17983bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalSemaphoreInfo_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalSemaphoreInfo *val)
17984bf215546Sopenharmony_ci{
17985bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
17986bf215546Sopenharmony_ci    vn_encode_VkExternalSemaphoreHandleTypeFlagBits(enc, &val->handleType);
17987bf215546Sopenharmony_ci}
17988bf215546Sopenharmony_ci
17989bf215546Sopenharmony_cistatic inline void
17990bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalSemaphoreInfo(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalSemaphoreInfo *val)
17991bf215546Sopenharmony_ci{
17992bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO);
17993bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO });
17994bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalSemaphoreInfo_pnext(enc, val->pNext);
17995bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalSemaphoreInfo_self(enc, val);
17996bf215546Sopenharmony_ci}
17997bf215546Sopenharmony_ci
17998bf215546Sopenharmony_ci/* struct VkExternalSemaphoreProperties chain */
17999bf215546Sopenharmony_ci
18000bf215546Sopenharmony_cistatic inline size_t
18001bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties_pnext(const void *val)
18002bf215546Sopenharmony_ci{
18003bf215546Sopenharmony_ci    /* no known/supported struct */
18004bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18005bf215546Sopenharmony_ci}
18006bf215546Sopenharmony_ci
18007bf215546Sopenharmony_cistatic inline size_t
18008bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties_self(const VkExternalSemaphoreProperties *val)
18009bf215546Sopenharmony_ci{
18010bf215546Sopenharmony_ci    size_t size = 0;
18011bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18012bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->exportFromImportedHandleTypes);
18013bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->compatibleHandleTypes);
18014bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->externalSemaphoreFeatures);
18015bf215546Sopenharmony_ci    return size;
18016bf215546Sopenharmony_ci}
18017bf215546Sopenharmony_ci
18018bf215546Sopenharmony_cistatic inline size_t
18019bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties(const VkExternalSemaphoreProperties *val)
18020bf215546Sopenharmony_ci{
18021bf215546Sopenharmony_ci    size_t size = 0;
18022bf215546Sopenharmony_ci
18023bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18024bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalSemaphoreProperties_pnext(val->pNext);
18025bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalSemaphoreProperties_self(val);
18026bf215546Sopenharmony_ci
18027bf215546Sopenharmony_ci    return size;
18028bf215546Sopenharmony_ci}
18029bf215546Sopenharmony_ci
18030bf215546Sopenharmony_cistatic inline void
18031bf215546Sopenharmony_civn_decode_VkExternalSemaphoreProperties_pnext(struct vn_cs_decoder *dec, const void *val)
18032bf215546Sopenharmony_ci{
18033bf215546Sopenharmony_ci    /* no known/supported struct */
18034bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
18035bf215546Sopenharmony_ci        assert(false);
18036bf215546Sopenharmony_ci}
18037bf215546Sopenharmony_ci
18038bf215546Sopenharmony_cistatic inline void
18039bf215546Sopenharmony_civn_decode_VkExternalSemaphoreProperties_self(struct vn_cs_decoder *dec, VkExternalSemaphoreProperties *val)
18040bf215546Sopenharmony_ci{
18041bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18042bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->exportFromImportedHandleTypes);
18043bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->compatibleHandleTypes);
18044bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->externalSemaphoreFeatures);
18045bf215546Sopenharmony_ci}
18046bf215546Sopenharmony_ci
18047bf215546Sopenharmony_cistatic inline void
18048bf215546Sopenharmony_civn_decode_VkExternalSemaphoreProperties(struct vn_cs_decoder *dec, VkExternalSemaphoreProperties *val)
18049bf215546Sopenharmony_ci{
18050bf215546Sopenharmony_ci    VkStructureType stype;
18051bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
18052bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES);
18053bf215546Sopenharmony_ci
18054bf215546Sopenharmony_ci    assert(val->sType == stype);
18055bf215546Sopenharmony_ci    vn_decode_VkExternalSemaphoreProperties_pnext(dec, val->pNext);
18056bf215546Sopenharmony_ci    vn_decode_VkExternalSemaphoreProperties_self(dec, val);
18057bf215546Sopenharmony_ci}
18058bf215546Sopenharmony_ci
18059bf215546Sopenharmony_cistatic inline size_t
18060bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties_pnext_partial(const void *val)
18061bf215546Sopenharmony_ci{
18062bf215546Sopenharmony_ci    /* no known/supported struct */
18063bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18064bf215546Sopenharmony_ci}
18065bf215546Sopenharmony_ci
18066bf215546Sopenharmony_cistatic inline size_t
18067bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties_self_partial(const VkExternalSemaphoreProperties *val)
18068bf215546Sopenharmony_ci{
18069bf215546Sopenharmony_ci    size_t size = 0;
18070bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18071bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
18072bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
18073bf215546Sopenharmony_ci    /* skip val->externalSemaphoreFeatures */
18074bf215546Sopenharmony_ci    return size;
18075bf215546Sopenharmony_ci}
18076bf215546Sopenharmony_ci
18077bf215546Sopenharmony_cistatic inline size_t
18078bf215546Sopenharmony_civn_sizeof_VkExternalSemaphoreProperties_partial(const VkExternalSemaphoreProperties *val)
18079bf215546Sopenharmony_ci{
18080bf215546Sopenharmony_ci    size_t size = 0;
18081bf215546Sopenharmony_ci
18082bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18083bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalSemaphoreProperties_pnext_partial(val->pNext);
18084bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalSemaphoreProperties_self_partial(val);
18085bf215546Sopenharmony_ci
18086bf215546Sopenharmony_ci    return size;
18087bf215546Sopenharmony_ci}
18088bf215546Sopenharmony_ci
18089bf215546Sopenharmony_cistatic inline void
18090bf215546Sopenharmony_civn_encode_VkExternalSemaphoreProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
18091bf215546Sopenharmony_ci{
18092bf215546Sopenharmony_ci    /* no known/supported struct */
18093bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18094bf215546Sopenharmony_ci}
18095bf215546Sopenharmony_ci
18096bf215546Sopenharmony_cistatic inline void
18097bf215546Sopenharmony_civn_encode_VkExternalSemaphoreProperties_self_partial(struct vn_cs_encoder *enc, const VkExternalSemaphoreProperties *val)
18098bf215546Sopenharmony_ci{
18099bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18100bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
18101bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
18102bf215546Sopenharmony_ci    /* skip val->externalSemaphoreFeatures */
18103bf215546Sopenharmony_ci}
18104bf215546Sopenharmony_ci
18105bf215546Sopenharmony_cistatic inline void
18106bf215546Sopenharmony_civn_encode_VkExternalSemaphoreProperties_partial(struct vn_cs_encoder *enc, const VkExternalSemaphoreProperties *val)
18107bf215546Sopenharmony_ci{
18108bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES);
18109bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES });
18110bf215546Sopenharmony_ci    vn_encode_VkExternalSemaphoreProperties_pnext_partial(enc, val->pNext);
18111bf215546Sopenharmony_ci    vn_encode_VkExternalSemaphoreProperties_self_partial(enc, val);
18112bf215546Sopenharmony_ci}
18113bf215546Sopenharmony_ci
18114bf215546Sopenharmony_ci/* struct VkPhysicalDeviceExternalFenceInfo chain */
18115bf215546Sopenharmony_ci
18116bf215546Sopenharmony_cistatic inline size_t
18117bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalFenceInfo_pnext(const void *val)
18118bf215546Sopenharmony_ci{
18119bf215546Sopenharmony_ci    /* no known/supported struct */
18120bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18121bf215546Sopenharmony_ci}
18122bf215546Sopenharmony_ci
18123bf215546Sopenharmony_cistatic inline size_t
18124bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalFenceInfo_self(const VkPhysicalDeviceExternalFenceInfo *val)
18125bf215546Sopenharmony_ci{
18126bf215546Sopenharmony_ci    size_t size = 0;
18127bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18128bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalFenceHandleTypeFlagBits(&val->handleType);
18129bf215546Sopenharmony_ci    return size;
18130bf215546Sopenharmony_ci}
18131bf215546Sopenharmony_ci
18132bf215546Sopenharmony_cistatic inline size_t
18133bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceExternalFenceInfo(const VkPhysicalDeviceExternalFenceInfo *val)
18134bf215546Sopenharmony_ci{
18135bf215546Sopenharmony_ci    size_t size = 0;
18136bf215546Sopenharmony_ci
18137bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18138bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalFenceInfo_pnext(val->pNext);
18139bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceExternalFenceInfo_self(val);
18140bf215546Sopenharmony_ci
18141bf215546Sopenharmony_ci    return size;
18142bf215546Sopenharmony_ci}
18143bf215546Sopenharmony_ci
18144bf215546Sopenharmony_cistatic inline void
18145bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalFenceInfo_pnext(struct vn_cs_encoder *enc, const void *val)
18146bf215546Sopenharmony_ci{
18147bf215546Sopenharmony_ci    /* no known/supported struct */
18148bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18149bf215546Sopenharmony_ci}
18150bf215546Sopenharmony_ci
18151bf215546Sopenharmony_cistatic inline void
18152bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalFenceInfo_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalFenceInfo *val)
18153bf215546Sopenharmony_ci{
18154bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18155bf215546Sopenharmony_ci    vn_encode_VkExternalFenceHandleTypeFlagBits(enc, &val->handleType);
18156bf215546Sopenharmony_ci}
18157bf215546Sopenharmony_ci
18158bf215546Sopenharmony_cistatic inline void
18159bf215546Sopenharmony_civn_encode_VkPhysicalDeviceExternalFenceInfo(struct vn_cs_encoder *enc, const VkPhysicalDeviceExternalFenceInfo *val)
18160bf215546Sopenharmony_ci{
18161bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO);
18162bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO });
18163bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalFenceInfo_pnext(enc, val->pNext);
18164bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceExternalFenceInfo_self(enc, val);
18165bf215546Sopenharmony_ci}
18166bf215546Sopenharmony_ci
18167bf215546Sopenharmony_ci/* struct VkExternalFenceProperties chain */
18168bf215546Sopenharmony_ci
18169bf215546Sopenharmony_cistatic inline size_t
18170bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties_pnext(const void *val)
18171bf215546Sopenharmony_ci{
18172bf215546Sopenharmony_ci    /* no known/supported struct */
18173bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18174bf215546Sopenharmony_ci}
18175bf215546Sopenharmony_ci
18176bf215546Sopenharmony_cistatic inline size_t
18177bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties_self(const VkExternalFenceProperties *val)
18178bf215546Sopenharmony_ci{
18179bf215546Sopenharmony_ci    size_t size = 0;
18180bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18181bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->exportFromImportedHandleTypes);
18182bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->compatibleHandleTypes);
18183bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->externalFenceFeatures);
18184bf215546Sopenharmony_ci    return size;
18185bf215546Sopenharmony_ci}
18186bf215546Sopenharmony_ci
18187bf215546Sopenharmony_cistatic inline size_t
18188bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties(const VkExternalFenceProperties *val)
18189bf215546Sopenharmony_ci{
18190bf215546Sopenharmony_ci    size_t size = 0;
18191bf215546Sopenharmony_ci
18192bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18193bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalFenceProperties_pnext(val->pNext);
18194bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalFenceProperties_self(val);
18195bf215546Sopenharmony_ci
18196bf215546Sopenharmony_ci    return size;
18197bf215546Sopenharmony_ci}
18198bf215546Sopenharmony_ci
18199bf215546Sopenharmony_cistatic inline void
18200bf215546Sopenharmony_civn_decode_VkExternalFenceProperties_pnext(struct vn_cs_decoder *dec, const void *val)
18201bf215546Sopenharmony_ci{
18202bf215546Sopenharmony_ci    /* no known/supported struct */
18203bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
18204bf215546Sopenharmony_ci        assert(false);
18205bf215546Sopenharmony_ci}
18206bf215546Sopenharmony_ci
18207bf215546Sopenharmony_cistatic inline void
18208bf215546Sopenharmony_civn_decode_VkExternalFenceProperties_self(struct vn_cs_decoder *dec, VkExternalFenceProperties *val)
18209bf215546Sopenharmony_ci{
18210bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18211bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->exportFromImportedHandleTypes);
18212bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->compatibleHandleTypes);
18213bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->externalFenceFeatures);
18214bf215546Sopenharmony_ci}
18215bf215546Sopenharmony_ci
18216bf215546Sopenharmony_cistatic inline void
18217bf215546Sopenharmony_civn_decode_VkExternalFenceProperties(struct vn_cs_decoder *dec, VkExternalFenceProperties *val)
18218bf215546Sopenharmony_ci{
18219bf215546Sopenharmony_ci    VkStructureType stype;
18220bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
18221bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES);
18222bf215546Sopenharmony_ci
18223bf215546Sopenharmony_ci    assert(val->sType == stype);
18224bf215546Sopenharmony_ci    vn_decode_VkExternalFenceProperties_pnext(dec, val->pNext);
18225bf215546Sopenharmony_ci    vn_decode_VkExternalFenceProperties_self(dec, val);
18226bf215546Sopenharmony_ci}
18227bf215546Sopenharmony_ci
18228bf215546Sopenharmony_cistatic inline size_t
18229bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties_pnext_partial(const void *val)
18230bf215546Sopenharmony_ci{
18231bf215546Sopenharmony_ci    /* no known/supported struct */
18232bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18233bf215546Sopenharmony_ci}
18234bf215546Sopenharmony_ci
18235bf215546Sopenharmony_cistatic inline size_t
18236bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties_self_partial(const VkExternalFenceProperties *val)
18237bf215546Sopenharmony_ci{
18238bf215546Sopenharmony_ci    size_t size = 0;
18239bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18240bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
18241bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
18242bf215546Sopenharmony_ci    /* skip val->externalFenceFeatures */
18243bf215546Sopenharmony_ci    return size;
18244bf215546Sopenharmony_ci}
18245bf215546Sopenharmony_ci
18246bf215546Sopenharmony_cistatic inline size_t
18247bf215546Sopenharmony_civn_sizeof_VkExternalFenceProperties_partial(const VkExternalFenceProperties *val)
18248bf215546Sopenharmony_ci{
18249bf215546Sopenharmony_ci    size_t size = 0;
18250bf215546Sopenharmony_ci
18251bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18252bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalFenceProperties_pnext_partial(val->pNext);
18253bf215546Sopenharmony_ci    size += vn_sizeof_VkExternalFenceProperties_self_partial(val);
18254bf215546Sopenharmony_ci
18255bf215546Sopenharmony_ci    return size;
18256bf215546Sopenharmony_ci}
18257bf215546Sopenharmony_ci
18258bf215546Sopenharmony_cistatic inline void
18259bf215546Sopenharmony_civn_encode_VkExternalFenceProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
18260bf215546Sopenharmony_ci{
18261bf215546Sopenharmony_ci    /* no known/supported struct */
18262bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18263bf215546Sopenharmony_ci}
18264bf215546Sopenharmony_ci
18265bf215546Sopenharmony_cistatic inline void
18266bf215546Sopenharmony_civn_encode_VkExternalFenceProperties_self_partial(struct vn_cs_encoder *enc, const VkExternalFenceProperties *val)
18267bf215546Sopenharmony_ci{
18268bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18269bf215546Sopenharmony_ci    /* skip val->exportFromImportedHandleTypes */
18270bf215546Sopenharmony_ci    /* skip val->compatibleHandleTypes */
18271bf215546Sopenharmony_ci    /* skip val->externalFenceFeatures */
18272bf215546Sopenharmony_ci}
18273bf215546Sopenharmony_ci
18274bf215546Sopenharmony_cistatic inline void
18275bf215546Sopenharmony_civn_encode_VkExternalFenceProperties_partial(struct vn_cs_encoder *enc, const VkExternalFenceProperties *val)
18276bf215546Sopenharmony_ci{
18277bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES);
18278bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES });
18279bf215546Sopenharmony_ci    vn_encode_VkExternalFenceProperties_pnext_partial(enc, val->pNext);
18280bf215546Sopenharmony_ci    vn_encode_VkExternalFenceProperties_self_partial(enc, val);
18281bf215546Sopenharmony_ci}
18282bf215546Sopenharmony_ci
18283bf215546Sopenharmony_ci/* struct VkPhysicalDeviceGroupProperties chain */
18284bf215546Sopenharmony_ci
18285bf215546Sopenharmony_cistatic inline size_t
18286bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties_pnext(const void *val)
18287bf215546Sopenharmony_ci{
18288bf215546Sopenharmony_ci    /* no known/supported struct */
18289bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18290bf215546Sopenharmony_ci}
18291bf215546Sopenharmony_ci
18292bf215546Sopenharmony_cistatic inline size_t
18293bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties_self(const VkPhysicalDeviceGroupProperties *val)
18294bf215546Sopenharmony_ci{
18295bf215546Sopenharmony_ci    size_t size = 0;
18296bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18297bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->physicalDeviceCount);
18298bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DEVICE_GROUP_SIZE);
18299bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; i++)
18300bf215546Sopenharmony_ci        size += vn_sizeof_VkPhysicalDevice(&val->physicalDevices[i]);
18301bf215546Sopenharmony_ci    size += vn_sizeof_VkBool32(&val->subsetAllocation);
18302bf215546Sopenharmony_ci    return size;
18303bf215546Sopenharmony_ci}
18304bf215546Sopenharmony_ci
18305bf215546Sopenharmony_cistatic inline size_t
18306bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties(const VkPhysicalDeviceGroupProperties *val)
18307bf215546Sopenharmony_ci{
18308bf215546Sopenharmony_ci    size_t size = 0;
18309bf215546Sopenharmony_ci
18310bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18311bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceGroupProperties_pnext(val->pNext);
18312bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceGroupProperties_self(val);
18313bf215546Sopenharmony_ci
18314bf215546Sopenharmony_ci    return size;
18315bf215546Sopenharmony_ci}
18316bf215546Sopenharmony_ci
18317bf215546Sopenharmony_cistatic inline void
18318bf215546Sopenharmony_civn_decode_VkPhysicalDeviceGroupProperties_pnext(struct vn_cs_decoder *dec, const void *val)
18319bf215546Sopenharmony_ci{
18320bf215546Sopenharmony_ci    /* no known/supported struct */
18321bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
18322bf215546Sopenharmony_ci        assert(false);
18323bf215546Sopenharmony_ci}
18324bf215546Sopenharmony_ci
18325bf215546Sopenharmony_cistatic inline void
18326bf215546Sopenharmony_civn_decode_VkPhysicalDeviceGroupProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceGroupProperties *val)
18327bf215546Sopenharmony_ci{
18328bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18329bf215546Sopenharmony_ci    vn_decode_uint32_t(dec, &val->physicalDeviceCount);
18330bf215546Sopenharmony_ci    {
18331bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, VK_MAX_DEVICE_GROUP_SIZE);
18332bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
18333bf215546Sopenharmony_ci            vn_decode_VkPhysicalDevice(dec, &val->physicalDevices[i]);
18334bf215546Sopenharmony_ci    }
18335bf215546Sopenharmony_ci    vn_decode_VkBool32(dec, &val->subsetAllocation);
18336bf215546Sopenharmony_ci}
18337bf215546Sopenharmony_ci
18338bf215546Sopenharmony_cistatic inline void
18339bf215546Sopenharmony_civn_decode_VkPhysicalDeviceGroupProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceGroupProperties *val)
18340bf215546Sopenharmony_ci{
18341bf215546Sopenharmony_ci    VkStructureType stype;
18342bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
18343bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES);
18344bf215546Sopenharmony_ci
18345bf215546Sopenharmony_ci    assert(val->sType == stype);
18346bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceGroupProperties_pnext(dec, val->pNext);
18347bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceGroupProperties_self(dec, val);
18348bf215546Sopenharmony_ci}
18349bf215546Sopenharmony_ci
18350bf215546Sopenharmony_cistatic inline size_t
18351bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties_pnext_partial(const void *val)
18352bf215546Sopenharmony_ci{
18353bf215546Sopenharmony_ci    /* no known/supported struct */
18354bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18355bf215546Sopenharmony_ci}
18356bf215546Sopenharmony_ci
18357bf215546Sopenharmony_cistatic inline size_t
18358bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties_self_partial(const VkPhysicalDeviceGroupProperties *val)
18359bf215546Sopenharmony_ci{
18360bf215546Sopenharmony_ci    size_t size = 0;
18361bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18362bf215546Sopenharmony_ci    /* skip val->physicalDeviceCount */
18363bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DEVICE_GROUP_SIZE);
18364bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; i++)
18365bf215546Sopenharmony_ci        size += vn_sizeof_VkPhysicalDevice(&val->physicalDevices[i]);
18366bf215546Sopenharmony_ci    /* skip val->subsetAllocation */
18367bf215546Sopenharmony_ci    return size;
18368bf215546Sopenharmony_ci}
18369bf215546Sopenharmony_ci
18370bf215546Sopenharmony_cistatic inline size_t
18371bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceGroupProperties_partial(const VkPhysicalDeviceGroupProperties *val)
18372bf215546Sopenharmony_ci{
18373bf215546Sopenharmony_ci    size_t size = 0;
18374bf215546Sopenharmony_ci
18375bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18376bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceGroupProperties_pnext_partial(val->pNext);
18377bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceGroupProperties_self_partial(val);
18378bf215546Sopenharmony_ci
18379bf215546Sopenharmony_ci    return size;
18380bf215546Sopenharmony_ci}
18381bf215546Sopenharmony_ci
18382bf215546Sopenharmony_cistatic inline void
18383bf215546Sopenharmony_civn_encode_VkPhysicalDeviceGroupProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
18384bf215546Sopenharmony_ci{
18385bf215546Sopenharmony_ci    /* no known/supported struct */
18386bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18387bf215546Sopenharmony_ci}
18388bf215546Sopenharmony_ci
18389bf215546Sopenharmony_cistatic inline void
18390bf215546Sopenharmony_civn_encode_VkPhysicalDeviceGroupProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceGroupProperties *val)
18391bf215546Sopenharmony_ci{
18392bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18393bf215546Sopenharmony_ci    /* skip val->physicalDeviceCount */
18394bf215546Sopenharmony_ci    vn_encode_array_size(enc, VK_MAX_DEVICE_GROUP_SIZE);
18395bf215546Sopenharmony_ci    for (uint32_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; i++)
18396bf215546Sopenharmony_ci        vn_encode_VkPhysicalDevice(enc, &val->physicalDevices[i]);
18397bf215546Sopenharmony_ci    /* skip val->subsetAllocation */
18398bf215546Sopenharmony_ci}
18399bf215546Sopenharmony_ci
18400bf215546Sopenharmony_cistatic inline void
18401bf215546Sopenharmony_civn_encode_VkPhysicalDeviceGroupProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceGroupProperties *val)
18402bf215546Sopenharmony_ci{
18403bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES);
18404bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES });
18405bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceGroupProperties_pnext_partial(enc, val->pNext);
18406bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceGroupProperties_self_partial(enc, val);
18407bf215546Sopenharmony_ci}
18408bf215546Sopenharmony_ci
18409bf215546Sopenharmony_ci/* struct VkDeviceQueueInfo2 chain */
18410bf215546Sopenharmony_ci
18411bf215546Sopenharmony_cistatic inline size_t
18412bf215546Sopenharmony_civn_sizeof_VkDeviceQueueInfo2_pnext(const void *val)
18413bf215546Sopenharmony_ci{
18414bf215546Sopenharmony_ci    /* no known/supported struct */
18415bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18416bf215546Sopenharmony_ci}
18417bf215546Sopenharmony_ci
18418bf215546Sopenharmony_cistatic inline size_t
18419bf215546Sopenharmony_civn_sizeof_VkDeviceQueueInfo2_self(const VkDeviceQueueInfo2 *val)
18420bf215546Sopenharmony_ci{
18421bf215546Sopenharmony_ci    size_t size = 0;
18422bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18423bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->flags);
18424bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueFamilyIndex);
18425bf215546Sopenharmony_ci    size += vn_sizeof_uint32_t(&val->queueIndex);
18426bf215546Sopenharmony_ci    return size;
18427bf215546Sopenharmony_ci}
18428bf215546Sopenharmony_ci
18429bf215546Sopenharmony_cistatic inline size_t
18430bf215546Sopenharmony_civn_sizeof_VkDeviceQueueInfo2(const VkDeviceQueueInfo2 *val)
18431bf215546Sopenharmony_ci{
18432bf215546Sopenharmony_ci    size_t size = 0;
18433bf215546Sopenharmony_ci
18434bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18435bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceQueueInfo2_pnext(val->pNext);
18436bf215546Sopenharmony_ci    size += vn_sizeof_VkDeviceQueueInfo2_self(val);
18437bf215546Sopenharmony_ci
18438bf215546Sopenharmony_ci    return size;
18439bf215546Sopenharmony_ci}
18440bf215546Sopenharmony_ci
18441bf215546Sopenharmony_cistatic inline void
18442bf215546Sopenharmony_civn_encode_VkDeviceQueueInfo2_pnext(struct vn_cs_encoder *enc, const void *val)
18443bf215546Sopenharmony_ci{
18444bf215546Sopenharmony_ci    /* no known/supported struct */
18445bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18446bf215546Sopenharmony_ci}
18447bf215546Sopenharmony_ci
18448bf215546Sopenharmony_cistatic inline void
18449bf215546Sopenharmony_civn_encode_VkDeviceQueueInfo2_self(struct vn_cs_encoder *enc, const VkDeviceQueueInfo2 *val)
18450bf215546Sopenharmony_ci{
18451bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18452bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &val->flags);
18453bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueFamilyIndex);
18454bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &val->queueIndex);
18455bf215546Sopenharmony_ci}
18456bf215546Sopenharmony_ci
18457bf215546Sopenharmony_cistatic inline void
18458bf215546Sopenharmony_civn_encode_VkDeviceQueueInfo2(struct vn_cs_encoder *enc, const VkDeviceQueueInfo2 *val)
18459bf215546Sopenharmony_ci{
18460bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2);
18461bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 });
18462bf215546Sopenharmony_ci    vn_encode_VkDeviceQueueInfo2_pnext(enc, val->pNext);
18463bf215546Sopenharmony_ci    vn_encode_VkDeviceQueueInfo2_self(enc, val);
18464bf215546Sopenharmony_ci}
18465bf215546Sopenharmony_ci
18466bf215546Sopenharmony_ci/* struct VkCalibratedTimestampInfoEXT chain */
18467bf215546Sopenharmony_ci
18468bf215546Sopenharmony_cistatic inline size_t
18469bf215546Sopenharmony_civn_sizeof_VkCalibratedTimestampInfoEXT_pnext(const void *val)
18470bf215546Sopenharmony_ci{
18471bf215546Sopenharmony_ci    /* no known/supported struct */
18472bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18473bf215546Sopenharmony_ci}
18474bf215546Sopenharmony_ci
18475bf215546Sopenharmony_cistatic inline size_t
18476bf215546Sopenharmony_civn_sizeof_VkCalibratedTimestampInfoEXT_self(const VkCalibratedTimestampInfoEXT *val)
18477bf215546Sopenharmony_ci{
18478bf215546Sopenharmony_ci    size_t size = 0;
18479bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18480bf215546Sopenharmony_ci    size += vn_sizeof_VkTimeDomainEXT(&val->timeDomain);
18481bf215546Sopenharmony_ci    return size;
18482bf215546Sopenharmony_ci}
18483bf215546Sopenharmony_ci
18484bf215546Sopenharmony_cistatic inline size_t
18485bf215546Sopenharmony_civn_sizeof_VkCalibratedTimestampInfoEXT(const VkCalibratedTimestampInfoEXT *val)
18486bf215546Sopenharmony_ci{
18487bf215546Sopenharmony_ci    size_t size = 0;
18488bf215546Sopenharmony_ci
18489bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18490bf215546Sopenharmony_ci    size += vn_sizeof_VkCalibratedTimestampInfoEXT_pnext(val->pNext);
18491bf215546Sopenharmony_ci    size += vn_sizeof_VkCalibratedTimestampInfoEXT_self(val);
18492bf215546Sopenharmony_ci
18493bf215546Sopenharmony_ci    return size;
18494bf215546Sopenharmony_ci}
18495bf215546Sopenharmony_ci
18496bf215546Sopenharmony_cistatic inline void
18497bf215546Sopenharmony_civn_encode_VkCalibratedTimestampInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)
18498bf215546Sopenharmony_ci{
18499bf215546Sopenharmony_ci    /* no known/supported struct */
18500bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18501bf215546Sopenharmony_ci}
18502bf215546Sopenharmony_ci
18503bf215546Sopenharmony_cistatic inline void
18504bf215546Sopenharmony_civn_encode_VkCalibratedTimestampInfoEXT_self(struct vn_cs_encoder *enc, const VkCalibratedTimestampInfoEXT *val)
18505bf215546Sopenharmony_ci{
18506bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18507bf215546Sopenharmony_ci    vn_encode_VkTimeDomainEXT(enc, &val->timeDomain);
18508bf215546Sopenharmony_ci}
18509bf215546Sopenharmony_ci
18510bf215546Sopenharmony_cistatic inline void
18511bf215546Sopenharmony_civn_encode_VkCalibratedTimestampInfoEXT(struct vn_cs_encoder *enc, const VkCalibratedTimestampInfoEXT *val)
18512bf215546Sopenharmony_ci{
18513bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT);
18514bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT });
18515bf215546Sopenharmony_ci    vn_encode_VkCalibratedTimestampInfoEXT_pnext(enc, val->pNext);
18516bf215546Sopenharmony_ci    vn_encode_VkCalibratedTimestampInfoEXT_self(enc, val);
18517bf215546Sopenharmony_ci}
18518bf215546Sopenharmony_ci
18519bf215546Sopenharmony_ci/* struct VkPhysicalDeviceToolProperties chain */
18520bf215546Sopenharmony_ci
18521bf215546Sopenharmony_cistatic inline size_t
18522bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties_pnext(const void *val)
18523bf215546Sopenharmony_ci{
18524bf215546Sopenharmony_ci    /* no known/supported struct */
18525bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18526bf215546Sopenharmony_ci}
18527bf215546Sopenharmony_ci
18528bf215546Sopenharmony_cistatic inline size_t
18529bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties_self(const VkPhysicalDeviceToolProperties *val)
18530bf215546Sopenharmony_ci{
18531bf215546Sopenharmony_ci    size_t size = 0;
18532bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18533bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);
18534bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->name, VK_MAX_EXTENSION_NAME_SIZE);
18535bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);
18536bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->version, VK_MAX_EXTENSION_NAME_SIZE);
18537bf215546Sopenharmony_ci    size += vn_sizeof_VkFlags(&val->purposes);
18538bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_DESCRIPTION_SIZE);
18539bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->description, VK_MAX_DESCRIPTION_SIZE);
18540bf215546Sopenharmony_ci    size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);
18541bf215546Sopenharmony_ci    size += vn_sizeof_char_array(val->layer, VK_MAX_EXTENSION_NAME_SIZE);
18542bf215546Sopenharmony_ci    return size;
18543bf215546Sopenharmony_ci}
18544bf215546Sopenharmony_ci
18545bf215546Sopenharmony_cistatic inline size_t
18546bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties(const VkPhysicalDeviceToolProperties *val)
18547bf215546Sopenharmony_ci{
18548bf215546Sopenharmony_ci    size_t size = 0;
18549bf215546Sopenharmony_ci
18550bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18551bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceToolProperties_pnext(val->pNext);
18552bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceToolProperties_self(val);
18553bf215546Sopenharmony_ci
18554bf215546Sopenharmony_ci    return size;
18555bf215546Sopenharmony_ci}
18556bf215546Sopenharmony_ci
18557bf215546Sopenharmony_cistatic inline void
18558bf215546Sopenharmony_civn_decode_VkPhysicalDeviceToolProperties_pnext(struct vn_cs_decoder *dec, const void *val)
18559bf215546Sopenharmony_ci{
18560bf215546Sopenharmony_ci    /* no known/supported struct */
18561bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec))
18562bf215546Sopenharmony_ci        assert(false);
18563bf215546Sopenharmony_ci}
18564bf215546Sopenharmony_ci
18565bf215546Sopenharmony_cistatic inline void
18566bf215546Sopenharmony_civn_decode_VkPhysicalDeviceToolProperties_self(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val)
18567bf215546Sopenharmony_ci{
18568bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18569bf215546Sopenharmony_ci    {
18570bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
18571bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->name, array_size);
18572bf215546Sopenharmony_ci    }
18573bf215546Sopenharmony_ci    {
18574bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
18575bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->version, array_size);
18576bf215546Sopenharmony_ci    }
18577bf215546Sopenharmony_ci    vn_decode_VkFlags(dec, &val->purposes);
18578bf215546Sopenharmony_ci    {
18579bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_DESCRIPTION_SIZE);
18580bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->description, array_size);
18581bf215546Sopenharmony_ci    }
18582bf215546Sopenharmony_ci    {
18583bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
18584bf215546Sopenharmony_ci        vn_decode_char_array(dec, val->layer, array_size);
18585bf215546Sopenharmony_ci    }
18586bf215546Sopenharmony_ci}
18587bf215546Sopenharmony_ci
18588bf215546Sopenharmony_cistatic inline void
18589bf215546Sopenharmony_civn_decode_VkPhysicalDeviceToolProperties(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val)
18590bf215546Sopenharmony_ci{
18591bf215546Sopenharmony_ci    VkStructureType stype;
18592bf215546Sopenharmony_ci    vn_decode_VkStructureType(dec, &stype);
18593bf215546Sopenharmony_ci    assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES);
18594bf215546Sopenharmony_ci
18595bf215546Sopenharmony_ci    assert(val->sType == stype);
18596bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceToolProperties_pnext(dec, val->pNext);
18597bf215546Sopenharmony_ci    vn_decode_VkPhysicalDeviceToolProperties_self(dec, val);
18598bf215546Sopenharmony_ci}
18599bf215546Sopenharmony_ci
18600bf215546Sopenharmony_cistatic inline size_t
18601bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties_pnext_partial(const void *val)
18602bf215546Sopenharmony_ci{
18603bf215546Sopenharmony_ci    /* no known/supported struct */
18604bf215546Sopenharmony_ci    return vn_sizeof_simple_pointer(NULL);
18605bf215546Sopenharmony_ci}
18606bf215546Sopenharmony_ci
18607bf215546Sopenharmony_cistatic inline size_t
18608bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties_self_partial(const VkPhysicalDeviceToolProperties *val)
18609bf215546Sopenharmony_ci{
18610bf215546Sopenharmony_ci    size_t size = 0;
18611bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18612bf215546Sopenharmony_ci    /* skip val->name */
18613bf215546Sopenharmony_ci    /* skip val->version */
18614bf215546Sopenharmony_ci    /* skip val->purposes */
18615bf215546Sopenharmony_ci    /* skip val->description */
18616bf215546Sopenharmony_ci    /* skip val->layer */
18617bf215546Sopenharmony_ci    return size;
18618bf215546Sopenharmony_ci}
18619bf215546Sopenharmony_ci
18620bf215546Sopenharmony_cistatic inline size_t
18621bf215546Sopenharmony_civn_sizeof_VkPhysicalDeviceToolProperties_partial(const VkPhysicalDeviceToolProperties *val)
18622bf215546Sopenharmony_ci{
18623bf215546Sopenharmony_ci    size_t size = 0;
18624bf215546Sopenharmony_ci
18625bf215546Sopenharmony_ci    size += vn_sizeof_VkStructureType(&val->sType);
18626bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceToolProperties_pnext_partial(val->pNext);
18627bf215546Sopenharmony_ci    size += vn_sizeof_VkPhysicalDeviceToolProperties_self_partial(val);
18628bf215546Sopenharmony_ci
18629bf215546Sopenharmony_ci    return size;
18630bf215546Sopenharmony_ci}
18631bf215546Sopenharmony_ci
18632bf215546Sopenharmony_cistatic inline void
18633bf215546Sopenharmony_civn_encode_VkPhysicalDeviceToolProperties_pnext_partial(struct vn_cs_encoder *enc, const void *val)
18634bf215546Sopenharmony_ci{
18635bf215546Sopenharmony_ci    /* no known/supported struct */
18636bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, NULL);
18637bf215546Sopenharmony_ci}
18638bf215546Sopenharmony_ci
18639bf215546Sopenharmony_cistatic inline void
18640bf215546Sopenharmony_civn_encode_VkPhysicalDeviceToolProperties_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val)
18641bf215546Sopenharmony_ci{
18642bf215546Sopenharmony_ci    /* skip val->{sType,pNext} */
18643bf215546Sopenharmony_ci    /* skip val->name */
18644bf215546Sopenharmony_ci    /* skip val->version */
18645bf215546Sopenharmony_ci    /* skip val->purposes */
18646bf215546Sopenharmony_ci    /* skip val->description */
18647bf215546Sopenharmony_ci    /* skip val->layer */
18648bf215546Sopenharmony_ci}
18649bf215546Sopenharmony_ci
18650bf215546Sopenharmony_cistatic inline void
18651bf215546Sopenharmony_civn_encode_VkPhysicalDeviceToolProperties_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val)
18652bf215546Sopenharmony_ci{
18653bf215546Sopenharmony_ci    assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES);
18654bf215546Sopenharmony_ci    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES });
18655bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceToolProperties_pnext_partial(enc, val->pNext);
18656bf215546Sopenharmony_ci    vn_encode_VkPhysicalDeviceToolProperties_self_partial(enc, val);
18657bf215546Sopenharmony_ci}
18658bf215546Sopenharmony_ci
18659bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
18660bf215546Sopenharmony_ci{
18661bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT;
18662bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18663bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18664bf215546Sopenharmony_ci
18665bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkInstance(&instance);
18666bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPhysicalDeviceCount);
18667bf215546Sopenharmony_ci    if (pPhysicalDeviceCount)
18668bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPhysicalDeviceCount);
18669bf215546Sopenharmony_ci    if (pPhysicalDevices) {
18670bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0));
18671bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0); i++)
18672bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDevice(&pPhysicalDevices[i]);
18673bf215546Sopenharmony_ci    } else {
18674bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
18675bf215546Sopenharmony_ci    }
18676bf215546Sopenharmony_ci
18677bf215546Sopenharmony_ci    return cmd_size;
18678bf215546Sopenharmony_ci}
18679bf215546Sopenharmony_ci
18680bf215546Sopenharmony_cistatic inline void vn_encode_vkEnumeratePhysicalDevices(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
18681bf215546Sopenharmony_ci{
18682bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT;
18683bf215546Sopenharmony_ci
18684bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
18685bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
18686bf215546Sopenharmony_ci
18687bf215546Sopenharmony_ci    vn_encode_VkInstance(enc, &instance);
18688bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPhysicalDeviceCount))
18689bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPhysicalDeviceCount);
18690bf215546Sopenharmony_ci    if (pPhysicalDevices) {
18691bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0));
18692bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0); i++)
18693bf215546Sopenharmony_ci            vn_encode_VkPhysicalDevice(enc, &pPhysicalDevices[i]);
18694bf215546Sopenharmony_ci    } else {
18695bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
18696bf215546Sopenharmony_ci    }
18697bf215546Sopenharmony_ci}
18698bf215546Sopenharmony_ci
18699bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumeratePhysicalDevices_reply(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
18700bf215546Sopenharmony_ci{
18701bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT;
18702bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
18703bf215546Sopenharmony_ci
18704bf215546Sopenharmony_ci    VkResult ret;
18705bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
18706bf215546Sopenharmony_ci    /* skip instance */
18707bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPhysicalDeviceCount);
18708bf215546Sopenharmony_ci    if (pPhysicalDeviceCount)
18709bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPhysicalDeviceCount);
18710bf215546Sopenharmony_ci    if (pPhysicalDevices) {
18711bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0));
18712bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0); i++)
18713bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDevice(&pPhysicalDevices[i]);
18714bf215546Sopenharmony_ci    } else {
18715bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
18716bf215546Sopenharmony_ci    }
18717bf215546Sopenharmony_ci
18718bf215546Sopenharmony_ci    return cmd_size;
18719bf215546Sopenharmony_ci}
18720bf215546Sopenharmony_ci
18721bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkEnumeratePhysicalDevices_reply(struct vn_cs_decoder *dec, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
18722bf215546Sopenharmony_ci{
18723bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
18724bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
18725bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT);
18726bf215546Sopenharmony_ci
18727bf215546Sopenharmony_ci    VkResult ret;
18728bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
18729bf215546Sopenharmony_ci    /* skip instance */
18730bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
18731bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPhysicalDeviceCount);
18732bf215546Sopenharmony_ci    } else {
18733bf215546Sopenharmony_ci        pPhysicalDeviceCount = NULL;
18734bf215546Sopenharmony_ci    }
18735bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
18736bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPhysicalDeviceCount ? *pPhysicalDeviceCount : 0));
18737bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
18738bf215546Sopenharmony_ci            vn_decode_VkPhysicalDevice(dec, &pPhysicalDevices[i]);
18739bf215546Sopenharmony_ci    } else {
18740bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
18741bf215546Sopenharmony_ci        pPhysicalDevices = NULL;
18742bf215546Sopenharmony_ci    }
18743bf215546Sopenharmony_ci
18744bf215546Sopenharmony_ci    return ret;
18745bf215546Sopenharmony_ci}
18746bf215546Sopenharmony_ci
18747bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
18748bf215546Sopenharmony_ci{
18749bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT;
18750bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18751bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18752bf215546Sopenharmony_ci
18753bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
18754bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pProperties);
18755bf215546Sopenharmony_ci    if (pProperties)
18756bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceProperties_partial(pProperties);
18757bf215546Sopenharmony_ci
18758bf215546Sopenharmony_ci    return cmd_size;
18759bf215546Sopenharmony_ci}
18760bf215546Sopenharmony_ci
18761bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
18762bf215546Sopenharmony_ci{
18763bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT;
18764bf215546Sopenharmony_ci
18765bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
18766bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
18767bf215546Sopenharmony_ci
18768bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
18769bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pProperties))
18770bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceProperties_partial(enc, pProperties);
18771bf215546Sopenharmony_ci}
18772bf215546Sopenharmony_ci
18773bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceProperties_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
18774bf215546Sopenharmony_ci{
18775bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT;
18776bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
18777bf215546Sopenharmony_ci
18778bf215546Sopenharmony_ci    /* skip physicalDevice */
18779bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pProperties);
18780bf215546Sopenharmony_ci    if (pProperties)
18781bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceProperties(pProperties);
18782bf215546Sopenharmony_ci
18783bf215546Sopenharmony_ci    return cmd_size;
18784bf215546Sopenharmony_ci}
18785bf215546Sopenharmony_ci
18786bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
18787bf215546Sopenharmony_ci{
18788bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
18789bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
18790bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT);
18791bf215546Sopenharmony_ci
18792bf215546Sopenharmony_ci    /* skip physicalDevice */
18793bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
18794bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties(dec, pProperties);
18795bf215546Sopenharmony_ci    } else {
18796bf215546Sopenharmony_ci        pProperties = NULL;
18797bf215546Sopenharmony_ci    }
18798bf215546Sopenharmony_ci}
18799bf215546Sopenharmony_ci
18800bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
18801bf215546Sopenharmony_ci{
18802bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT;
18803bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18804bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18805bf215546Sopenharmony_ci
18806bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
18807bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueueFamilyPropertyCount);
18808bf215546Sopenharmony_ci    if (pQueueFamilyPropertyCount)
18809bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pQueueFamilyPropertyCount);
18810bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
18811bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
18812bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
18813bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkQueueFamilyProperties_partial(&pQueueFamilyProperties[i]);
18814bf215546Sopenharmony_ci    } else {
18815bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
18816bf215546Sopenharmony_ci    }
18817bf215546Sopenharmony_ci
18818bf215546Sopenharmony_ci    return cmd_size;
18819bf215546Sopenharmony_ci}
18820bf215546Sopenharmony_ci
18821bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
18822bf215546Sopenharmony_ci{
18823bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT;
18824bf215546Sopenharmony_ci
18825bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
18826bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
18827bf215546Sopenharmony_ci
18828bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
18829bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pQueueFamilyPropertyCount))
18830bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pQueueFamilyPropertyCount);
18831bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
18832bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
18833bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
18834bf215546Sopenharmony_ci            vn_encode_VkQueueFamilyProperties_partial(enc, &pQueueFamilyProperties[i]);
18835bf215546Sopenharmony_ci    } else {
18836bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
18837bf215546Sopenharmony_ci    }
18838bf215546Sopenharmony_ci}
18839bf215546Sopenharmony_ci
18840bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties_reply(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
18841bf215546Sopenharmony_ci{
18842bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT;
18843bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
18844bf215546Sopenharmony_ci
18845bf215546Sopenharmony_ci    /* skip physicalDevice */
18846bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueueFamilyPropertyCount);
18847bf215546Sopenharmony_ci    if (pQueueFamilyPropertyCount)
18848bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pQueueFamilyPropertyCount);
18849bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
18850bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
18851bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
18852bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkQueueFamilyProperties(&pQueueFamilyProperties[i]);
18853bf215546Sopenharmony_ci    } else {
18854bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
18855bf215546Sopenharmony_ci    }
18856bf215546Sopenharmony_ci
18857bf215546Sopenharmony_ci    return cmd_size;
18858bf215546Sopenharmony_ci}
18859bf215546Sopenharmony_ci
18860bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
18861bf215546Sopenharmony_ci{
18862bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
18863bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
18864bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT);
18865bf215546Sopenharmony_ci
18866bf215546Sopenharmony_ci    /* skip physicalDevice */
18867bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
18868bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pQueueFamilyPropertyCount);
18869bf215546Sopenharmony_ci    } else {
18870bf215546Sopenharmony_ci        pQueueFamilyPropertyCount = NULL;
18871bf215546Sopenharmony_ci    }
18872bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
18873bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
18874bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
18875bf215546Sopenharmony_ci            vn_decode_VkQueueFamilyProperties(dec, &pQueueFamilyProperties[i]);
18876bf215546Sopenharmony_ci    } else {
18877bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
18878bf215546Sopenharmony_ci        pQueueFamilyProperties = NULL;
18879bf215546Sopenharmony_ci    }
18880bf215546Sopenharmony_ci}
18881bf215546Sopenharmony_ci
18882bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
18883bf215546Sopenharmony_ci{
18884bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT;
18885bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18886bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18887bf215546Sopenharmony_ci
18888bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
18889bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMemoryProperties);
18890bf215546Sopenharmony_ci    if (pMemoryProperties)
18891bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceMemoryProperties_partial(pMemoryProperties);
18892bf215546Sopenharmony_ci
18893bf215546Sopenharmony_ci    return cmd_size;
18894bf215546Sopenharmony_ci}
18895bf215546Sopenharmony_ci
18896bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceMemoryProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
18897bf215546Sopenharmony_ci{
18898bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT;
18899bf215546Sopenharmony_ci
18900bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
18901bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
18902bf215546Sopenharmony_ci
18903bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
18904bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pMemoryProperties))
18905bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceMemoryProperties_partial(enc, pMemoryProperties);
18906bf215546Sopenharmony_ci}
18907bf215546Sopenharmony_ci
18908bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceMemoryProperties_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
18909bf215546Sopenharmony_ci{
18910bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT;
18911bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
18912bf215546Sopenharmony_ci
18913bf215546Sopenharmony_ci    /* skip physicalDevice */
18914bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMemoryProperties);
18915bf215546Sopenharmony_ci    if (pMemoryProperties)
18916bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceMemoryProperties(pMemoryProperties);
18917bf215546Sopenharmony_ci
18918bf215546Sopenharmony_ci    return cmd_size;
18919bf215546Sopenharmony_ci}
18920bf215546Sopenharmony_ci
18921bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceMemoryProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
18922bf215546Sopenharmony_ci{
18923bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
18924bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
18925bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT);
18926bf215546Sopenharmony_ci
18927bf215546Sopenharmony_ci    /* skip physicalDevice */
18928bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
18929bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMemoryProperties(dec, pMemoryProperties);
18930bf215546Sopenharmony_ci    } else {
18931bf215546Sopenharmony_ci        pMemoryProperties = NULL;
18932bf215546Sopenharmony_ci    }
18933bf215546Sopenharmony_ci}
18934bf215546Sopenharmony_ci
18935bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
18936bf215546Sopenharmony_ci{
18937bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT;
18938bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18939bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18940bf215546Sopenharmony_ci
18941bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
18942bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFeatures);
18943bf215546Sopenharmony_ci    if (pFeatures)
18944bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceFeatures_partial(pFeatures);
18945bf215546Sopenharmony_ci
18946bf215546Sopenharmony_ci    return cmd_size;
18947bf215546Sopenharmony_ci}
18948bf215546Sopenharmony_ci
18949bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceFeatures(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
18950bf215546Sopenharmony_ci{
18951bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT;
18952bf215546Sopenharmony_ci
18953bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
18954bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
18955bf215546Sopenharmony_ci
18956bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
18957bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pFeatures))
18958bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceFeatures_partial(enc, pFeatures);
18959bf215546Sopenharmony_ci}
18960bf215546Sopenharmony_ci
18961bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFeatures_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
18962bf215546Sopenharmony_ci{
18963bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT;
18964bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
18965bf215546Sopenharmony_ci
18966bf215546Sopenharmony_ci    /* skip physicalDevice */
18967bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFeatures);
18968bf215546Sopenharmony_ci    if (pFeatures)
18969bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceFeatures(pFeatures);
18970bf215546Sopenharmony_ci
18971bf215546Sopenharmony_ci    return cmd_size;
18972bf215546Sopenharmony_ci}
18973bf215546Sopenharmony_ci
18974bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceFeatures_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
18975bf215546Sopenharmony_ci{
18976bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
18977bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
18978bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT);
18979bf215546Sopenharmony_ci
18980bf215546Sopenharmony_ci    /* skip physicalDevice */
18981bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
18982bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures(dec, pFeatures);
18983bf215546Sopenharmony_ci    } else {
18984bf215546Sopenharmony_ci        pFeatures = NULL;
18985bf215546Sopenharmony_ci    }
18986bf215546Sopenharmony_ci}
18987bf215546Sopenharmony_ci
18988bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
18989bf215546Sopenharmony_ci{
18990bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT;
18991bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
18992bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
18993bf215546Sopenharmony_ci
18994bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
18995bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFormat(&format);
18996bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFormatProperties);
18997bf215546Sopenharmony_ci    if (pFormatProperties)
18998bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkFormatProperties_partial(pFormatProperties);
18999bf215546Sopenharmony_ci
19000bf215546Sopenharmony_ci    return cmd_size;
19001bf215546Sopenharmony_ci}
19002bf215546Sopenharmony_ci
19003bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceFormatProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
19004bf215546Sopenharmony_ci{
19005bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT;
19006bf215546Sopenharmony_ci
19007bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19008bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19009bf215546Sopenharmony_ci
19010bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19011bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &format);
19012bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pFormatProperties))
19013bf215546Sopenharmony_ci        vn_encode_VkFormatProperties_partial(enc, pFormatProperties);
19014bf215546Sopenharmony_ci}
19015bf215546Sopenharmony_ci
19016bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFormatProperties_reply(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
19017bf215546Sopenharmony_ci{
19018bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT;
19019bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19020bf215546Sopenharmony_ci
19021bf215546Sopenharmony_ci    /* skip physicalDevice */
19022bf215546Sopenharmony_ci    /* skip format */
19023bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFormatProperties);
19024bf215546Sopenharmony_ci    if (pFormatProperties)
19025bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkFormatProperties(pFormatProperties);
19026bf215546Sopenharmony_ci
19027bf215546Sopenharmony_ci    return cmd_size;
19028bf215546Sopenharmony_ci}
19029bf215546Sopenharmony_ci
19030bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceFormatProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
19031bf215546Sopenharmony_ci{
19032bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19033bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19034bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT);
19035bf215546Sopenharmony_ci
19036bf215546Sopenharmony_ci    /* skip physicalDevice */
19037bf215546Sopenharmony_ci    /* skip format */
19038bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19039bf215546Sopenharmony_ci        vn_decode_VkFormatProperties(dec, pFormatProperties);
19040bf215546Sopenharmony_ci    } else {
19041bf215546Sopenharmony_ci        pFormatProperties = NULL;
19042bf215546Sopenharmony_ci    }
19043bf215546Sopenharmony_ci}
19044bf215546Sopenharmony_ci
19045bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
19046bf215546Sopenharmony_ci{
19047bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT;
19048bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19049bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19050bf215546Sopenharmony_ci
19051bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19052bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFormat(&format);
19053bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkImageType(&type);
19054bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkImageTiling(&tiling);
19055bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFlags(&usage);
19056bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFlags(&flags);
19057bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pImageFormatProperties);
19058bf215546Sopenharmony_ci    if (pImageFormatProperties)
19059bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkImageFormatProperties_partial(pImageFormatProperties);
19060bf215546Sopenharmony_ci
19061bf215546Sopenharmony_ci    return cmd_size;
19062bf215546Sopenharmony_ci}
19063bf215546Sopenharmony_ci
19064bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceImageFormatProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
19065bf215546Sopenharmony_ci{
19066bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT;
19067bf215546Sopenharmony_ci
19068bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19069bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19070bf215546Sopenharmony_ci
19071bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19072bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &format);
19073bf215546Sopenharmony_ci    vn_encode_VkImageType(enc, &type);
19074bf215546Sopenharmony_ci    vn_encode_VkImageTiling(enc, &tiling);
19075bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &usage);
19076bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &flags);
19077bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pImageFormatProperties))
19078bf215546Sopenharmony_ci        vn_encode_VkImageFormatProperties_partial(enc, pImageFormatProperties);
19079bf215546Sopenharmony_ci}
19080bf215546Sopenharmony_ci
19081bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceImageFormatProperties_reply(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
19082bf215546Sopenharmony_ci{
19083bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT;
19084bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19085bf215546Sopenharmony_ci
19086bf215546Sopenharmony_ci    VkResult ret;
19087bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19088bf215546Sopenharmony_ci    /* skip physicalDevice */
19089bf215546Sopenharmony_ci    /* skip format */
19090bf215546Sopenharmony_ci    /* skip type */
19091bf215546Sopenharmony_ci    /* skip tiling */
19092bf215546Sopenharmony_ci    /* skip usage */
19093bf215546Sopenharmony_ci    /* skip flags */
19094bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pImageFormatProperties);
19095bf215546Sopenharmony_ci    if (pImageFormatProperties)
19096bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkImageFormatProperties(pImageFormatProperties);
19097bf215546Sopenharmony_ci
19098bf215546Sopenharmony_ci    return cmd_size;
19099bf215546Sopenharmony_ci}
19100bf215546Sopenharmony_ci
19101bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetPhysicalDeviceImageFormatProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
19102bf215546Sopenharmony_ci{
19103bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19104bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19105bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT);
19106bf215546Sopenharmony_ci
19107bf215546Sopenharmony_ci    VkResult ret;
19108bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19109bf215546Sopenharmony_ci    /* skip physicalDevice */
19110bf215546Sopenharmony_ci    /* skip format */
19111bf215546Sopenharmony_ci    /* skip type */
19112bf215546Sopenharmony_ci    /* skip tiling */
19113bf215546Sopenharmony_ci    /* skip usage */
19114bf215546Sopenharmony_ci    /* skip flags */
19115bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19116bf215546Sopenharmony_ci        vn_decode_VkImageFormatProperties(dec, pImageFormatProperties);
19117bf215546Sopenharmony_ci    } else {
19118bf215546Sopenharmony_ci        pImageFormatProperties = NULL;
19119bf215546Sopenharmony_ci    }
19120bf215546Sopenharmony_ci
19121bf215546Sopenharmony_ci    return ret;
19122bf215546Sopenharmony_ci}
19123bf215546Sopenharmony_ci
19124bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
19125bf215546Sopenharmony_ci{
19126bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDevice_EXT;
19127bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19128bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19129bf215546Sopenharmony_ci
19130bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19131bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
19132bf215546Sopenharmony_ci    if (pCreateInfo)
19133bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkDeviceCreateInfo(pCreateInfo);
19134bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pAllocator);
19135bf215546Sopenharmony_ci    if (pAllocator)
19136bf215546Sopenharmony_ci        assert(false);
19137bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pDevice);
19138bf215546Sopenharmony_ci    if (pDevice)
19139bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkDevice(pDevice);
19140bf215546Sopenharmony_ci
19141bf215546Sopenharmony_ci    return cmd_size;
19142bf215546Sopenharmony_ci}
19143bf215546Sopenharmony_ci
19144bf215546Sopenharmony_cistatic inline void vn_encode_vkCreateDevice(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
19145bf215546Sopenharmony_ci{
19146bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDevice_EXT;
19147bf215546Sopenharmony_ci
19148bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19149bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19150bf215546Sopenharmony_ci
19151bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19152bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pCreateInfo))
19153bf215546Sopenharmony_ci        vn_encode_VkDeviceCreateInfo(enc, pCreateInfo);
19154bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pAllocator))
19155bf215546Sopenharmony_ci        assert(false);
19156bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pDevice))
19157bf215546Sopenharmony_ci        vn_encode_VkDevice(enc, pDevice);
19158bf215546Sopenharmony_ci}
19159bf215546Sopenharmony_ci
19160bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkCreateDevice_reply(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
19161bf215546Sopenharmony_ci{
19162bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDevice_EXT;
19163bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19164bf215546Sopenharmony_ci
19165bf215546Sopenharmony_ci    VkResult ret;
19166bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19167bf215546Sopenharmony_ci    /* skip physicalDevice */
19168bf215546Sopenharmony_ci    /* skip pCreateInfo */
19169bf215546Sopenharmony_ci    /* skip pAllocator */
19170bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pDevice);
19171bf215546Sopenharmony_ci    if (pDevice)
19172bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkDevice(pDevice);
19173bf215546Sopenharmony_ci
19174bf215546Sopenharmony_ci    return cmd_size;
19175bf215546Sopenharmony_ci}
19176bf215546Sopenharmony_ci
19177bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkCreateDevice_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
19178bf215546Sopenharmony_ci{
19179bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19180bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19181bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkCreateDevice_EXT);
19182bf215546Sopenharmony_ci
19183bf215546Sopenharmony_ci    VkResult ret;
19184bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19185bf215546Sopenharmony_ci    /* skip physicalDevice */
19186bf215546Sopenharmony_ci    /* skip pCreateInfo */
19187bf215546Sopenharmony_ci    /* skip pAllocator */
19188bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19189bf215546Sopenharmony_ci        vn_decode_VkDevice(dec, pDevice);
19190bf215546Sopenharmony_ci    } else {
19191bf215546Sopenharmony_ci        pDevice = NULL;
19192bf215546Sopenharmony_ci    }
19193bf215546Sopenharmony_ci
19194bf215546Sopenharmony_ci    return ret;
19195bf215546Sopenharmony_ci}
19196bf215546Sopenharmony_ci
19197bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator)
19198bf215546Sopenharmony_ci{
19199bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDevice_EXT;
19200bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19201bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19202bf215546Sopenharmony_ci
19203bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
19204bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pAllocator);
19205bf215546Sopenharmony_ci    if (pAllocator)
19206bf215546Sopenharmony_ci        assert(false);
19207bf215546Sopenharmony_ci
19208bf215546Sopenharmony_ci    return cmd_size;
19209bf215546Sopenharmony_ci}
19210bf215546Sopenharmony_ci
19211bf215546Sopenharmony_cistatic inline void vn_encode_vkDestroyDevice(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkAllocationCallbacks* pAllocator)
19212bf215546Sopenharmony_ci{
19213bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDevice_EXT;
19214bf215546Sopenharmony_ci
19215bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19216bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19217bf215546Sopenharmony_ci
19218bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
19219bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pAllocator))
19220bf215546Sopenharmony_ci        assert(false);
19221bf215546Sopenharmony_ci}
19222bf215546Sopenharmony_ci
19223bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDestroyDevice_reply(VkDevice device, const VkAllocationCallbacks* pAllocator)
19224bf215546Sopenharmony_ci{
19225bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDevice_EXT;
19226bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19227bf215546Sopenharmony_ci
19228bf215546Sopenharmony_ci    /* skip device */
19229bf215546Sopenharmony_ci    /* skip pAllocator */
19230bf215546Sopenharmony_ci
19231bf215546Sopenharmony_ci    return cmd_size;
19232bf215546Sopenharmony_ci}
19233bf215546Sopenharmony_ci
19234bf215546Sopenharmony_cistatic inline void vn_decode_vkDestroyDevice_reply(struct vn_cs_decoder *dec, VkDevice device, const VkAllocationCallbacks* pAllocator)
19235bf215546Sopenharmony_ci{
19236bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19237bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19238bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkDestroyDevice_EXT);
19239bf215546Sopenharmony_ci
19240bf215546Sopenharmony_ci    /* skip device */
19241bf215546Sopenharmony_ci    /* skip pAllocator */
19242bf215546Sopenharmony_ci}
19243bf215546Sopenharmony_ci
19244bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
19245bf215546Sopenharmony_ci{
19246bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT;
19247bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19248bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19249bf215546Sopenharmony_ci
19250bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19251bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19252bf215546Sopenharmony_ci    if (pPropertyCount)
19253bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19254bf215546Sopenharmony_ci    if (pProperties) {
19255bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19256bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19257bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkLayerProperties_partial(&pProperties[i]);
19258bf215546Sopenharmony_ci    } else {
19259bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19260bf215546Sopenharmony_ci    }
19261bf215546Sopenharmony_ci
19262bf215546Sopenharmony_ci    return cmd_size;
19263bf215546Sopenharmony_ci}
19264bf215546Sopenharmony_ci
19265bf215546Sopenharmony_cistatic inline void vn_encode_vkEnumerateDeviceLayerProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
19266bf215546Sopenharmony_ci{
19267bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT;
19268bf215546Sopenharmony_ci
19269bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19270bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19271bf215546Sopenharmony_ci
19272bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19273bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPropertyCount))
19274bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPropertyCount);
19275bf215546Sopenharmony_ci    if (pProperties) {
19276bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPropertyCount ? *pPropertyCount : 0));
19277bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19278bf215546Sopenharmony_ci            vn_encode_VkLayerProperties_partial(enc, &pProperties[i]);
19279bf215546Sopenharmony_ci    } else {
19280bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
19281bf215546Sopenharmony_ci    }
19282bf215546Sopenharmony_ci}
19283bf215546Sopenharmony_ci
19284bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumerateDeviceLayerProperties_reply(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
19285bf215546Sopenharmony_ci{
19286bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT;
19287bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19288bf215546Sopenharmony_ci
19289bf215546Sopenharmony_ci    VkResult ret;
19290bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19291bf215546Sopenharmony_ci    /* skip physicalDevice */
19292bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19293bf215546Sopenharmony_ci    if (pPropertyCount)
19294bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19295bf215546Sopenharmony_ci    if (pProperties) {
19296bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19297bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19298bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkLayerProperties(&pProperties[i]);
19299bf215546Sopenharmony_ci    } else {
19300bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19301bf215546Sopenharmony_ci    }
19302bf215546Sopenharmony_ci
19303bf215546Sopenharmony_ci    return cmd_size;
19304bf215546Sopenharmony_ci}
19305bf215546Sopenharmony_ci
19306bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkEnumerateDeviceLayerProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
19307bf215546Sopenharmony_ci{
19308bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19309bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19310bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT);
19311bf215546Sopenharmony_ci
19312bf215546Sopenharmony_ci    VkResult ret;
19313bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19314bf215546Sopenharmony_ci    /* skip physicalDevice */
19315bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19316bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPropertyCount);
19317bf215546Sopenharmony_ci    } else {
19318bf215546Sopenharmony_ci        pPropertyCount = NULL;
19319bf215546Sopenharmony_ci    }
19320bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
19321bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPropertyCount ? *pPropertyCount : 0));
19322bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
19323bf215546Sopenharmony_ci            vn_decode_VkLayerProperties(dec, &pProperties[i]);
19324bf215546Sopenharmony_ci    } else {
19325bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
19326bf215546Sopenharmony_ci        pProperties = NULL;
19327bf215546Sopenharmony_ci    }
19328bf215546Sopenharmony_ci
19329bf215546Sopenharmony_ci    return ret;
19330bf215546Sopenharmony_ci}
19331bf215546Sopenharmony_ci
19332bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
19333bf215546Sopenharmony_ci{
19334bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT;
19335bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19336bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19337bf215546Sopenharmony_ci
19338bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19339bf215546Sopenharmony_ci    if (pLayerName) {
19340bf215546Sopenharmony_ci        const size_t string_size = strlen(pLayerName) + 1;
19341bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(string_size);
19342bf215546Sopenharmony_ci        cmd_size += vn_sizeof_char_array(pLayerName, string_size);
19343bf215546Sopenharmony_ci    } else {
19344bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19345bf215546Sopenharmony_ci    }
19346bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19347bf215546Sopenharmony_ci    if (pPropertyCount)
19348bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19349bf215546Sopenharmony_ci    if (pProperties) {
19350bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19351bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19352bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkExtensionProperties_partial(&pProperties[i]);
19353bf215546Sopenharmony_ci    } else {
19354bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19355bf215546Sopenharmony_ci    }
19356bf215546Sopenharmony_ci
19357bf215546Sopenharmony_ci    return cmd_size;
19358bf215546Sopenharmony_ci}
19359bf215546Sopenharmony_ci
19360bf215546Sopenharmony_cistatic inline void vn_encode_vkEnumerateDeviceExtensionProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
19361bf215546Sopenharmony_ci{
19362bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT;
19363bf215546Sopenharmony_ci
19364bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19365bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19366bf215546Sopenharmony_ci
19367bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19368bf215546Sopenharmony_ci    if (pLayerName) {
19369bf215546Sopenharmony_ci        const size_t string_size = strlen(pLayerName) + 1;
19370bf215546Sopenharmony_ci        vn_encode_array_size(enc, string_size);
19371bf215546Sopenharmony_ci        vn_encode_char_array(enc, pLayerName, string_size);
19372bf215546Sopenharmony_ci    } else {
19373bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
19374bf215546Sopenharmony_ci    }
19375bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPropertyCount))
19376bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPropertyCount);
19377bf215546Sopenharmony_ci    if (pProperties) {
19378bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPropertyCount ? *pPropertyCount : 0));
19379bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19380bf215546Sopenharmony_ci            vn_encode_VkExtensionProperties_partial(enc, &pProperties[i]);
19381bf215546Sopenharmony_ci    } else {
19382bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
19383bf215546Sopenharmony_ci    }
19384bf215546Sopenharmony_ci}
19385bf215546Sopenharmony_ci
19386bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumerateDeviceExtensionProperties_reply(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
19387bf215546Sopenharmony_ci{
19388bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT;
19389bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19390bf215546Sopenharmony_ci
19391bf215546Sopenharmony_ci    VkResult ret;
19392bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19393bf215546Sopenharmony_ci    /* skip physicalDevice */
19394bf215546Sopenharmony_ci    /* skip pLayerName */
19395bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19396bf215546Sopenharmony_ci    if (pPropertyCount)
19397bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19398bf215546Sopenharmony_ci    if (pProperties) {
19399bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19400bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19401bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkExtensionProperties(&pProperties[i]);
19402bf215546Sopenharmony_ci    } else {
19403bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19404bf215546Sopenharmony_ci    }
19405bf215546Sopenharmony_ci
19406bf215546Sopenharmony_ci    return cmd_size;
19407bf215546Sopenharmony_ci}
19408bf215546Sopenharmony_ci
19409bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkEnumerateDeviceExtensionProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
19410bf215546Sopenharmony_ci{
19411bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19412bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19413bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT);
19414bf215546Sopenharmony_ci
19415bf215546Sopenharmony_ci    VkResult ret;
19416bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19417bf215546Sopenharmony_ci    /* skip physicalDevice */
19418bf215546Sopenharmony_ci    /* skip pLayerName */
19419bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19420bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPropertyCount);
19421bf215546Sopenharmony_ci    } else {
19422bf215546Sopenharmony_ci        pPropertyCount = NULL;
19423bf215546Sopenharmony_ci    }
19424bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
19425bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPropertyCount ? *pPropertyCount : 0));
19426bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
19427bf215546Sopenharmony_ci            vn_decode_VkExtensionProperties(dec, &pProperties[i]);
19428bf215546Sopenharmony_ci    } else {
19429bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
19430bf215546Sopenharmony_ci        pProperties = NULL;
19431bf215546Sopenharmony_ci    }
19432bf215546Sopenharmony_ci
19433bf215546Sopenharmony_ci    return ret;
19434bf215546Sopenharmony_ci}
19435bf215546Sopenharmony_ci
19436bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
19437bf215546Sopenharmony_ci{
19438bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue_EXT;
19439bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19440bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19441bf215546Sopenharmony_ci
19442bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
19443bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&queueFamilyIndex);
19444bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&queueIndex);
19445bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueue);
19446bf215546Sopenharmony_ci    if (pQueue)
19447bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkQueue(pQueue);
19448bf215546Sopenharmony_ci
19449bf215546Sopenharmony_ci    return cmd_size;
19450bf215546Sopenharmony_ci}
19451bf215546Sopenharmony_ci
19452bf215546Sopenharmony_cistatic inline void vn_encode_vkGetDeviceQueue(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
19453bf215546Sopenharmony_ci{
19454bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue_EXT;
19455bf215546Sopenharmony_ci
19456bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19457bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19458bf215546Sopenharmony_ci
19459bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
19460bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &queueFamilyIndex);
19461bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &queueIndex);
19462bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pQueue))
19463bf215546Sopenharmony_ci        vn_encode_VkQueue(enc, pQueue);
19464bf215546Sopenharmony_ci}
19465bf215546Sopenharmony_ci
19466bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceQueue_reply(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
19467bf215546Sopenharmony_ci{
19468bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue_EXT;
19469bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19470bf215546Sopenharmony_ci
19471bf215546Sopenharmony_ci    /* skip device */
19472bf215546Sopenharmony_ci    /* skip queueFamilyIndex */
19473bf215546Sopenharmony_ci    /* skip queueIndex */
19474bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueue);
19475bf215546Sopenharmony_ci    if (pQueue)
19476bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkQueue(pQueue);
19477bf215546Sopenharmony_ci
19478bf215546Sopenharmony_ci    return cmd_size;
19479bf215546Sopenharmony_ci}
19480bf215546Sopenharmony_ci
19481bf215546Sopenharmony_cistatic inline void vn_decode_vkGetDeviceQueue_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
19482bf215546Sopenharmony_ci{
19483bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19484bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19485bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetDeviceQueue_EXT);
19486bf215546Sopenharmony_ci
19487bf215546Sopenharmony_ci    /* skip device */
19488bf215546Sopenharmony_ci    /* skip queueFamilyIndex */
19489bf215546Sopenharmony_ci    /* skip queueIndex */
19490bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19491bf215546Sopenharmony_ci        vn_decode_VkQueue(dec, pQueue);
19492bf215546Sopenharmony_ci    } else {
19493bf215546Sopenharmony_ci        pQueue = NULL;
19494bf215546Sopenharmony_ci    }
19495bf215546Sopenharmony_ci}
19496bf215546Sopenharmony_ci
19497bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDeviceWaitIdle(VkDevice device)
19498bf215546Sopenharmony_ci{
19499bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT;
19500bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19501bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19502bf215546Sopenharmony_ci
19503bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
19504bf215546Sopenharmony_ci
19505bf215546Sopenharmony_ci    return cmd_size;
19506bf215546Sopenharmony_ci}
19507bf215546Sopenharmony_ci
19508bf215546Sopenharmony_cistatic inline void vn_encode_vkDeviceWaitIdle(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device)
19509bf215546Sopenharmony_ci{
19510bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT;
19511bf215546Sopenharmony_ci
19512bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19513bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19514bf215546Sopenharmony_ci
19515bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
19516bf215546Sopenharmony_ci}
19517bf215546Sopenharmony_ci
19518bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDeviceWaitIdle_reply(VkDevice device)
19519bf215546Sopenharmony_ci{
19520bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT;
19521bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19522bf215546Sopenharmony_ci
19523bf215546Sopenharmony_ci    VkResult ret;
19524bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19525bf215546Sopenharmony_ci    /* skip device */
19526bf215546Sopenharmony_ci
19527bf215546Sopenharmony_ci    return cmd_size;
19528bf215546Sopenharmony_ci}
19529bf215546Sopenharmony_ci
19530bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkDeviceWaitIdle_reply(struct vn_cs_decoder *dec, VkDevice device)
19531bf215546Sopenharmony_ci{
19532bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19533bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19534bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT);
19535bf215546Sopenharmony_ci
19536bf215546Sopenharmony_ci    VkResult ret;
19537bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19538bf215546Sopenharmony_ci    /* skip device */
19539bf215546Sopenharmony_ci
19540bf215546Sopenharmony_ci    return ret;
19541bf215546Sopenharmony_ci}
19542bf215546Sopenharmony_ci
19543bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
19544bf215546Sopenharmony_ci{
19545bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT;
19546bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19547bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19548bf215546Sopenharmony_ci
19549bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19550bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFormat(&format);
19551bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkImageType(&type);
19552bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkSampleCountFlagBits(&samples);
19553bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFlags(&usage);
19554bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkImageTiling(&tiling);
19555bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19556bf215546Sopenharmony_ci    if (pPropertyCount)
19557bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19558bf215546Sopenharmony_ci    if (pProperties) {
19559bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19560bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19561bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkSparseImageFormatProperties_partial(&pProperties[i]);
19562bf215546Sopenharmony_ci    } else {
19563bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19564bf215546Sopenharmony_ci    }
19565bf215546Sopenharmony_ci
19566bf215546Sopenharmony_ci    return cmd_size;
19567bf215546Sopenharmony_ci}
19568bf215546Sopenharmony_ci
19569bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
19570bf215546Sopenharmony_ci{
19571bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT;
19572bf215546Sopenharmony_ci
19573bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19574bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19575bf215546Sopenharmony_ci
19576bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19577bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &format);
19578bf215546Sopenharmony_ci    vn_encode_VkImageType(enc, &type);
19579bf215546Sopenharmony_ci    vn_encode_VkSampleCountFlagBits(enc, &samples);
19580bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &usage);
19581bf215546Sopenharmony_ci    vn_encode_VkImageTiling(enc, &tiling);
19582bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPropertyCount))
19583bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPropertyCount);
19584bf215546Sopenharmony_ci    if (pProperties) {
19585bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPropertyCount ? *pPropertyCount : 0));
19586bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19587bf215546Sopenharmony_ci            vn_encode_VkSparseImageFormatProperties_partial(enc, &pProperties[i]);
19588bf215546Sopenharmony_ci    } else {
19589bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
19590bf215546Sopenharmony_ci    }
19591bf215546Sopenharmony_ci}
19592bf215546Sopenharmony_ci
19593bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties_reply(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
19594bf215546Sopenharmony_ci{
19595bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT;
19596bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19597bf215546Sopenharmony_ci
19598bf215546Sopenharmony_ci    /* skip physicalDevice */
19599bf215546Sopenharmony_ci    /* skip format */
19600bf215546Sopenharmony_ci    /* skip type */
19601bf215546Sopenharmony_ci    /* skip samples */
19602bf215546Sopenharmony_ci    /* skip usage */
19603bf215546Sopenharmony_ci    /* skip tiling */
19604bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
19605bf215546Sopenharmony_ci    if (pPropertyCount)
19606bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
19607bf215546Sopenharmony_ci    if (pProperties) {
19608bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
19609bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
19610bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkSparseImageFormatProperties(&pProperties[i]);
19611bf215546Sopenharmony_ci    } else {
19612bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19613bf215546Sopenharmony_ci    }
19614bf215546Sopenharmony_ci
19615bf215546Sopenharmony_ci    return cmd_size;
19616bf215546Sopenharmony_ci}
19617bf215546Sopenharmony_ci
19618bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
19619bf215546Sopenharmony_ci{
19620bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19621bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19622bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT);
19623bf215546Sopenharmony_ci
19624bf215546Sopenharmony_ci    /* skip physicalDevice */
19625bf215546Sopenharmony_ci    /* skip format */
19626bf215546Sopenharmony_ci    /* skip type */
19627bf215546Sopenharmony_ci    /* skip samples */
19628bf215546Sopenharmony_ci    /* skip usage */
19629bf215546Sopenharmony_ci    /* skip tiling */
19630bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19631bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPropertyCount);
19632bf215546Sopenharmony_ci    } else {
19633bf215546Sopenharmony_ci        pPropertyCount = NULL;
19634bf215546Sopenharmony_ci    }
19635bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
19636bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPropertyCount ? *pPropertyCount : 0));
19637bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
19638bf215546Sopenharmony_ci            vn_decode_VkSparseImageFormatProperties(dec, &pProperties[i]);
19639bf215546Sopenharmony_ci    } else {
19640bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
19641bf215546Sopenharmony_ci        pProperties = NULL;
19642bf215546Sopenharmony_ci    }
19643bf215546Sopenharmony_ci}
19644bf215546Sopenharmony_ci
19645bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
19646bf215546Sopenharmony_ci{
19647bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT;
19648bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19649bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19650bf215546Sopenharmony_ci
19651bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19652bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFeatures);
19653bf215546Sopenharmony_ci    if (pFeatures)
19654bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceFeatures2_partial(pFeatures);
19655bf215546Sopenharmony_ci
19656bf215546Sopenharmony_ci    return cmd_size;
19657bf215546Sopenharmony_ci}
19658bf215546Sopenharmony_ci
19659bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceFeatures2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
19660bf215546Sopenharmony_ci{
19661bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT;
19662bf215546Sopenharmony_ci
19663bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19664bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19665bf215546Sopenharmony_ci
19666bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19667bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pFeatures))
19668bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceFeatures2_partial(enc, pFeatures);
19669bf215546Sopenharmony_ci}
19670bf215546Sopenharmony_ci
19671bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFeatures2_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
19672bf215546Sopenharmony_ci{
19673bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT;
19674bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19675bf215546Sopenharmony_ci
19676bf215546Sopenharmony_ci    /* skip physicalDevice */
19677bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFeatures);
19678bf215546Sopenharmony_ci    if (pFeatures)
19679bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceFeatures2(pFeatures);
19680bf215546Sopenharmony_ci
19681bf215546Sopenharmony_ci    return cmd_size;
19682bf215546Sopenharmony_ci}
19683bf215546Sopenharmony_ci
19684bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceFeatures2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
19685bf215546Sopenharmony_ci{
19686bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19687bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19688bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT);
19689bf215546Sopenharmony_ci
19690bf215546Sopenharmony_ci    /* skip physicalDevice */
19691bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19692bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceFeatures2(dec, pFeatures);
19693bf215546Sopenharmony_ci    } else {
19694bf215546Sopenharmony_ci        pFeatures = NULL;
19695bf215546Sopenharmony_ci    }
19696bf215546Sopenharmony_ci}
19697bf215546Sopenharmony_ci
19698bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
19699bf215546Sopenharmony_ci{
19700bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT;
19701bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19702bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19703bf215546Sopenharmony_ci
19704bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19705bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pProperties);
19706bf215546Sopenharmony_ci    if (pProperties)
19707bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceProperties2_partial(pProperties);
19708bf215546Sopenharmony_ci
19709bf215546Sopenharmony_ci    return cmd_size;
19710bf215546Sopenharmony_ci}
19711bf215546Sopenharmony_ci
19712bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
19713bf215546Sopenharmony_ci{
19714bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT;
19715bf215546Sopenharmony_ci
19716bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19717bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19718bf215546Sopenharmony_ci
19719bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19720bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pProperties))
19721bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceProperties2_partial(enc, pProperties);
19722bf215546Sopenharmony_ci}
19723bf215546Sopenharmony_ci
19724bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceProperties2_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
19725bf215546Sopenharmony_ci{
19726bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT;
19727bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19728bf215546Sopenharmony_ci
19729bf215546Sopenharmony_ci    /* skip physicalDevice */
19730bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pProperties);
19731bf215546Sopenharmony_ci    if (pProperties)
19732bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceProperties2(pProperties);
19733bf215546Sopenharmony_ci
19734bf215546Sopenharmony_ci    return cmd_size;
19735bf215546Sopenharmony_ci}
19736bf215546Sopenharmony_ci
19737bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
19738bf215546Sopenharmony_ci{
19739bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19740bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19741bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT);
19742bf215546Sopenharmony_ci
19743bf215546Sopenharmony_ci    /* skip physicalDevice */
19744bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19745bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceProperties2(dec, pProperties);
19746bf215546Sopenharmony_ci    } else {
19747bf215546Sopenharmony_ci        pProperties = NULL;
19748bf215546Sopenharmony_ci    }
19749bf215546Sopenharmony_ci}
19750bf215546Sopenharmony_ci
19751bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
19752bf215546Sopenharmony_ci{
19753bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT;
19754bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19755bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19756bf215546Sopenharmony_ci
19757bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19758bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkFormat(&format);
19759bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFormatProperties);
19760bf215546Sopenharmony_ci    if (pFormatProperties)
19761bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkFormatProperties2_partial(pFormatProperties);
19762bf215546Sopenharmony_ci
19763bf215546Sopenharmony_ci    return cmd_size;
19764bf215546Sopenharmony_ci}
19765bf215546Sopenharmony_ci
19766bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceFormatProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
19767bf215546Sopenharmony_ci{
19768bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT;
19769bf215546Sopenharmony_ci
19770bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19771bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19772bf215546Sopenharmony_ci
19773bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19774bf215546Sopenharmony_ci    vn_encode_VkFormat(enc, &format);
19775bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pFormatProperties))
19776bf215546Sopenharmony_ci        vn_encode_VkFormatProperties2_partial(enc, pFormatProperties);
19777bf215546Sopenharmony_ci}
19778bf215546Sopenharmony_ci
19779bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceFormatProperties2_reply(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
19780bf215546Sopenharmony_ci{
19781bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT;
19782bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19783bf215546Sopenharmony_ci
19784bf215546Sopenharmony_ci    /* skip physicalDevice */
19785bf215546Sopenharmony_ci    /* skip format */
19786bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFormatProperties);
19787bf215546Sopenharmony_ci    if (pFormatProperties)
19788bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkFormatProperties2(pFormatProperties);
19789bf215546Sopenharmony_ci
19790bf215546Sopenharmony_ci    return cmd_size;
19791bf215546Sopenharmony_ci}
19792bf215546Sopenharmony_ci
19793bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceFormatProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
19794bf215546Sopenharmony_ci{
19795bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19796bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19797bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT);
19798bf215546Sopenharmony_ci
19799bf215546Sopenharmony_ci    /* skip physicalDevice */
19800bf215546Sopenharmony_ci    /* skip format */
19801bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19802bf215546Sopenharmony_ci        vn_decode_VkFormatProperties2(dec, pFormatProperties);
19803bf215546Sopenharmony_ci    } else {
19804bf215546Sopenharmony_ci        pFormatProperties = NULL;
19805bf215546Sopenharmony_ci    }
19806bf215546Sopenharmony_ci}
19807bf215546Sopenharmony_ci
19808bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
19809bf215546Sopenharmony_ci{
19810bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT;
19811bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19812bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19813bf215546Sopenharmony_ci
19814bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19815bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pImageFormatInfo);
19816bf215546Sopenharmony_ci    if (pImageFormatInfo)
19817bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceImageFormatInfo2(pImageFormatInfo);
19818bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pImageFormatProperties);
19819bf215546Sopenharmony_ci    if (pImageFormatProperties)
19820bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkImageFormatProperties2_partial(pImageFormatProperties);
19821bf215546Sopenharmony_ci
19822bf215546Sopenharmony_ci    return cmd_size;
19823bf215546Sopenharmony_ci}
19824bf215546Sopenharmony_ci
19825bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceImageFormatProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
19826bf215546Sopenharmony_ci{
19827bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT;
19828bf215546Sopenharmony_ci
19829bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19830bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19831bf215546Sopenharmony_ci
19832bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19833bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pImageFormatInfo))
19834bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceImageFormatInfo2(enc, pImageFormatInfo);
19835bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pImageFormatProperties))
19836bf215546Sopenharmony_ci        vn_encode_VkImageFormatProperties2_partial(enc, pImageFormatProperties);
19837bf215546Sopenharmony_ci}
19838bf215546Sopenharmony_ci
19839bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceImageFormatProperties2_reply(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
19840bf215546Sopenharmony_ci{
19841bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT;
19842bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19843bf215546Sopenharmony_ci
19844bf215546Sopenharmony_ci    VkResult ret;
19845bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
19846bf215546Sopenharmony_ci    /* skip physicalDevice */
19847bf215546Sopenharmony_ci    /* skip pImageFormatInfo */
19848bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pImageFormatProperties);
19849bf215546Sopenharmony_ci    if (pImageFormatProperties)
19850bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkImageFormatProperties2(pImageFormatProperties);
19851bf215546Sopenharmony_ci
19852bf215546Sopenharmony_ci    return cmd_size;
19853bf215546Sopenharmony_ci}
19854bf215546Sopenharmony_ci
19855bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetPhysicalDeviceImageFormatProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
19856bf215546Sopenharmony_ci{
19857bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19858bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19859bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT);
19860bf215546Sopenharmony_ci
19861bf215546Sopenharmony_ci    VkResult ret;
19862bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
19863bf215546Sopenharmony_ci    /* skip physicalDevice */
19864bf215546Sopenharmony_ci    /* skip pImageFormatInfo */
19865bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19866bf215546Sopenharmony_ci        vn_decode_VkImageFormatProperties2(dec, pImageFormatProperties);
19867bf215546Sopenharmony_ci    } else {
19868bf215546Sopenharmony_ci        pImageFormatProperties = NULL;
19869bf215546Sopenharmony_ci    }
19870bf215546Sopenharmony_ci
19871bf215546Sopenharmony_ci    return ret;
19872bf215546Sopenharmony_ci}
19873bf215546Sopenharmony_ci
19874bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
19875bf215546Sopenharmony_ci{
19876bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT;
19877bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19878bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19879bf215546Sopenharmony_ci
19880bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19881bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueueFamilyPropertyCount);
19882bf215546Sopenharmony_ci    if (pQueueFamilyPropertyCount)
19883bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pQueueFamilyPropertyCount);
19884bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
19885bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
19886bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
19887bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkQueueFamilyProperties2_partial(&pQueueFamilyProperties[i]);
19888bf215546Sopenharmony_ci    } else {
19889bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19890bf215546Sopenharmony_ci    }
19891bf215546Sopenharmony_ci
19892bf215546Sopenharmony_ci    return cmd_size;
19893bf215546Sopenharmony_ci}
19894bf215546Sopenharmony_ci
19895bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
19896bf215546Sopenharmony_ci{
19897bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT;
19898bf215546Sopenharmony_ci
19899bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19900bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19901bf215546Sopenharmony_ci
19902bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19903bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pQueueFamilyPropertyCount))
19904bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pQueueFamilyPropertyCount);
19905bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
19906bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
19907bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
19908bf215546Sopenharmony_ci            vn_encode_VkQueueFamilyProperties2_partial(enc, &pQueueFamilyProperties[i]);
19909bf215546Sopenharmony_ci    } else {
19910bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
19911bf215546Sopenharmony_ci    }
19912bf215546Sopenharmony_ci}
19913bf215546Sopenharmony_ci
19914bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties2_reply(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
19915bf215546Sopenharmony_ci{
19916bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT;
19917bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19918bf215546Sopenharmony_ci
19919bf215546Sopenharmony_ci    /* skip physicalDevice */
19920bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueueFamilyPropertyCount);
19921bf215546Sopenharmony_ci    if (pQueueFamilyPropertyCount)
19922bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pQueueFamilyPropertyCount);
19923bf215546Sopenharmony_ci    if (pQueueFamilyProperties) {
19924bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
19925bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0); i++)
19926bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkQueueFamilyProperties2(&pQueueFamilyProperties[i]);
19927bf215546Sopenharmony_ci    } else {
19928bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
19929bf215546Sopenharmony_ci    }
19930bf215546Sopenharmony_ci
19931bf215546Sopenharmony_ci    return cmd_size;
19932bf215546Sopenharmony_ci}
19933bf215546Sopenharmony_ci
19934bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
19935bf215546Sopenharmony_ci{
19936bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19937bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19938bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT);
19939bf215546Sopenharmony_ci
19940bf215546Sopenharmony_ci    /* skip physicalDevice */
19941bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
19942bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pQueueFamilyPropertyCount);
19943bf215546Sopenharmony_ci    } else {
19944bf215546Sopenharmony_ci        pQueueFamilyPropertyCount = NULL;
19945bf215546Sopenharmony_ci    }
19946bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
19947bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pQueueFamilyPropertyCount ? *pQueueFamilyPropertyCount : 0));
19948bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
19949bf215546Sopenharmony_ci            vn_decode_VkQueueFamilyProperties2(dec, &pQueueFamilyProperties[i]);
19950bf215546Sopenharmony_ci    } else {
19951bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
19952bf215546Sopenharmony_ci        pQueueFamilyProperties = NULL;
19953bf215546Sopenharmony_ci    }
19954bf215546Sopenharmony_ci}
19955bf215546Sopenharmony_ci
19956bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
19957bf215546Sopenharmony_ci{
19958bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT;
19959bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
19960bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19961bf215546Sopenharmony_ci
19962bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
19963bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMemoryProperties);
19964bf215546Sopenharmony_ci    if (pMemoryProperties)
19965bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceMemoryProperties2_partial(pMemoryProperties);
19966bf215546Sopenharmony_ci
19967bf215546Sopenharmony_ci    return cmd_size;
19968bf215546Sopenharmony_ci}
19969bf215546Sopenharmony_ci
19970bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceMemoryProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
19971bf215546Sopenharmony_ci{
19972bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT;
19973bf215546Sopenharmony_ci
19974bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
19975bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
19976bf215546Sopenharmony_ci
19977bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
19978bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pMemoryProperties))
19979bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceMemoryProperties2_partial(enc, pMemoryProperties);
19980bf215546Sopenharmony_ci}
19981bf215546Sopenharmony_ci
19982bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceMemoryProperties2_reply(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
19983bf215546Sopenharmony_ci{
19984bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT;
19985bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
19986bf215546Sopenharmony_ci
19987bf215546Sopenharmony_ci    /* skip physicalDevice */
19988bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMemoryProperties);
19989bf215546Sopenharmony_ci    if (pMemoryProperties)
19990bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceMemoryProperties2(pMemoryProperties);
19991bf215546Sopenharmony_ci
19992bf215546Sopenharmony_ci    return cmd_size;
19993bf215546Sopenharmony_ci}
19994bf215546Sopenharmony_ci
19995bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceMemoryProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
19996bf215546Sopenharmony_ci{
19997bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
19998bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
19999bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT);
20000bf215546Sopenharmony_ci
20001bf215546Sopenharmony_ci    /* skip physicalDevice */
20002bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20003bf215546Sopenharmony_ci        vn_decode_VkPhysicalDeviceMemoryProperties2(dec, pMemoryProperties);
20004bf215546Sopenharmony_ci    } else {
20005bf215546Sopenharmony_ci        pMemoryProperties = NULL;
20006bf215546Sopenharmony_ci    }
20007bf215546Sopenharmony_ci}
20008bf215546Sopenharmony_ci
20009bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
20010bf215546Sopenharmony_ci{
20011bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT;
20012bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20013bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20014bf215546Sopenharmony_ci
20015bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20016bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pFormatInfo);
20017bf215546Sopenharmony_ci    if (pFormatInfo)
20018bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceSparseImageFormatInfo2(pFormatInfo);
20019bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
20020bf215546Sopenharmony_ci    if (pPropertyCount)
20021bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
20022bf215546Sopenharmony_ci    if (pProperties) {
20023bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
20024bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
20025bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkSparseImageFormatProperties2_partial(&pProperties[i]);
20026bf215546Sopenharmony_ci    } else {
20027bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20028bf215546Sopenharmony_ci    }
20029bf215546Sopenharmony_ci
20030bf215546Sopenharmony_ci    return cmd_size;
20031bf215546Sopenharmony_ci}
20032bf215546Sopenharmony_ci
20033bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
20034bf215546Sopenharmony_ci{
20035bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT;
20036bf215546Sopenharmony_ci
20037bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20038bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20039bf215546Sopenharmony_ci
20040bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20041bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pFormatInfo))
20042bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceSparseImageFormatInfo2(enc, pFormatInfo);
20043bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPropertyCount))
20044bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPropertyCount);
20045bf215546Sopenharmony_ci    if (pProperties) {
20046bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPropertyCount ? *pPropertyCount : 0));
20047bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
20048bf215546Sopenharmony_ci            vn_encode_VkSparseImageFormatProperties2_partial(enc, &pProperties[i]);
20049bf215546Sopenharmony_ci    } else {
20050bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
20051bf215546Sopenharmony_ci    }
20052bf215546Sopenharmony_ci}
20053bf215546Sopenharmony_ci
20054bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
20055bf215546Sopenharmony_ci{
20056bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT;
20057bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20058bf215546Sopenharmony_ci
20059bf215546Sopenharmony_ci    /* skip physicalDevice */
20060bf215546Sopenharmony_ci    /* skip pFormatInfo */
20061bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPropertyCount);
20062bf215546Sopenharmony_ci    if (pPropertyCount)
20063bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPropertyCount);
20064bf215546Sopenharmony_ci    if (pProperties) {
20065bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPropertyCount ? *pPropertyCount : 0));
20066bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPropertyCount ? *pPropertyCount : 0); i++)
20067bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkSparseImageFormatProperties2(&pProperties[i]);
20068bf215546Sopenharmony_ci    } else {
20069bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20070bf215546Sopenharmony_ci    }
20071bf215546Sopenharmony_ci
20072bf215546Sopenharmony_ci    return cmd_size;
20073bf215546Sopenharmony_ci}
20074bf215546Sopenharmony_ci
20075bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
20076bf215546Sopenharmony_ci{
20077bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20078bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20079bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT);
20080bf215546Sopenharmony_ci
20081bf215546Sopenharmony_ci    /* skip physicalDevice */
20082bf215546Sopenharmony_ci    /* skip pFormatInfo */
20083bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20084bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPropertyCount);
20085bf215546Sopenharmony_ci    } else {
20086bf215546Sopenharmony_ci        pPropertyCount = NULL;
20087bf215546Sopenharmony_ci    }
20088bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
20089bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPropertyCount ? *pPropertyCount : 0));
20090bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
20091bf215546Sopenharmony_ci            vn_decode_VkSparseImageFormatProperties2(dec, &pProperties[i]);
20092bf215546Sopenharmony_ci    } else {
20093bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
20094bf215546Sopenharmony_ci        pProperties = NULL;
20095bf215546Sopenharmony_ci    }
20096bf215546Sopenharmony_ci}
20097bf215546Sopenharmony_ci
20098bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
20099bf215546Sopenharmony_ci{
20100bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT;
20101bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20102bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20103bf215546Sopenharmony_ci
20104bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20105bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalBufferInfo);
20106bf215546Sopenharmony_ci    if (pExternalBufferInfo)
20107bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceExternalBufferInfo(pExternalBufferInfo);
20108bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalBufferProperties);
20109bf215546Sopenharmony_ci    if (pExternalBufferProperties)
20110bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalBufferProperties_partial(pExternalBufferProperties);
20111bf215546Sopenharmony_ci
20112bf215546Sopenharmony_ci    return cmd_size;
20113bf215546Sopenharmony_ci}
20114bf215546Sopenharmony_ci
20115bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceExternalBufferProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
20116bf215546Sopenharmony_ci{
20117bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT;
20118bf215546Sopenharmony_ci
20119bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20120bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20121bf215546Sopenharmony_ci
20122bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20123bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalBufferInfo))
20124bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceExternalBufferInfo(enc, pExternalBufferInfo);
20125bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalBufferProperties))
20126bf215546Sopenharmony_ci        vn_encode_VkExternalBufferProperties_partial(enc, pExternalBufferProperties);
20127bf215546Sopenharmony_ci}
20128bf215546Sopenharmony_ci
20129bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalBufferProperties_reply(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
20130bf215546Sopenharmony_ci{
20131bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT;
20132bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20133bf215546Sopenharmony_ci
20134bf215546Sopenharmony_ci    /* skip physicalDevice */
20135bf215546Sopenharmony_ci    /* skip pExternalBufferInfo */
20136bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalBufferProperties);
20137bf215546Sopenharmony_ci    if (pExternalBufferProperties)
20138bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalBufferProperties(pExternalBufferProperties);
20139bf215546Sopenharmony_ci
20140bf215546Sopenharmony_ci    return cmd_size;
20141bf215546Sopenharmony_ci}
20142bf215546Sopenharmony_ci
20143bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceExternalBufferProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
20144bf215546Sopenharmony_ci{
20145bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20146bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20147bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT);
20148bf215546Sopenharmony_ci
20149bf215546Sopenharmony_ci    /* skip physicalDevice */
20150bf215546Sopenharmony_ci    /* skip pExternalBufferInfo */
20151bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20152bf215546Sopenharmony_ci        vn_decode_VkExternalBufferProperties(dec, pExternalBufferProperties);
20153bf215546Sopenharmony_ci    } else {
20154bf215546Sopenharmony_ci        pExternalBufferProperties = NULL;
20155bf215546Sopenharmony_ci    }
20156bf215546Sopenharmony_ci}
20157bf215546Sopenharmony_ci
20158bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
20159bf215546Sopenharmony_ci{
20160bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT;
20161bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20162bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20163bf215546Sopenharmony_ci
20164bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20165bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalSemaphoreInfo);
20166bf215546Sopenharmony_ci    if (pExternalSemaphoreInfo)
20167bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceExternalSemaphoreInfo(pExternalSemaphoreInfo);
20168bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalSemaphoreProperties);
20169bf215546Sopenharmony_ci    if (pExternalSemaphoreProperties)
20170bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalSemaphoreProperties_partial(pExternalSemaphoreProperties);
20171bf215546Sopenharmony_ci
20172bf215546Sopenharmony_ci    return cmd_size;
20173bf215546Sopenharmony_ci}
20174bf215546Sopenharmony_ci
20175bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
20176bf215546Sopenharmony_ci{
20177bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT;
20178bf215546Sopenharmony_ci
20179bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20180bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20181bf215546Sopenharmony_ci
20182bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20183bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalSemaphoreInfo))
20184bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceExternalSemaphoreInfo(enc, pExternalSemaphoreInfo);
20185bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalSemaphoreProperties))
20186bf215546Sopenharmony_ci        vn_encode_VkExternalSemaphoreProperties_partial(enc, pExternalSemaphoreProperties);
20187bf215546Sopenharmony_ci}
20188bf215546Sopenharmony_ci
20189bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
20190bf215546Sopenharmony_ci{
20191bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT;
20192bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20193bf215546Sopenharmony_ci
20194bf215546Sopenharmony_ci    /* skip physicalDevice */
20195bf215546Sopenharmony_ci    /* skip pExternalSemaphoreInfo */
20196bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalSemaphoreProperties);
20197bf215546Sopenharmony_ci    if (pExternalSemaphoreProperties)
20198bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalSemaphoreProperties(pExternalSemaphoreProperties);
20199bf215546Sopenharmony_ci
20200bf215546Sopenharmony_ci    return cmd_size;
20201bf215546Sopenharmony_ci}
20202bf215546Sopenharmony_ci
20203bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
20204bf215546Sopenharmony_ci{
20205bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20206bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20207bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT);
20208bf215546Sopenharmony_ci
20209bf215546Sopenharmony_ci    /* skip physicalDevice */
20210bf215546Sopenharmony_ci    /* skip pExternalSemaphoreInfo */
20211bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20212bf215546Sopenharmony_ci        vn_decode_VkExternalSemaphoreProperties(dec, pExternalSemaphoreProperties);
20213bf215546Sopenharmony_ci    } else {
20214bf215546Sopenharmony_ci        pExternalSemaphoreProperties = NULL;
20215bf215546Sopenharmony_ci    }
20216bf215546Sopenharmony_ci}
20217bf215546Sopenharmony_ci
20218bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
20219bf215546Sopenharmony_ci{
20220bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT;
20221bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20222bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20223bf215546Sopenharmony_ci
20224bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20225bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalFenceInfo);
20226bf215546Sopenharmony_ci    if (pExternalFenceInfo)
20227bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkPhysicalDeviceExternalFenceInfo(pExternalFenceInfo);
20228bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalFenceProperties);
20229bf215546Sopenharmony_ci    if (pExternalFenceProperties)
20230bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalFenceProperties_partial(pExternalFenceProperties);
20231bf215546Sopenharmony_ci
20232bf215546Sopenharmony_ci    return cmd_size;
20233bf215546Sopenharmony_ci}
20234bf215546Sopenharmony_ci
20235bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceExternalFenceProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
20236bf215546Sopenharmony_ci{
20237bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT;
20238bf215546Sopenharmony_ci
20239bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20240bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20241bf215546Sopenharmony_ci
20242bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20243bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalFenceInfo))
20244bf215546Sopenharmony_ci        vn_encode_VkPhysicalDeviceExternalFenceInfo(enc, pExternalFenceInfo);
20245bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pExternalFenceProperties))
20246bf215546Sopenharmony_ci        vn_encode_VkExternalFenceProperties_partial(enc, pExternalFenceProperties);
20247bf215546Sopenharmony_ci}
20248bf215546Sopenharmony_ci
20249bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceExternalFenceProperties_reply(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
20250bf215546Sopenharmony_ci{
20251bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT;
20252bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20253bf215546Sopenharmony_ci
20254bf215546Sopenharmony_ci    /* skip physicalDevice */
20255bf215546Sopenharmony_ci    /* skip pExternalFenceInfo */
20256bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pExternalFenceProperties);
20257bf215546Sopenharmony_ci    if (pExternalFenceProperties)
20258bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkExternalFenceProperties(pExternalFenceProperties);
20259bf215546Sopenharmony_ci
20260bf215546Sopenharmony_ci    return cmd_size;
20261bf215546Sopenharmony_ci}
20262bf215546Sopenharmony_ci
20263bf215546Sopenharmony_cistatic inline void vn_decode_vkGetPhysicalDeviceExternalFenceProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
20264bf215546Sopenharmony_ci{
20265bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20266bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20267bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT);
20268bf215546Sopenharmony_ci
20269bf215546Sopenharmony_ci    /* skip physicalDevice */
20270bf215546Sopenharmony_ci    /* skip pExternalFenceInfo */
20271bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20272bf215546Sopenharmony_ci        vn_decode_VkExternalFenceProperties(dec, pExternalFenceProperties);
20273bf215546Sopenharmony_ci    } else {
20274bf215546Sopenharmony_ci        pExternalFenceProperties = NULL;
20275bf215546Sopenharmony_ci    }
20276bf215546Sopenharmony_ci}
20277bf215546Sopenharmony_ci
20278bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumeratePhysicalDeviceGroups(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
20279bf215546Sopenharmony_ci{
20280bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT;
20281bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20282bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20283bf215546Sopenharmony_ci
20284bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkInstance(&instance);
20285bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPhysicalDeviceGroupCount);
20286bf215546Sopenharmony_ci    if (pPhysicalDeviceGroupCount)
20287bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPhysicalDeviceGroupCount);
20288bf215546Sopenharmony_ci    if (pPhysicalDeviceGroupProperties) {
20289bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0));
20290bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0); i++)
20291bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDeviceGroupProperties_partial(&pPhysicalDeviceGroupProperties[i]);
20292bf215546Sopenharmony_ci    } else {
20293bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20294bf215546Sopenharmony_ci    }
20295bf215546Sopenharmony_ci
20296bf215546Sopenharmony_ci    return cmd_size;
20297bf215546Sopenharmony_ci}
20298bf215546Sopenharmony_ci
20299bf215546Sopenharmony_cistatic inline void vn_encode_vkEnumeratePhysicalDeviceGroups(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
20300bf215546Sopenharmony_ci{
20301bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT;
20302bf215546Sopenharmony_ci
20303bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20304bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20305bf215546Sopenharmony_ci
20306bf215546Sopenharmony_ci    vn_encode_VkInstance(enc, &instance);
20307bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pPhysicalDeviceGroupCount))
20308bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pPhysicalDeviceGroupCount);
20309bf215546Sopenharmony_ci    if (pPhysicalDeviceGroupProperties) {
20310bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0));
20311bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0); i++)
20312bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceGroupProperties_partial(enc, &pPhysicalDeviceGroupProperties[i]);
20313bf215546Sopenharmony_ci    } else {
20314bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
20315bf215546Sopenharmony_ci    }
20316bf215546Sopenharmony_ci}
20317bf215546Sopenharmony_ci
20318bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkEnumeratePhysicalDeviceGroups_reply(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
20319bf215546Sopenharmony_ci{
20320bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT;
20321bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20322bf215546Sopenharmony_ci
20323bf215546Sopenharmony_ci    VkResult ret;
20324bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
20325bf215546Sopenharmony_ci    /* skip instance */
20326bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPhysicalDeviceGroupCount);
20327bf215546Sopenharmony_ci    if (pPhysicalDeviceGroupCount)
20328bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pPhysicalDeviceGroupCount);
20329bf215546Sopenharmony_ci    if (pPhysicalDeviceGroupProperties) {
20330bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0));
20331bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0); i++)
20332bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDeviceGroupProperties(&pPhysicalDeviceGroupProperties[i]);
20333bf215546Sopenharmony_ci    } else {
20334bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20335bf215546Sopenharmony_ci    }
20336bf215546Sopenharmony_ci
20337bf215546Sopenharmony_ci    return cmd_size;
20338bf215546Sopenharmony_ci}
20339bf215546Sopenharmony_ci
20340bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkEnumeratePhysicalDeviceGroups_reply(struct vn_cs_decoder *dec, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
20341bf215546Sopenharmony_ci{
20342bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20343bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20344bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT);
20345bf215546Sopenharmony_ci
20346bf215546Sopenharmony_ci    VkResult ret;
20347bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
20348bf215546Sopenharmony_ci    /* skip instance */
20349bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20350bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pPhysicalDeviceGroupCount);
20351bf215546Sopenharmony_ci    } else {
20352bf215546Sopenharmony_ci        pPhysicalDeviceGroupCount = NULL;
20353bf215546Sopenharmony_ci    }
20354bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
20355bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pPhysicalDeviceGroupCount ? *pPhysicalDeviceGroupCount : 0));
20356bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
20357bf215546Sopenharmony_ci            vn_decode_VkPhysicalDeviceGroupProperties(dec, &pPhysicalDeviceGroupProperties[i]);
20358bf215546Sopenharmony_ci    } else {
20359bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
20360bf215546Sopenharmony_ci        pPhysicalDeviceGroupProperties = NULL;
20361bf215546Sopenharmony_ci    }
20362bf215546Sopenharmony_ci
20363bf215546Sopenharmony_ci    return ret;
20364bf215546Sopenharmony_ci}
20365bf215546Sopenharmony_ci
20366bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
20367bf215546Sopenharmony_ci{
20368bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT;
20369bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20370bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20371bf215546Sopenharmony_ci
20372bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
20373bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&heapIndex);
20374bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&localDeviceIndex);
20375bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&remoteDeviceIndex);
20376bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPeerMemoryFeatures); /* out */
20377bf215546Sopenharmony_ci
20378bf215546Sopenharmony_ci    return cmd_size;
20379bf215546Sopenharmony_ci}
20380bf215546Sopenharmony_ci
20381bf215546Sopenharmony_cistatic inline void vn_encode_vkGetDeviceGroupPeerMemoryFeatures(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
20382bf215546Sopenharmony_ci{
20383bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT;
20384bf215546Sopenharmony_ci
20385bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20386bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20387bf215546Sopenharmony_ci
20388bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
20389bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &heapIndex);
20390bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &localDeviceIndex);
20391bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &remoteDeviceIndex);
20392bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, pPeerMemoryFeatures); /* out */
20393bf215546Sopenharmony_ci}
20394bf215546Sopenharmony_ci
20395bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceGroupPeerMemoryFeatures_reply(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
20396bf215546Sopenharmony_ci{
20397bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT;
20398bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20399bf215546Sopenharmony_ci
20400bf215546Sopenharmony_ci    /* skip device */
20401bf215546Sopenharmony_ci    /* skip heapIndex */
20402bf215546Sopenharmony_ci    /* skip localDeviceIndex */
20403bf215546Sopenharmony_ci    /* skip remoteDeviceIndex */
20404bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pPeerMemoryFeatures);
20405bf215546Sopenharmony_ci    if (pPeerMemoryFeatures)
20406bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkFlags(pPeerMemoryFeatures);
20407bf215546Sopenharmony_ci
20408bf215546Sopenharmony_ci    return cmd_size;
20409bf215546Sopenharmony_ci}
20410bf215546Sopenharmony_ci
20411bf215546Sopenharmony_cistatic inline void vn_decode_vkGetDeviceGroupPeerMemoryFeatures_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
20412bf215546Sopenharmony_ci{
20413bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20414bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20415bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT);
20416bf215546Sopenharmony_ci
20417bf215546Sopenharmony_ci    /* skip device */
20418bf215546Sopenharmony_ci    /* skip heapIndex */
20419bf215546Sopenharmony_ci    /* skip localDeviceIndex */
20420bf215546Sopenharmony_ci    /* skip remoteDeviceIndex */
20421bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20422bf215546Sopenharmony_ci        vn_decode_VkFlags(dec, pPeerMemoryFeatures);
20423bf215546Sopenharmony_ci    } else {
20424bf215546Sopenharmony_ci        pPeerMemoryFeatures = NULL;
20425bf215546Sopenharmony_ci    }
20426bf215546Sopenharmony_ci}
20427bf215546Sopenharmony_ci
20428bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
20429bf215546Sopenharmony_ci{
20430bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT;
20431bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20432bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20433bf215546Sopenharmony_ci
20434bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
20435bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueueInfo);
20436bf215546Sopenharmony_ci    if (pQueueInfo)
20437bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkDeviceQueueInfo2(pQueueInfo);
20438bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueue);
20439bf215546Sopenharmony_ci    if (pQueue)
20440bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkQueue(pQueue);
20441bf215546Sopenharmony_ci
20442bf215546Sopenharmony_ci    return cmd_size;
20443bf215546Sopenharmony_ci}
20444bf215546Sopenharmony_ci
20445bf215546Sopenharmony_cistatic inline void vn_encode_vkGetDeviceQueue2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
20446bf215546Sopenharmony_ci{
20447bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT;
20448bf215546Sopenharmony_ci
20449bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20450bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20451bf215546Sopenharmony_ci
20452bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
20453bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pQueueInfo))
20454bf215546Sopenharmony_ci        vn_encode_VkDeviceQueueInfo2(enc, pQueueInfo);
20455bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pQueue))
20456bf215546Sopenharmony_ci        vn_encode_VkQueue(enc, pQueue);
20457bf215546Sopenharmony_ci}
20458bf215546Sopenharmony_ci
20459bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetDeviceQueue2_reply(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
20460bf215546Sopenharmony_ci{
20461bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT;
20462bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20463bf215546Sopenharmony_ci
20464bf215546Sopenharmony_ci    /* skip device */
20465bf215546Sopenharmony_ci    /* skip pQueueInfo */
20466bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pQueue);
20467bf215546Sopenharmony_ci    if (pQueue)
20468bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkQueue(pQueue);
20469bf215546Sopenharmony_ci
20470bf215546Sopenharmony_ci    return cmd_size;
20471bf215546Sopenharmony_ci}
20472bf215546Sopenharmony_ci
20473bf215546Sopenharmony_cistatic inline void vn_decode_vkGetDeviceQueue2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
20474bf215546Sopenharmony_ci{
20475bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20476bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20477bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT);
20478bf215546Sopenharmony_ci
20479bf215546Sopenharmony_ci    /* skip device */
20480bf215546Sopenharmony_ci    /* skip pQueueInfo */
20481bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20482bf215546Sopenharmony_ci        vn_decode_VkQueue(dec, pQueue);
20483bf215546Sopenharmony_ci    } else {
20484bf215546Sopenharmony_ci        pQueue = NULL;
20485bf215546Sopenharmony_ci    }
20486bf215546Sopenharmony_ci}
20487bf215546Sopenharmony_ci
20488bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
20489bf215546Sopenharmony_ci{
20490bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT;
20491bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20492bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20493bf215546Sopenharmony_ci
20494bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20495bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pTimeDomainCount);
20496bf215546Sopenharmony_ci    if (pTimeDomainCount)
20497bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pTimeDomainCount);
20498bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pTimeDomains); /* out */
20499bf215546Sopenharmony_ci
20500bf215546Sopenharmony_ci    return cmd_size;
20501bf215546Sopenharmony_ci}
20502bf215546Sopenharmony_ci
20503bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
20504bf215546Sopenharmony_ci{
20505bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT;
20506bf215546Sopenharmony_ci
20507bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20508bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20509bf215546Sopenharmony_ci
20510bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20511bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pTimeDomainCount))
20512bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pTimeDomainCount);
20513bf215546Sopenharmony_ci    vn_encode_array_size(enc, pTimeDomains ? (pTimeDomainCount ? *pTimeDomainCount : 0) : 0); /* out */
20514bf215546Sopenharmony_ci}
20515bf215546Sopenharmony_ci
20516bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
20517bf215546Sopenharmony_ci{
20518bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT;
20519bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20520bf215546Sopenharmony_ci
20521bf215546Sopenharmony_ci    VkResult ret;
20522bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
20523bf215546Sopenharmony_ci    /* skip physicalDevice */
20524bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pTimeDomainCount);
20525bf215546Sopenharmony_ci    if (pTimeDomainCount)
20526bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pTimeDomainCount);
20527bf215546Sopenharmony_ci    if (pTimeDomains) {
20528bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pTimeDomainCount ? *pTimeDomainCount : 0));
20529bf215546Sopenharmony_ci        cmd_size += vn_sizeof_VkTimeDomainEXT_array(pTimeDomains, (pTimeDomainCount ? *pTimeDomainCount : 0));
20530bf215546Sopenharmony_ci    } else {
20531bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20532bf215546Sopenharmony_ci    }
20533bf215546Sopenharmony_ci
20534bf215546Sopenharmony_ci    return cmd_size;
20535bf215546Sopenharmony_ci}
20536bf215546Sopenharmony_ci
20537bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
20538bf215546Sopenharmony_ci{
20539bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20540bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20541bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT);
20542bf215546Sopenharmony_ci
20543bf215546Sopenharmony_ci    VkResult ret;
20544bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
20545bf215546Sopenharmony_ci    /* skip physicalDevice */
20546bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20547bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pTimeDomainCount);
20548bf215546Sopenharmony_ci    } else {
20549bf215546Sopenharmony_ci        pTimeDomainCount = NULL;
20550bf215546Sopenharmony_ci    }
20551bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
20552bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, (pTimeDomainCount ? *pTimeDomainCount : 0));
20553bf215546Sopenharmony_ci        vn_decode_VkTimeDomainEXT_array(dec, pTimeDomains, array_size);
20554bf215546Sopenharmony_ci    } else {
20555bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
20556bf215546Sopenharmony_ci        pTimeDomains = NULL;
20557bf215546Sopenharmony_ci    }
20558bf215546Sopenharmony_ci
20559bf215546Sopenharmony_ci    return ret;
20560bf215546Sopenharmony_ci}
20561bf215546Sopenharmony_ci
20562bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
20563bf215546Sopenharmony_ci{
20564bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT;
20565bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20566bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20567bf215546Sopenharmony_ci
20568bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkDevice(&device);
20569bf215546Sopenharmony_ci    cmd_size += vn_sizeof_uint32_t(&timestampCount);
20570bf215546Sopenharmony_ci    if (pTimestampInfos) {
20571bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(timestampCount);
20572bf215546Sopenharmony_ci        for (uint32_t i = 0; i < timestampCount; i++)
20573bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkCalibratedTimestampInfoEXT(&pTimestampInfos[i]);
20574bf215546Sopenharmony_ci    } else {
20575bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20576bf215546Sopenharmony_ci    }
20577bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pTimestamps); /* out */
20578bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMaxDeviation); /* out */
20579bf215546Sopenharmony_ci
20580bf215546Sopenharmony_ci    return cmd_size;
20581bf215546Sopenharmony_ci}
20582bf215546Sopenharmony_ci
20583bf215546Sopenharmony_cistatic inline void vn_encode_vkGetCalibratedTimestampsEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
20584bf215546Sopenharmony_ci{
20585bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT;
20586bf215546Sopenharmony_ci
20587bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20588bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20589bf215546Sopenharmony_ci
20590bf215546Sopenharmony_ci    vn_encode_VkDevice(enc, &device);
20591bf215546Sopenharmony_ci    vn_encode_uint32_t(enc, &timestampCount);
20592bf215546Sopenharmony_ci    if (pTimestampInfos) {
20593bf215546Sopenharmony_ci        vn_encode_array_size(enc, timestampCount);
20594bf215546Sopenharmony_ci        for (uint32_t i = 0; i < timestampCount; i++)
20595bf215546Sopenharmony_ci            vn_encode_VkCalibratedTimestampInfoEXT(enc, &pTimestampInfos[i]);
20596bf215546Sopenharmony_ci    } else {
20597bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
20598bf215546Sopenharmony_ci    }
20599bf215546Sopenharmony_ci    vn_encode_array_size(enc, pTimestamps ? timestampCount : 0); /* out */
20600bf215546Sopenharmony_ci    vn_encode_simple_pointer(enc, pMaxDeviation); /* out */
20601bf215546Sopenharmony_ci}
20602bf215546Sopenharmony_ci
20603bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetCalibratedTimestampsEXT_reply(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
20604bf215546Sopenharmony_ci{
20605bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT;
20606bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20607bf215546Sopenharmony_ci
20608bf215546Sopenharmony_ci    VkResult ret;
20609bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
20610bf215546Sopenharmony_ci    /* skip device */
20611bf215546Sopenharmony_ci    /* skip timestampCount */
20612bf215546Sopenharmony_ci    /* skip pTimestampInfos */
20613bf215546Sopenharmony_ci    if (pTimestamps) {
20614bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(timestampCount);
20615bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint64_t_array(pTimestamps, timestampCount);
20616bf215546Sopenharmony_ci    } else {
20617bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20618bf215546Sopenharmony_ci    }
20619bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pMaxDeviation);
20620bf215546Sopenharmony_ci    if (pMaxDeviation)
20621bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint64_t(pMaxDeviation);
20622bf215546Sopenharmony_ci
20623bf215546Sopenharmony_ci    return cmd_size;
20624bf215546Sopenharmony_ci}
20625bf215546Sopenharmony_ci
20626bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetCalibratedTimestampsEXT_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
20627bf215546Sopenharmony_ci{
20628bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20629bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20630bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT);
20631bf215546Sopenharmony_ci
20632bf215546Sopenharmony_ci    VkResult ret;
20633bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
20634bf215546Sopenharmony_ci    /* skip device */
20635bf215546Sopenharmony_ci    /* skip timestampCount */
20636bf215546Sopenharmony_ci    /* skip pTimestampInfos */
20637bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
20638bf215546Sopenharmony_ci        const size_t array_size = vn_decode_array_size(dec, timestampCount);
20639bf215546Sopenharmony_ci        vn_decode_uint64_t_array(dec, pTimestamps, array_size);
20640bf215546Sopenharmony_ci    } else {
20641bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
20642bf215546Sopenharmony_ci        pTimestamps = NULL;
20643bf215546Sopenharmony_ci    }
20644bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20645bf215546Sopenharmony_ci        vn_decode_uint64_t(dec, pMaxDeviation);
20646bf215546Sopenharmony_ci    } else {
20647bf215546Sopenharmony_ci        pMaxDeviation = NULL;
20648bf215546Sopenharmony_ci    }
20649bf215546Sopenharmony_ci
20650bf215546Sopenharmony_ci    return ret;
20651bf215546Sopenharmony_ci}
20652bf215546Sopenharmony_ci
20653bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
20654bf215546Sopenharmony_ci{
20655bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT;
20656bf215546Sopenharmony_ci    const VkFlags cmd_flags = 0;
20657bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
20658bf215546Sopenharmony_ci
20659bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkPhysicalDevice(&physicalDevice);
20660bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pToolCount);
20661bf215546Sopenharmony_ci    if (pToolCount)
20662bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pToolCount);
20663bf215546Sopenharmony_ci    if (pToolProperties) {
20664bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pToolCount ? *pToolCount : 0));
20665bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pToolCount ? *pToolCount : 0); i++)
20666bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDeviceToolProperties_partial(&pToolProperties[i]);
20667bf215546Sopenharmony_ci    } else {
20668bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20669bf215546Sopenharmony_ci    }
20670bf215546Sopenharmony_ci
20671bf215546Sopenharmony_ci    return cmd_size;
20672bf215546Sopenharmony_ci}
20673bf215546Sopenharmony_ci
20674bf215546Sopenharmony_cistatic inline void vn_encode_vkGetPhysicalDeviceToolProperties(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
20675bf215546Sopenharmony_ci{
20676bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT;
20677bf215546Sopenharmony_ci
20678bf215546Sopenharmony_ci    vn_encode_VkCommandTypeEXT(enc, &cmd_type);
20679bf215546Sopenharmony_ci    vn_encode_VkFlags(enc, &cmd_flags);
20680bf215546Sopenharmony_ci
20681bf215546Sopenharmony_ci    vn_encode_VkPhysicalDevice(enc, &physicalDevice);
20682bf215546Sopenharmony_ci    if (vn_encode_simple_pointer(enc, pToolCount))
20683bf215546Sopenharmony_ci        vn_encode_uint32_t(enc, pToolCount);
20684bf215546Sopenharmony_ci    if (pToolProperties) {
20685bf215546Sopenharmony_ci        vn_encode_array_size(enc, (pToolCount ? *pToolCount : 0));
20686bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pToolCount ? *pToolCount : 0); i++)
20687bf215546Sopenharmony_ci            vn_encode_VkPhysicalDeviceToolProperties_partial(enc, &pToolProperties[i]);
20688bf215546Sopenharmony_ci    } else {
20689bf215546Sopenharmony_ci        vn_encode_array_size(enc, 0);
20690bf215546Sopenharmony_ci    }
20691bf215546Sopenharmony_ci}
20692bf215546Sopenharmony_ci
20693bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetPhysicalDeviceToolProperties_reply(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
20694bf215546Sopenharmony_ci{
20695bf215546Sopenharmony_ci    const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT;
20696bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
20697bf215546Sopenharmony_ci
20698bf215546Sopenharmony_ci    VkResult ret;
20699bf215546Sopenharmony_ci    cmd_size += vn_sizeof_VkResult(&ret);
20700bf215546Sopenharmony_ci    /* skip physicalDevice */
20701bf215546Sopenharmony_ci    cmd_size += vn_sizeof_simple_pointer(pToolCount);
20702bf215546Sopenharmony_ci    if (pToolCount)
20703bf215546Sopenharmony_ci        cmd_size += vn_sizeof_uint32_t(pToolCount);
20704bf215546Sopenharmony_ci    if (pToolProperties) {
20705bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size((pToolCount ? *pToolCount : 0));
20706bf215546Sopenharmony_ci        for (uint32_t i = 0; i < (pToolCount ? *pToolCount : 0); i++)
20707bf215546Sopenharmony_ci            cmd_size += vn_sizeof_VkPhysicalDeviceToolProperties(&pToolProperties[i]);
20708bf215546Sopenharmony_ci    } else {
20709bf215546Sopenharmony_ci        cmd_size += vn_sizeof_array_size(0);
20710bf215546Sopenharmony_ci    }
20711bf215546Sopenharmony_ci
20712bf215546Sopenharmony_ci    return cmd_size;
20713bf215546Sopenharmony_ci}
20714bf215546Sopenharmony_ci
20715bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetPhysicalDeviceToolProperties_reply(struct vn_cs_decoder *dec, VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
20716bf215546Sopenharmony_ci{
20717bf215546Sopenharmony_ci    VkCommandTypeEXT command_type;
20718bf215546Sopenharmony_ci    vn_decode_VkCommandTypeEXT(dec, &command_type);
20719bf215546Sopenharmony_ci    assert(command_type == VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT);
20720bf215546Sopenharmony_ci
20721bf215546Sopenharmony_ci    VkResult ret;
20722bf215546Sopenharmony_ci    vn_decode_VkResult(dec, &ret);
20723bf215546Sopenharmony_ci    /* skip physicalDevice */
20724bf215546Sopenharmony_ci    if (vn_decode_simple_pointer(dec)) {
20725bf215546Sopenharmony_ci        vn_decode_uint32_t(dec, pToolCount);
20726bf215546Sopenharmony_ci    } else {
20727bf215546Sopenharmony_ci        pToolCount = NULL;
20728bf215546Sopenharmony_ci    }
20729bf215546Sopenharmony_ci    if (vn_peek_array_size(dec)) {
20730bf215546Sopenharmony_ci        const uint32_t iter_count = vn_decode_array_size(dec, (pToolCount ? *pToolCount : 0));
20731bf215546Sopenharmony_ci        for (uint32_t i = 0; i < iter_count; i++)
20732bf215546Sopenharmony_ci            vn_decode_VkPhysicalDeviceToolProperties(dec, &pToolProperties[i]);
20733bf215546Sopenharmony_ci    } else {
20734bf215546Sopenharmony_ci        vn_decode_array_size_unchecked(dec);
20735bf215546Sopenharmony_ci        pToolProperties = NULL;
20736bf215546Sopenharmony_ci    }
20737bf215546Sopenharmony_ci
20738bf215546Sopenharmony_ci    return ret;
20739bf215546Sopenharmony_ci}
20740bf215546Sopenharmony_ci
20741bf215546Sopenharmony_cistatic inline void vn_submit_vkEnumeratePhysicalDevices(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices, struct vn_instance_submit_command *submit)
20742bf215546Sopenharmony_ci{
20743bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20744bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20745bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkEnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
20746bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20747bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20748bf215546Sopenharmony_ci        if (!cmd_data)
20749bf215546Sopenharmony_ci            cmd_size = 0;
20750bf215546Sopenharmony_ci    }
20751bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkEnumeratePhysicalDevices_reply(instance, pPhysicalDeviceCount, pPhysicalDevices) : 0;
20752bf215546Sopenharmony_ci
20753bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20754bf215546Sopenharmony_ci    if (cmd_size) {
20755bf215546Sopenharmony_ci        vn_encode_vkEnumeratePhysicalDevices(enc, cmd_flags, instance, pPhysicalDeviceCount, pPhysicalDevices);
20756bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20757bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20758bf215546Sopenharmony_ci            free(cmd_data);
20759bf215546Sopenharmony_ci    }
20760bf215546Sopenharmony_ci}
20761bf215546Sopenharmony_ci
20762bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties, struct vn_instance_submit_command *submit)
20763bf215546Sopenharmony_ci{
20764bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20765bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20766bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
20767bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20768bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20769bf215546Sopenharmony_ci        if (!cmd_data)
20770bf215546Sopenharmony_ci            cmd_size = 0;
20771bf215546Sopenharmony_ci    }
20772bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceProperties_reply(physicalDevice, pProperties) : 0;
20773bf215546Sopenharmony_ci
20774bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20775bf215546Sopenharmony_ci    if (cmd_size) {
20776bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceProperties(enc, cmd_flags, physicalDevice, pProperties);
20777bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20778bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20779bf215546Sopenharmony_ci            free(cmd_data);
20780bf215546Sopenharmony_ci    }
20781bf215546Sopenharmony_ci}
20782bf215546Sopenharmony_ci
20783bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties, struct vn_instance_submit_command *submit)
20784bf215546Sopenharmony_ci{
20785bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20786bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20787bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
20788bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20789bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20790bf215546Sopenharmony_ci        if (!cmd_data)
20791bf215546Sopenharmony_ci            cmd_size = 0;
20792bf215546Sopenharmony_ci    }
20793bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties_reply(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) : 0;
20794bf215546Sopenharmony_ci
20795bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20796bf215546Sopenharmony_ci    if (cmd_size) {
20797bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceQueueFamilyProperties(enc, cmd_flags, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
20798bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20799bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20800bf215546Sopenharmony_ci            free(cmd_data);
20801bf215546Sopenharmony_ci    }
20802bf215546Sopenharmony_ci}
20803bf215546Sopenharmony_ci
20804bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceMemoryProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties, struct vn_instance_submit_command *submit)
20805bf215546Sopenharmony_ci{
20806bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20807bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20808bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
20809bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20810bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20811bf215546Sopenharmony_ci        if (!cmd_data)
20812bf215546Sopenharmony_ci            cmd_size = 0;
20813bf215546Sopenharmony_ci    }
20814bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceMemoryProperties_reply(physicalDevice, pMemoryProperties) : 0;
20815bf215546Sopenharmony_ci
20816bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20817bf215546Sopenharmony_ci    if (cmd_size) {
20818bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceMemoryProperties(enc, cmd_flags, physicalDevice, pMemoryProperties);
20819bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20820bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20821bf215546Sopenharmony_ci            free(cmd_data);
20822bf215546Sopenharmony_ci    }
20823bf215546Sopenharmony_ci}
20824bf215546Sopenharmony_ci
20825bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceFeatures(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures, struct vn_instance_submit_command *submit)
20826bf215546Sopenharmony_ci{
20827bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20828bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20829bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
20830bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20831bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20832bf215546Sopenharmony_ci        if (!cmd_data)
20833bf215546Sopenharmony_ci            cmd_size = 0;
20834bf215546Sopenharmony_ci    }
20835bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceFeatures_reply(physicalDevice, pFeatures) : 0;
20836bf215546Sopenharmony_ci
20837bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20838bf215546Sopenharmony_ci    if (cmd_size) {
20839bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceFeatures(enc, cmd_flags, physicalDevice, pFeatures);
20840bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20841bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20842bf215546Sopenharmony_ci            free(cmd_data);
20843bf215546Sopenharmony_ci    }
20844bf215546Sopenharmony_ci}
20845bf215546Sopenharmony_ci
20846bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceFormatProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties, struct vn_instance_submit_command *submit)
20847bf215546Sopenharmony_ci{
20848bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20849bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20850bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
20851bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20852bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20853bf215546Sopenharmony_ci        if (!cmd_data)
20854bf215546Sopenharmony_ci            cmd_size = 0;
20855bf215546Sopenharmony_ci    }
20856bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceFormatProperties_reply(physicalDevice, format, pFormatProperties) : 0;
20857bf215546Sopenharmony_ci
20858bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20859bf215546Sopenharmony_ci    if (cmd_size) {
20860bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceFormatProperties(enc, cmd_flags, physicalDevice, format, pFormatProperties);
20861bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20862bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20863bf215546Sopenharmony_ci            free(cmd_data);
20864bf215546Sopenharmony_ci    }
20865bf215546Sopenharmony_ci}
20866bf215546Sopenharmony_ci
20867bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceImageFormatProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties, struct vn_instance_submit_command *submit)
20868bf215546Sopenharmony_ci{
20869bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20870bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20871bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
20872bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20873bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20874bf215546Sopenharmony_ci        if (!cmd_data)
20875bf215546Sopenharmony_ci            cmd_size = 0;
20876bf215546Sopenharmony_ci    }
20877bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceImageFormatProperties_reply(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties) : 0;
20878bf215546Sopenharmony_ci
20879bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20880bf215546Sopenharmony_ci    if (cmd_size) {
20881bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceImageFormatProperties(enc, cmd_flags, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
20882bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20883bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20884bf215546Sopenharmony_ci            free(cmd_data);
20885bf215546Sopenharmony_ci    }
20886bf215546Sopenharmony_ci}
20887bf215546Sopenharmony_ci
20888bf215546Sopenharmony_cistatic inline void vn_submit_vkCreateDevice(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice, struct vn_instance_submit_command *submit)
20889bf215546Sopenharmony_ci{
20890bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20891bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20892bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
20893bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20894bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20895bf215546Sopenharmony_ci        if (!cmd_data)
20896bf215546Sopenharmony_ci            cmd_size = 0;
20897bf215546Sopenharmony_ci    }
20898bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateDevice_reply(physicalDevice, pCreateInfo, pAllocator, pDevice) : 0;
20899bf215546Sopenharmony_ci
20900bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20901bf215546Sopenharmony_ci    if (cmd_size) {
20902bf215546Sopenharmony_ci        vn_encode_vkCreateDevice(enc, cmd_flags, physicalDevice, pCreateInfo, pAllocator, pDevice);
20903bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20904bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20905bf215546Sopenharmony_ci            free(cmd_data);
20906bf215546Sopenharmony_ci    }
20907bf215546Sopenharmony_ci}
20908bf215546Sopenharmony_ci
20909bf215546Sopenharmony_cistatic inline void vn_submit_vkDestroyDevice(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
20910bf215546Sopenharmony_ci{
20911bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20912bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20913bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkDestroyDevice(device, pAllocator);
20914bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20915bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20916bf215546Sopenharmony_ci        if (!cmd_data)
20917bf215546Sopenharmony_ci            cmd_size = 0;
20918bf215546Sopenharmony_ci    }
20919bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyDevice_reply(device, pAllocator) : 0;
20920bf215546Sopenharmony_ci
20921bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20922bf215546Sopenharmony_ci    if (cmd_size) {
20923bf215546Sopenharmony_ci        vn_encode_vkDestroyDevice(enc, cmd_flags, device, pAllocator);
20924bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20925bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20926bf215546Sopenharmony_ci            free(cmd_data);
20927bf215546Sopenharmony_ci    }
20928bf215546Sopenharmony_ci}
20929bf215546Sopenharmony_ci
20930bf215546Sopenharmony_cistatic inline void vn_submit_vkEnumerateDeviceLayerProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties, struct vn_instance_submit_command *submit)
20931bf215546Sopenharmony_ci{
20932bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20933bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20934bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
20935bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20936bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20937bf215546Sopenharmony_ci        if (!cmd_data)
20938bf215546Sopenharmony_ci            cmd_size = 0;
20939bf215546Sopenharmony_ci    }
20940bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkEnumerateDeviceLayerProperties_reply(physicalDevice, pPropertyCount, pProperties) : 0;
20941bf215546Sopenharmony_ci
20942bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20943bf215546Sopenharmony_ci    if (cmd_size) {
20944bf215546Sopenharmony_ci        vn_encode_vkEnumerateDeviceLayerProperties(enc, cmd_flags, physicalDevice, pPropertyCount, pProperties);
20945bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20946bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20947bf215546Sopenharmony_ci            free(cmd_data);
20948bf215546Sopenharmony_ci    }
20949bf215546Sopenharmony_ci}
20950bf215546Sopenharmony_ci
20951bf215546Sopenharmony_cistatic inline void vn_submit_vkEnumerateDeviceExtensionProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties, struct vn_instance_submit_command *submit)
20952bf215546Sopenharmony_ci{
20953bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20954bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20955bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkEnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
20956bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20957bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20958bf215546Sopenharmony_ci        if (!cmd_data)
20959bf215546Sopenharmony_ci            cmd_size = 0;
20960bf215546Sopenharmony_ci    }
20961bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkEnumerateDeviceExtensionProperties_reply(physicalDevice, pLayerName, pPropertyCount, pProperties) : 0;
20962bf215546Sopenharmony_ci
20963bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20964bf215546Sopenharmony_ci    if (cmd_size) {
20965bf215546Sopenharmony_ci        vn_encode_vkEnumerateDeviceExtensionProperties(enc, cmd_flags, physicalDevice, pLayerName, pPropertyCount, pProperties);
20966bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20967bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20968bf215546Sopenharmony_ci            free(cmd_data);
20969bf215546Sopenharmony_ci    }
20970bf215546Sopenharmony_ci}
20971bf215546Sopenharmony_ci
20972bf215546Sopenharmony_cistatic inline void vn_submit_vkGetDeviceQueue(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue, struct vn_instance_submit_command *submit)
20973bf215546Sopenharmony_ci{
20974bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20975bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20976bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
20977bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20978bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
20979bf215546Sopenharmony_ci        if (!cmd_data)
20980bf215546Sopenharmony_ci            cmd_size = 0;
20981bf215546Sopenharmony_ci    }
20982bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetDeviceQueue_reply(device, queueFamilyIndex, queueIndex, pQueue) : 0;
20983bf215546Sopenharmony_ci
20984bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
20985bf215546Sopenharmony_ci    if (cmd_size) {
20986bf215546Sopenharmony_ci        vn_encode_vkGetDeviceQueue(enc, cmd_flags, device, queueFamilyIndex, queueIndex, pQueue);
20987bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
20988bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
20989bf215546Sopenharmony_ci            free(cmd_data);
20990bf215546Sopenharmony_ci    }
20991bf215546Sopenharmony_ci}
20992bf215546Sopenharmony_ci
20993bf215546Sopenharmony_cistatic inline void vn_submit_vkDeviceWaitIdle(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, struct vn_instance_submit_command *submit)
20994bf215546Sopenharmony_ci{
20995bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
20996bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
20997bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkDeviceWaitIdle(device);
20998bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
20999bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21000bf215546Sopenharmony_ci        if (!cmd_data)
21001bf215546Sopenharmony_ci            cmd_size = 0;
21002bf215546Sopenharmony_ci    }
21003bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDeviceWaitIdle_reply(device) : 0;
21004bf215546Sopenharmony_ci
21005bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21006bf215546Sopenharmony_ci    if (cmd_size) {
21007bf215546Sopenharmony_ci        vn_encode_vkDeviceWaitIdle(enc, cmd_flags, device);
21008bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21009bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21010bf215546Sopenharmony_ci            free(cmd_data);
21011bf215546Sopenharmony_ci    }
21012bf215546Sopenharmony_ci}
21013bf215546Sopenharmony_ci
21014bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties, struct vn_instance_submit_command *submit)
21015bf215546Sopenharmony_ci{
21016bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21017bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21018bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
21019bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21020bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21021bf215546Sopenharmony_ci        if (!cmd_data)
21022bf215546Sopenharmony_ci            cmd_size = 0;
21023bf215546Sopenharmony_ci    }
21024bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties_reply(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties) : 0;
21025bf215546Sopenharmony_ci
21026bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21027bf215546Sopenharmony_ci    if (cmd_size) {
21028bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties(enc, cmd_flags, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
21029bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21030bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21031bf215546Sopenharmony_ci            free(cmd_data);
21032bf215546Sopenharmony_ci    }
21033bf215546Sopenharmony_ci}
21034bf215546Sopenharmony_ci
21035bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceFeatures2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures, struct vn_instance_submit_command *submit)
21036bf215546Sopenharmony_ci{
21037bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21038bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21039bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
21040bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21041bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21042bf215546Sopenharmony_ci        if (!cmd_data)
21043bf215546Sopenharmony_ci            cmd_size = 0;
21044bf215546Sopenharmony_ci    }
21045bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceFeatures2_reply(physicalDevice, pFeatures) : 0;
21046bf215546Sopenharmony_ci
21047bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21048bf215546Sopenharmony_ci    if (cmd_size) {
21049bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceFeatures2(enc, cmd_flags, physicalDevice, pFeatures);
21050bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21051bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21052bf215546Sopenharmony_ci            free(cmd_data);
21053bf215546Sopenharmony_ci    }
21054bf215546Sopenharmony_ci}
21055bf215546Sopenharmony_ci
21056bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties, struct vn_instance_submit_command *submit)
21057bf215546Sopenharmony_ci{
21058bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21059bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21060bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
21061bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21062bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21063bf215546Sopenharmony_ci        if (!cmd_data)
21064bf215546Sopenharmony_ci            cmd_size = 0;
21065bf215546Sopenharmony_ci    }
21066bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceProperties2_reply(physicalDevice, pProperties) : 0;
21067bf215546Sopenharmony_ci
21068bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21069bf215546Sopenharmony_ci    if (cmd_size) {
21070bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceProperties2(enc, cmd_flags, physicalDevice, pProperties);
21071bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21072bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21073bf215546Sopenharmony_ci            free(cmd_data);
21074bf215546Sopenharmony_ci    }
21075bf215546Sopenharmony_ci}
21076bf215546Sopenharmony_ci
21077bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceFormatProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties, struct vn_instance_submit_command *submit)
21078bf215546Sopenharmony_ci{
21079bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21080bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21081bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
21082bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21083bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21084bf215546Sopenharmony_ci        if (!cmd_data)
21085bf215546Sopenharmony_ci            cmd_size = 0;
21086bf215546Sopenharmony_ci    }
21087bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceFormatProperties2_reply(physicalDevice, format, pFormatProperties) : 0;
21088bf215546Sopenharmony_ci
21089bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21090bf215546Sopenharmony_ci    if (cmd_size) {
21091bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceFormatProperties2(enc, cmd_flags, physicalDevice, format, pFormatProperties);
21092bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21093bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21094bf215546Sopenharmony_ci            free(cmd_data);
21095bf215546Sopenharmony_ci    }
21096bf215546Sopenharmony_ci}
21097bf215546Sopenharmony_ci
21098bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceImageFormatProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties, struct vn_instance_submit_command *submit)
21099bf215546Sopenharmony_ci{
21100bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21101bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21102bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
21103bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21104bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21105bf215546Sopenharmony_ci        if (!cmd_data)
21106bf215546Sopenharmony_ci            cmd_size = 0;
21107bf215546Sopenharmony_ci    }
21108bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceImageFormatProperties2_reply(physicalDevice, pImageFormatInfo, pImageFormatProperties) : 0;
21109bf215546Sopenharmony_ci
21110bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21111bf215546Sopenharmony_ci    if (cmd_size) {
21112bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceImageFormatProperties2(enc, cmd_flags, physicalDevice, pImageFormatInfo, pImageFormatProperties);
21113bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21114bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21115bf215546Sopenharmony_ci            free(cmd_data);
21116bf215546Sopenharmony_ci    }
21117bf215546Sopenharmony_ci}
21118bf215546Sopenharmony_ci
21119bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties, struct vn_instance_submit_command *submit)
21120bf215546Sopenharmony_ci{
21121bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21122bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21123bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
21124bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21125bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21126bf215546Sopenharmony_ci        if (!cmd_data)
21127bf215546Sopenharmony_ci            cmd_size = 0;
21128bf215546Sopenharmony_ci    }
21129bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceQueueFamilyProperties2_reply(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) : 0;
21130bf215546Sopenharmony_ci
21131bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21132bf215546Sopenharmony_ci    if (cmd_size) {
21133bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceQueueFamilyProperties2(enc, cmd_flags, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
21134bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21135bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21136bf215546Sopenharmony_ci            free(cmd_data);
21137bf215546Sopenharmony_ci    }
21138bf215546Sopenharmony_ci}
21139bf215546Sopenharmony_ci
21140bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceMemoryProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties, struct vn_instance_submit_command *submit)
21141bf215546Sopenharmony_ci{
21142bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21143bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21144bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
21145bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21146bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21147bf215546Sopenharmony_ci        if (!cmd_data)
21148bf215546Sopenharmony_ci            cmd_size = 0;
21149bf215546Sopenharmony_ci    }
21150bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceMemoryProperties2_reply(physicalDevice, pMemoryProperties) : 0;
21151bf215546Sopenharmony_ci
21152bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21153bf215546Sopenharmony_ci    if (cmd_size) {
21154bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceMemoryProperties2(enc, cmd_flags, physicalDevice, pMemoryProperties);
21155bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21156bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21157bf215546Sopenharmony_ci            free(cmd_data);
21158bf215546Sopenharmony_ci    }
21159bf215546Sopenharmony_ci}
21160bf215546Sopenharmony_ci
21161bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties, struct vn_instance_submit_command *submit)
21162bf215546Sopenharmony_ci{
21163bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21164bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21165bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
21166bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21167bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21168bf215546Sopenharmony_ci        if (!cmd_data)
21169bf215546Sopenharmony_ci            cmd_size = 0;
21170bf215546Sopenharmony_ci    }
21171bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(physicalDevice, pFormatInfo, pPropertyCount, pProperties) : 0;
21172bf215546Sopenharmony_ci
21173bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21174bf215546Sopenharmony_ci    if (cmd_size) {
21175bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceSparseImageFormatProperties2(enc, cmd_flags, physicalDevice, pFormatInfo, pPropertyCount, pProperties);
21176bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21177bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21178bf215546Sopenharmony_ci            free(cmd_data);
21179bf215546Sopenharmony_ci    }
21180bf215546Sopenharmony_ci}
21181bf215546Sopenharmony_ci
21182bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceExternalBufferProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties, struct vn_instance_submit_command *submit)
21183bf215546Sopenharmony_ci{
21184bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21185bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21186bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
21187bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21188bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21189bf215546Sopenharmony_ci        if (!cmd_data)
21190bf215546Sopenharmony_ci            cmd_size = 0;
21191bf215546Sopenharmony_ci    }
21192bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceExternalBufferProperties_reply(physicalDevice, pExternalBufferInfo, pExternalBufferProperties) : 0;
21193bf215546Sopenharmony_ci
21194bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21195bf215546Sopenharmony_ci    if (cmd_size) {
21196bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceExternalBufferProperties(enc, cmd_flags, physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
21197bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21198bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21199bf215546Sopenharmony_ci            free(cmd_data);
21200bf215546Sopenharmony_ci    }
21201bf215546Sopenharmony_ci}
21202bf215546Sopenharmony_ci
21203bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties, struct vn_instance_submit_command *submit)
21204bf215546Sopenharmony_ci{
21205bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21206bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21207bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
21208bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21209bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21210bf215546Sopenharmony_ci        if (!cmd_data)
21211bf215546Sopenharmony_ci            cmd_size = 0;
21212bf215546Sopenharmony_ci    }
21213bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties) : 0;
21214bf215546Sopenharmony_ci
21215bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21216bf215546Sopenharmony_ci    if (cmd_size) {
21217bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceExternalSemaphoreProperties(enc, cmd_flags, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
21218bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21219bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21220bf215546Sopenharmony_ci            free(cmd_data);
21221bf215546Sopenharmony_ci    }
21222bf215546Sopenharmony_ci}
21223bf215546Sopenharmony_ci
21224bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceExternalFenceProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties, struct vn_instance_submit_command *submit)
21225bf215546Sopenharmony_ci{
21226bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21227bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21228bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
21229bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21230bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21231bf215546Sopenharmony_ci        if (!cmd_data)
21232bf215546Sopenharmony_ci            cmd_size = 0;
21233bf215546Sopenharmony_ci    }
21234bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceExternalFenceProperties_reply(physicalDevice, pExternalFenceInfo, pExternalFenceProperties) : 0;
21235bf215546Sopenharmony_ci
21236bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21237bf215546Sopenharmony_ci    if (cmd_size) {
21238bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceExternalFenceProperties(enc, cmd_flags, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
21239bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21240bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21241bf215546Sopenharmony_ci            free(cmd_data);
21242bf215546Sopenharmony_ci    }
21243bf215546Sopenharmony_ci}
21244bf215546Sopenharmony_ci
21245bf215546Sopenharmony_cistatic inline void vn_submit_vkEnumeratePhysicalDeviceGroups(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, struct vn_instance_submit_command *submit)
21246bf215546Sopenharmony_ci{
21247bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21248bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21249bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
21250bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21251bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21252bf215546Sopenharmony_ci        if (!cmd_data)
21253bf215546Sopenharmony_ci            cmd_size = 0;
21254bf215546Sopenharmony_ci    }
21255bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkEnumeratePhysicalDeviceGroups_reply(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties) : 0;
21256bf215546Sopenharmony_ci
21257bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21258bf215546Sopenharmony_ci    if (cmd_size) {
21259bf215546Sopenharmony_ci        vn_encode_vkEnumeratePhysicalDeviceGroups(enc, cmd_flags, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
21260bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21261bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21262bf215546Sopenharmony_ci            free(cmd_data);
21263bf215546Sopenharmony_ci    }
21264bf215546Sopenharmony_ci}
21265bf215546Sopenharmony_ci
21266bf215546Sopenharmony_cistatic inline void vn_submit_vkGetDeviceGroupPeerMemoryFeatures(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures, struct vn_instance_submit_command *submit)
21267bf215546Sopenharmony_ci{
21268bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21269bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21270bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
21271bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21272bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21273bf215546Sopenharmony_ci        if (!cmd_data)
21274bf215546Sopenharmony_ci            cmd_size = 0;
21275bf215546Sopenharmony_ci    }
21276bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetDeviceGroupPeerMemoryFeatures_reply(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures) : 0;
21277bf215546Sopenharmony_ci
21278bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21279bf215546Sopenharmony_ci    if (cmd_size) {
21280bf215546Sopenharmony_ci        vn_encode_vkGetDeviceGroupPeerMemoryFeatures(enc, cmd_flags, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
21281bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21282bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21283bf215546Sopenharmony_ci            free(cmd_data);
21284bf215546Sopenharmony_ci    }
21285bf215546Sopenharmony_ci}
21286bf215546Sopenharmony_ci
21287bf215546Sopenharmony_cistatic inline void vn_submit_vkGetDeviceQueue2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue, struct vn_instance_submit_command *submit)
21288bf215546Sopenharmony_ci{
21289bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21290bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21291bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetDeviceQueue2(device, pQueueInfo, pQueue);
21292bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21293bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21294bf215546Sopenharmony_ci        if (!cmd_data)
21295bf215546Sopenharmony_ci            cmd_size = 0;
21296bf215546Sopenharmony_ci    }
21297bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetDeviceQueue2_reply(device, pQueueInfo, pQueue) : 0;
21298bf215546Sopenharmony_ci
21299bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21300bf215546Sopenharmony_ci    if (cmd_size) {
21301bf215546Sopenharmony_ci        vn_encode_vkGetDeviceQueue2(enc, cmd_flags, device, pQueueInfo, pQueue);
21302bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21303bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21304bf215546Sopenharmony_ci            free(cmd_data);
21305bf215546Sopenharmony_ci    }
21306bf215546Sopenharmony_ci}
21307bf215546Sopenharmony_ci
21308bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains, struct vn_instance_submit_command *submit)
21309bf215546Sopenharmony_ci{
21310bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21311bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21312bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains);
21313bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21314bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21315bf215546Sopenharmony_ci        if (!cmd_data)
21316bf215546Sopenharmony_ci            cmd_size = 0;
21317bf215546Sopenharmony_ci    }
21318bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(physicalDevice, pTimeDomainCount, pTimeDomains) : 0;
21319bf215546Sopenharmony_ci
21320bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21321bf215546Sopenharmony_ci    if (cmd_size) {
21322bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(enc, cmd_flags, physicalDevice, pTimeDomainCount, pTimeDomains);
21323bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21324bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21325bf215546Sopenharmony_ci            free(cmd_data);
21326bf215546Sopenharmony_ci    }
21327bf215546Sopenharmony_ci}
21328bf215546Sopenharmony_ci
21329bf215546Sopenharmony_cistatic inline void vn_submit_vkGetCalibratedTimestampsEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, struct vn_instance_submit_command *submit)
21330bf215546Sopenharmony_ci{
21331bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21332bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21333bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
21334bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21335bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21336bf215546Sopenharmony_ci        if (!cmd_data)
21337bf215546Sopenharmony_ci            cmd_size = 0;
21338bf215546Sopenharmony_ci    }
21339bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetCalibratedTimestampsEXT_reply(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation) : 0;
21340bf215546Sopenharmony_ci
21341bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21342bf215546Sopenharmony_ci    if (cmd_size) {
21343bf215546Sopenharmony_ci        vn_encode_vkGetCalibratedTimestampsEXT(enc, cmd_flags, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
21344bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21345bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21346bf215546Sopenharmony_ci            free(cmd_data);
21347bf215546Sopenharmony_ci    }
21348bf215546Sopenharmony_ci}
21349bf215546Sopenharmony_ci
21350bf215546Sopenharmony_cistatic inline void vn_submit_vkGetPhysicalDeviceToolProperties(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties, struct vn_instance_submit_command *submit)
21351bf215546Sopenharmony_ci{
21352bf215546Sopenharmony_ci    uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
21353bf215546Sopenharmony_ci    void *cmd_data = local_cmd_data;
21354bf215546Sopenharmony_ci    size_t cmd_size = vn_sizeof_vkGetPhysicalDeviceToolProperties(physicalDevice, pToolCount, pToolProperties);
21355bf215546Sopenharmony_ci    if (cmd_size > sizeof(local_cmd_data)) {
21356bf215546Sopenharmony_ci        cmd_data = malloc(cmd_size);
21357bf215546Sopenharmony_ci        if (!cmd_data)
21358bf215546Sopenharmony_ci            cmd_size = 0;
21359bf215546Sopenharmony_ci    }
21360bf215546Sopenharmony_ci    const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetPhysicalDeviceToolProperties_reply(physicalDevice, pToolCount, pToolProperties) : 0;
21361bf215546Sopenharmony_ci
21362bf215546Sopenharmony_ci    struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
21363bf215546Sopenharmony_ci    if (cmd_size) {
21364bf215546Sopenharmony_ci        vn_encode_vkGetPhysicalDeviceToolProperties(enc, cmd_flags, physicalDevice, pToolCount, pToolProperties);
21365bf215546Sopenharmony_ci        vn_instance_submit_command(vn_instance, submit);
21366bf215546Sopenharmony_ci        if (cmd_data != local_cmd_data)
21367bf215546Sopenharmony_ci            free(cmd_data);
21368bf215546Sopenharmony_ci    }
21369bf215546Sopenharmony_ci}
21370bf215546Sopenharmony_ci
21371bf215546Sopenharmony_cistatic inline VkResult vn_call_vkEnumeratePhysicalDevices(struct vn_instance *vn_instance, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
21372bf215546Sopenharmony_ci{
21373bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21374bf215546Sopenharmony_ci
21375bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21376bf215546Sopenharmony_ci    vn_submit_vkEnumeratePhysicalDevices(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, instance, pPhysicalDeviceCount, pPhysicalDevices, &submit);
21377bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21378bf215546Sopenharmony_ci    if (dec) {
21379bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkEnumeratePhysicalDevices_reply(dec, instance, pPhysicalDeviceCount, pPhysicalDevices);
21380bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21381bf215546Sopenharmony_ci        return ret;
21382bf215546Sopenharmony_ci    } else {
21383bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21384bf215546Sopenharmony_ci    }
21385bf215546Sopenharmony_ci}
21386bf215546Sopenharmony_ci
21387bf215546Sopenharmony_cistatic inline void vn_async_vkEnumeratePhysicalDevices(struct vn_instance *vn_instance, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices)
21388bf215546Sopenharmony_ci{
21389bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21390bf215546Sopenharmony_ci    vn_submit_vkEnumeratePhysicalDevices(vn_instance, 0, instance, pPhysicalDeviceCount, pPhysicalDevices, &submit);
21391bf215546Sopenharmony_ci}
21392bf215546Sopenharmony_ci
21393bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
21394bf215546Sopenharmony_ci{
21395bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21396bf215546Sopenharmony_ci
21397bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21398bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pProperties, &submit);
21399bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21400bf215546Sopenharmony_ci    if (dec) {
21401bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceProperties_reply(dec, physicalDevice, pProperties);
21402bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21403bf215546Sopenharmony_ci    }
21404bf215546Sopenharmony_ci}
21405bf215546Sopenharmony_ci
21406bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties)
21407bf215546Sopenharmony_ci{
21408bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21409bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceProperties(vn_instance, 0, physicalDevice, pProperties, &submit);
21410bf215546Sopenharmony_ci}
21411bf215546Sopenharmony_ci
21412bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
21413bf215546Sopenharmony_ci{
21414bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21415bf215546Sopenharmony_ci
21416bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21417bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceQueueFamilyProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, &submit);
21418bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21419bf215546Sopenharmony_ci    if (dec) {
21420bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_reply(dec, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
21421bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21422bf215546Sopenharmony_ci    }
21423bf215546Sopenharmony_ci}
21424bf215546Sopenharmony_ci
21425bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceQueueFamilyProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties)
21426bf215546Sopenharmony_ci{
21427bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21428bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceQueueFamilyProperties(vn_instance, 0, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, &submit);
21429bf215546Sopenharmony_ci}
21430bf215546Sopenharmony_ci
21431bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceMemoryProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
21432bf215546Sopenharmony_ci{
21433bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21434bf215546Sopenharmony_ci
21435bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21436bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceMemoryProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pMemoryProperties, &submit);
21437bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21438bf215546Sopenharmony_ci    if (dec) {
21439bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceMemoryProperties_reply(dec, physicalDevice, pMemoryProperties);
21440bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21441bf215546Sopenharmony_ci    }
21442bf215546Sopenharmony_ci}
21443bf215546Sopenharmony_ci
21444bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceMemoryProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties)
21445bf215546Sopenharmony_ci{
21446bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21447bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceMemoryProperties(vn_instance, 0, physicalDevice, pMemoryProperties, &submit);
21448bf215546Sopenharmony_ci}
21449bf215546Sopenharmony_ci
21450bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceFeatures(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
21451bf215546Sopenharmony_ci{
21452bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21453bf215546Sopenharmony_ci
21454bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21455bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFeatures(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pFeatures, &submit);
21456bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21457bf215546Sopenharmony_ci    if (dec) {
21458bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceFeatures_reply(dec, physicalDevice, pFeatures);
21459bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21460bf215546Sopenharmony_ci    }
21461bf215546Sopenharmony_ci}
21462bf215546Sopenharmony_ci
21463bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceFeatures(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
21464bf215546Sopenharmony_ci{
21465bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21466bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFeatures(vn_instance, 0, physicalDevice, pFeatures, &submit);
21467bf215546Sopenharmony_ci}
21468bf215546Sopenharmony_ci
21469bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
21470bf215546Sopenharmony_ci{
21471bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21472bf215546Sopenharmony_ci
21473bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21474bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFormatProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, format, pFormatProperties, &submit);
21475bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21476bf215546Sopenharmony_ci    if (dec) {
21477bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceFormatProperties_reply(dec, physicalDevice, format, pFormatProperties);
21478bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21479bf215546Sopenharmony_ci    }
21480bf215546Sopenharmony_ci}
21481bf215546Sopenharmony_ci
21482bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties)
21483bf215546Sopenharmony_ci{
21484bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21485bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFormatProperties(vn_instance, 0, physicalDevice, format, pFormatProperties, &submit);
21486bf215546Sopenharmony_ci}
21487bf215546Sopenharmony_ci
21488bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetPhysicalDeviceImageFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
21489bf215546Sopenharmony_ci{
21490bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21491bf215546Sopenharmony_ci
21492bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21493bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceImageFormatProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties, &submit);
21494bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21495bf215546Sopenharmony_ci    if (dec) {
21496bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkGetPhysicalDeviceImageFormatProperties_reply(dec, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
21497bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21498bf215546Sopenharmony_ci        return ret;
21499bf215546Sopenharmony_ci    } else {
21500bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21501bf215546Sopenharmony_ci    }
21502bf215546Sopenharmony_ci}
21503bf215546Sopenharmony_ci
21504bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceImageFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
21505bf215546Sopenharmony_ci{
21506bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21507bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceImageFormatProperties(vn_instance, 0, physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties, &submit);
21508bf215546Sopenharmony_ci}
21509bf215546Sopenharmony_ci
21510bf215546Sopenharmony_cistatic inline VkResult vn_call_vkCreateDevice(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
21511bf215546Sopenharmony_ci{
21512bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21513bf215546Sopenharmony_ci
21514bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21515bf215546Sopenharmony_ci    vn_submit_vkCreateDevice(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pCreateInfo, pAllocator, pDevice, &submit);
21516bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21517bf215546Sopenharmony_ci    if (dec) {
21518bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkCreateDevice_reply(dec, physicalDevice, pCreateInfo, pAllocator, pDevice);
21519bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21520bf215546Sopenharmony_ci        return ret;
21521bf215546Sopenharmony_ci    } else {
21522bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21523bf215546Sopenharmony_ci    }
21524bf215546Sopenharmony_ci}
21525bf215546Sopenharmony_ci
21526bf215546Sopenharmony_cistatic inline void vn_async_vkCreateDevice(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
21527bf215546Sopenharmony_ci{
21528bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21529bf215546Sopenharmony_ci    vn_submit_vkCreateDevice(vn_instance, 0, physicalDevice, pCreateInfo, pAllocator, pDevice, &submit);
21530bf215546Sopenharmony_ci}
21531bf215546Sopenharmony_ci
21532bf215546Sopenharmony_cistatic inline void vn_call_vkDestroyDevice(struct vn_instance *vn_instance, VkDevice device, const VkAllocationCallbacks* pAllocator)
21533bf215546Sopenharmony_ci{
21534bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21535bf215546Sopenharmony_ci
21536bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21537bf215546Sopenharmony_ci    vn_submit_vkDestroyDevice(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pAllocator, &submit);
21538bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21539bf215546Sopenharmony_ci    if (dec) {
21540bf215546Sopenharmony_ci        vn_decode_vkDestroyDevice_reply(dec, device, pAllocator);
21541bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21542bf215546Sopenharmony_ci    }
21543bf215546Sopenharmony_ci}
21544bf215546Sopenharmony_ci
21545bf215546Sopenharmony_cistatic inline void vn_async_vkDestroyDevice(struct vn_instance *vn_instance, VkDevice device, const VkAllocationCallbacks* pAllocator)
21546bf215546Sopenharmony_ci{
21547bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21548bf215546Sopenharmony_ci    vn_submit_vkDestroyDevice(vn_instance, 0, device, pAllocator, &submit);
21549bf215546Sopenharmony_ci}
21550bf215546Sopenharmony_ci
21551bf215546Sopenharmony_cistatic inline VkResult vn_call_vkEnumerateDeviceLayerProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
21552bf215546Sopenharmony_ci{
21553bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21554bf215546Sopenharmony_ci
21555bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21556bf215546Sopenharmony_ci    vn_submit_vkEnumerateDeviceLayerProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pPropertyCount, pProperties, &submit);
21557bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21558bf215546Sopenharmony_ci    if (dec) {
21559bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkEnumerateDeviceLayerProperties_reply(dec, physicalDevice, pPropertyCount, pProperties);
21560bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21561bf215546Sopenharmony_ci        return ret;
21562bf215546Sopenharmony_ci    } else {
21563bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21564bf215546Sopenharmony_ci    }
21565bf215546Sopenharmony_ci}
21566bf215546Sopenharmony_ci
21567bf215546Sopenharmony_cistatic inline void vn_async_vkEnumerateDeviceLayerProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties)
21568bf215546Sopenharmony_ci{
21569bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21570bf215546Sopenharmony_ci    vn_submit_vkEnumerateDeviceLayerProperties(vn_instance, 0, physicalDevice, pPropertyCount, pProperties, &submit);
21571bf215546Sopenharmony_ci}
21572bf215546Sopenharmony_ci
21573bf215546Sopenharmony_cistatic inline VkResult vn_call_vkEnumerateDeviceExtensionProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
21574bf215546Sopenharmony_ci{
21575bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21576bf215546Sopenharmony_ci
21577bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21578bf215546Sopenharmony_ci    vn_submit_vkEnumerateDeviceExtensionProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pLayerName, pPropertyCount, pProperties, &submit);
21579bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21580bf215546Sopenharmony_ci    if (dec) {
21581bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkEnumerateDeviceExtensionProperties_reply(dec, physicalDevice, pLayerName, pPropertyCount, pProperties);
21582bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21583bf215546Sopenharmony_ci        return ret;
21584bf215546Sopenharmony_ci    } else {
21585bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21586bf215546Sopenharmony_ci    }
21587bf215546Sopenharmony_ci}
21588bf215546Sopenharmony_ci
21589bf215546Sopenharmony_cistatic inline void vn_async_vkEnumerateDeviceExtensionProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties)
21590bf215546Sopenharmony_ci{
21591bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21592bf215546Sopenharmony_ci    vn_submit_vkEnumerateDeviceExtensionProperties(vn_instance, 0, physicalDevice, pLayerName, pPropertyCount, pProperties, &submit);
21593bf215546Sopenharmony_ci}
21594bf215546Sopenharmony_ci
21595bf215546Sopenharmony_cistatic inline void vn_call_vkGetDeviceQueue(struct vn_instance *vn_instance, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
21596bf215546Sopenharmony_ci{
21597bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21598bf215546Sopenharmony_ci
21599bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21600bf215546Sopenharmony_ci    vn_submit_vkGetDeviceQueue(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, queueFamilyIndex, queueIndex, pQueue, &submit);
21601bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21602bf215546Sopenharmony_ci    if (dec) {
21603bf215546Sopenharmony_ci        vn_decode_vkGetDeviceQueue_reply(dec, device, queueFamilyIndex, queueIndex, pQueue);
21604bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21605bf215546Sopenharmony_ci    }
21606bf215546Sopenharmony_ci}
21607bf215546Sopenharmony_ci
21608bf215546Sopenharmony_cistatic inline void vn_async_vkGetDeviceQueue(struct vn_instance *vn_instance, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue)
21609bf215546Sopenharmony_ci{
21610bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21611bf215546Sopenharmony_ci    vn_submit_vkGetDeviceQueue(vn_instance, 0, device, queueFamilyIndex, queueIndex, pQueue, &submit);
21612bf215546Sopenharmony_ci}
21613bf215546Sopenharmony_ci
21614bf215546Sopenharmony_cistatic inline VkResult vn_call_vkDeviceWaitIdle(struct vn_instance *vn_instance, VkDevice device)
21615bf215546Sopenharmony_ci{
21616bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21617bf215546Sopenharmony_ci
21618bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21619bf215546Sopenharmony_ci    vn_submit_vkDeviceWaitIdle(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, &submit);
21620bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21621bf215546Sopenharmony_ci    if (dec) {
21622bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkDeviceWaitIdle_reply(dec, device);
21623bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21624bf215546Sopenharmony_ci        return ret;
21625bf215546Sopenharmony_ci    } else {
21626bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21627bf215546Sopenharmony_ci    }
21628bf215546Sopenharmony_ci}
21629bf215546Sopenharmony_ci
21630bf215546Sopenharmony_cistatic inline void vn_async_vkDeviceWaitIdle(struct vn_instance *vn_instance, VkDevice device)
21631bf215546Sopenharmony_ci{
21632bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21633bf215546Sopenharmony_ci    vn_submit_vkDeviceWaitIdle(vn_instance, 0, device, &submit);
21634bf215546Sopenharmony_ci}
21635bf215546Sopenharmony_ci
21636bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
21637bf215546Sopenharmony_ci{
21638bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21639bf215546Sopenharmony_ci
21640bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21641bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties, &submit);
21642bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21643bf215546Sopenharmony_ci    if (dec) {
21644bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_reply(dec, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
21645bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21646bf215546Sopenharmony_ci    }
21647bf215546Sopenharmony_ci}
21648bf215546Sopenharmony_ci
21649bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceSparseImageFormatProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties)
21650bf215546Sopenharmony_ci{
21651bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21652bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties(vn_instance, 0, physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties, &submit);
21653bf215546Sopenharmony_ci}
21654bf215546Sopenharmony_ci
21655bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceFeatures2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
21656bf215546Sopenharmony_ci{
21657bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21658bf215546Sopenharmony_ci
21659bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21660bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFeatures2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pFeatures, &submit);
21661bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21662bf215546Sopenharmony_ci    if (dec) {
21663bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceFeatures2_reply(dec, physicalDevice, pFeatures);
21664bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21665bf215546Sopenharmony_ci    }
21666bf215546Sopenharmony_ci}
21667bf215546Sopenharmony_ci
21668bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceFeatures2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
21669bf215546Sopenharmony_ci{
21670bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21671bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFeatures2(vn_instance, 0, physicalDevice, pFeatures, &submit);
21672bf215546Sopenharmony_ci}
21673bf215546Sopenharmony_ci
21674bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
21675bf215546Sopenharmony_ci{
21676bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21677bf215546Sopenharmony_ci
21678bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21679bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pProperties, &submit);
21680bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21681bf215546Sopenharmony_ci    if (dec) {
21682bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceProperties2_reply(dec, physicalDevice, pProperties);
21683bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21684bf215546Sopenharmony_ci    }
21685bf215546Sopenharmony_ci}
21686bf215546Sopenharmony_ci
21687bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
21688bf215546Sopenharmony_ci{
21689bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21690bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceProperties2(vn_instance, 0, physicalDevice, pProperties, &submit);
21691bf215546Sopenharmony_ci}
21692bf215546Sopenharmony_ci
21693bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
21694bf215546Sopenharmony_ci{
21695bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21696bf215546Sopenharmony_ci
21697bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21698bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFormatProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, format, pFormatProperties, &submit);
21699bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21700bf215546Sopenharmony_ci    if (dec) {
21701bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceFormatProperties2_reply(dec, physicalDevice, format, pFormatProperties);
21702bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21703bf215546Sopenharmony_ci    }
21704bf215546Sopenharmony_ci}
21705bf215546Sopenharmony_ci
21706bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
21707bf215546Sopenharmony_ci{
21708bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21709bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceFormatProperties2(vn_instance, 0, physicalDevice, format, pFormatProperties, &submit);
21710bf215546Sopenharmony_ci}
21711bf215546Sopenharmony_ci
21712bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetPhysicalDeviceImageFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
21713bf215546Sopenharmony_ci{
21714bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21715bf215546Sopenharmony_ci
21716bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21717bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceImageFormatProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pImageFormatInfo, pImageFormatProperties, &submit);
21718bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21719bf215546Sopenharmony_ci    if (dec) {
21720bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkGetPhysicalDeviceImageFormatProperties2_reply(dec, physicalDevice, pImageFormatInfo, pImageFormatProperties);
21721bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21722bf215546Sopenharmony_ci        return ret;
21723bf215546Sopenharmony_ci    } else {
21724bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21725bf215546Sopenharmony_ci    }
21726bf215546Sopenharmony_ci}
21727bf215546Sopenharmony_ci
21728bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceImageFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
21729bf215546Sopenharmony_ci{
21730bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21731bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceImageFormatProperties2(vn_instance, 0, physicalDevice, pImageFormatInfo, pImageFormatProperties, &submit);
21732bf215546Sopenharmony_ci}
21733bf215546Sopenharmony_ci
21734bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
21735bf215546Sopenharmony_ci{
21736bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21737bf215546Sopenharmony_ci
21738bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21739bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceQueueFamilyProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, &submit);
21740bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21741bf215546Sopenharmony_ci    if (dec) {
21742bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_reply(dec, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
21743bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21744bf215546Sopenharmony_ci    }
21745bf215546Sopenharmony_ci}
21746bf215546Sopenharmony_ci
21747bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceQueueFamilyProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
21748bf215546Sopenharmony_ci{
21749bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21750bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceQueueFamilyProperties2(vn_instance, 0, physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, &submit);
21751bf215546Sopenharmony_ci}
21752bf215546Sopenharmony_ci
21753bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceMemoryProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
21754bf215546Sopenharmony_ci{
21755bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21756bf215546Sopenharmony_ci
21757bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21758bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceMemoryProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pMemoryProperties, &submit);
21759bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21760bf215546Sopenharmony_ci    if (dec) {
21761bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceMemoryProperties2_reply(dec, physicalDevice, pMemoryProperties);
21762bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21763bf215546Sopenharmony_ci    }
21764bf215546Sopenharmony_ci}
21765bf215546Sopenharmony_ci
21766bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceMemoryProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
21767bf215546Sopenharmony_ci{
21768bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21769bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceMemoryProperties2(vn_instance, 0, physicalDevice, pMemoryProperties, &submit);
21770bf215546Sopenharmony_ci}
21771bf215546Sopenharmony_ci
21772bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
21773bf215546Sopenharmony_ci{
21774bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21775bf215546Sopenharmony_ci
21776bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21777bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pFormatInfo, pPropertyCount, pProperties, &submit);
21778bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21779bf215546Sopenharmony_ci    if (dec) {
21780bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_reply(dec, physicalDevice, pFormatInfo, pPropertyCount, pProperties);
21781bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21782bf215546Sopenharmony_ci    }
21783bf215546Sopenharmony_ci}
21784bf215546Sopenharmony_ci
21785bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceSparseImageFormatProperties2(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
21786bf215546Sopenharmony_ci{
21787bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21788bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceSparseImageFormatProperties2(vn_instance, 0, physicalDevice, pFormatInfo, pPropertyCount, pProperties, &submit);
21789bf215546Sopenharmony_ci}
21790bf215546Sopenharmony_ci
21791bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceExternalBufferProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
21792bf215546Sopenharmony_ci{
21793bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21794bf215546Sopenharmony_ci
21795bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21796bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalBufferProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pExternalBufferInfo, pExternalBufferProperties, &submit);
21797bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21798bf215546Sopenharmony_ci    if (dec) {
21799bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceExternalBufferProperties_reply(dec, physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
21800bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21801bf215546Sopenharmony_ci    }
21802bf215546Sopenharmony_ci}
21803bf215546Sopenharmony_ci
21804bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceExternalBufferProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
21805bf215546Sopenharmony_ci{
21806bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21807bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalBufferProperties(vn_instance, 0, physicalDevice, pExternalBufferInfo, pExternalBufferProperties, &submit);
21808bf215546Sopenharmony_ci}
21809bf215546Sopenharmony_ci
21810bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
21811bf215546Sopenharmony_ci{
21812bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21813bf215546Sopenharmony_ci
21814bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21815bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalSemaphoreProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, &submit);
21816bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21817bf215546Sopenharmony_ci    if (dec) {
21818bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_reply(dec, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
21819bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21820bf215546Sopenharmony_ci    }
21821bf215546Sopenharmony_ci}
21822bf215546Sopenharmony_ci
21823bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceExternalSemaphoreProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
21824bf215546Sopenharmony_ci{
21825bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21826bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalSemaphoreProperties(vn_instance, 0, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, &submit);
21827bf215546Sopenharmony_ci}
21828bf215546Sopenharmony_ci
21829bf215546Sopenharmony_cistatic inline void vn_call_vkGetPhysicalDeviceExternalFenceProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
21830bf215546Sopenharmony_ci{
21831bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21832bf215546Sopenharmony_ci
21833bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21834bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalFenceProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pExternalFenceInfo, pExternalFenceProperties, &submit);
21835bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21836bf215546Sopenharmony_ci    if (dec) {
21837bf215546Sopenharmony_ci        vn_decode_vkGetPhysicalDeviceExternalFenceProperties_reply(dec, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
21838bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21839bf215546Sopenharmony_ci    }
21840bf215546Sopenharmony_ci}
21841bf215546Sopenharmony_ci
21842bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceExternalFenceProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
21843bf215546Sopenharmony_ci{
21844bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21845bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceExternalFenceProperties(vn_instance, 0, physicalDevice, pExternalFenceInfo, pExternalFenceProperties, &submit);
21846bf215546Sopenharmony_ci}
21847bf215546Sopenharmony_ci
21848bf215546Sopenharmony_cistatic inline VkResult vn_call_vkEnumeratePhysicalDeviceGroups(struct vn_instance *vn_instance, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
21849bf215546Sopenharmony_ci{
21850bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21851bf215546Sopenharmony_ci
21852bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21853bf215546Sopenharmony_ci    vn_submit_vkEnumeratePhysicalDeviceGroups(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, &submit);
21854bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21855bf215546Sopenharmony_ci    if (dec) {
21856bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkEnumeratePhysicalDeviceGroups_reply(dec, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
21857bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21858bf215546Sopenharmony_ci        return ret;
21859bf215546Sopenharmony_ci    } else {
21860bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21861bf215546Sopenharmony_ci    }
21862bf215546Sopenharmony_ci}
21863bf215546Sopenharmony_ci
21864bf215546Sopenharmony_cistatic inline void vn_async_vkEnumeratePhysicalDeviceGroups(struct vn_instance *vn_instance, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
21865bf215546Sopenharmony_ci{
21866bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21867bf215546Sopenharmony_ci    vn_submit_vkEnumeratePhysicalDeviceGroups(vn_instance, 0, instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, &submit);
21868bf215546Sopenharmony_ci}
21869bf215546Sopenharmony_ci
21870bf215546Sopenharmony_cistatic inline void vn_call_vkGetDeviceGroupPeerMemoryFeatures(struct vn_instance *vn_instance, VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
21871bf215546Sopenharmony_ci{
21872bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21873bf215546Sopenharmony_ci
21874bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21875bf215546Sopenharmony_ci    vn_submit_vkGetDeviceGroupPeerMemoryFeatures(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, &submit);
21876bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21877bf215546Sopenharmony_ci    if (dec) {
21878bf215546Sopenharmony_ci        vn_decode_vkGetDeviceGroupPeerMemoryFeatures_reply(dec, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
21879bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21880bf215546Sopenharmony_ci    }
21881bf215546Sopenharmony_ci}
21882bf215546Sopenharmony_ci
21883bf215546Sopenharmony_cistatic inline void vn_async_vkGetDeviceGroupPeerMemoryFeatures(struct vn_instance *vn_instance, VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
21884bf215546Sopenharmony_ci{
21885bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21886bf215546Sopenharmony_ci    vn_submit_vkGetDeviceGroupPeerMemoryFeatures(vn_instance, 0, device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, &submit);
21887bf215546Sopenharmony_ci}
21888bf215546Sopenharmony_ci
21889bf215546Sopenharmony_cistatic inline void vn_call_vkGetDeviceQueue2(struct vn_instance *vn_instance, VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
21890bf215546Sopenharmony_ci{
21891bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21892bf215546Sopenharmony_ci
21893bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21894bf215546Sopenharmony_ci    vn_submit_vkGetDeviceQueue2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pQueueInfo, pQueue, &submit);
21895bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21896bf215546Sopenharmony_ci    if (dec) {
21897bf215546Sopenharmony_ci        vn_decode_vkGetDeviceQueue2_reply(dec, device, pQueueInfo, pQueue);
21898bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21899bf215546Sopenharmony_ci    }
21900bf215546Sopenharmony_ci}
21901bf215546Sopenharmony_ci
21902bf215546Sopenharmony_cistatic inline void vn_async_vkGetDeviceQueue2(struct vn_instance *vn_instance, VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
21903bf215546Sopenharmony_ci{
21904bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21905bf215546Sopenharmony_ci    vn_submit_vkGetDeviceQueue2(vn_instance, 0, device, pQueueInfo, pQueue, &submit);
21906bf215546Sopenharmony_ci}
21907bf215546Sopenharmony_ci
21908bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
21909bf215546Sopenharmony_ci{
21910bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21911bf215546Sopenharmony_ci
21912bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21913bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pTimeDomainCount, pTimeDomains, &submit);
21914bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21915bf215546Sopenharmony_ci    if (dec) {
21916bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(dec, physicalDevice, pTimeDomainCount, pTimeDomains);
21917bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21918bf215546Sopenharmony_ci        return ret;
21919bf215546Sopenharmony_ci    } else {
21920bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21921bf215546Sopenharmony_ci    }
21922bf215546Sopenharmony_ci}
21923bf215546Sopenharmony_ci
21924bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
21925bf215546Sopenharmony_ci{
21926bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21927bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(vn_instance, 0, physicalDevice, pTimeDomainCount, pTimeDomains, &submit);
21928bf215546Sopenharmony_ci}
21929bf215546Sopenharmony_ci
21930bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetCalibratedTimestampsEXT(struct vn_instance *vn_instance, VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
21931bf215546Sopenharmony_ci{
21932bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21933bf215546Sopenharmony_ci
21934bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21935bf215546Sopenharmony_ci    vn_submit_vkGetCalibratedTimestampsEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, &submit);
21936bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21937bf215546Sopenharmony_ci    if (dec) {
21938bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkGetCalibratedTimestampsEXT_reply(dec, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
21939bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21940bf215546Sopenharmony_ci        return ret;
21941bf215546Sopenharmony_ci    } else {
21942bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21943bf215546Sopenharmony_ci    }
21944bf215546Sopenharmony_ci}
21945bf215546Sopenharmony_ci
21946bf215546Sopenharmony_cistatic inline void vn_async_vkGetCalibratedTimestampsEXT(struct vn_instance *vn_instance, VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
21947bf215546Sopenharmony_ci{
21948bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21949bf215546Sopenharmony_ci    vn_submit_vkGetCalibratedTimestampsEXT(vn_instance, 0, device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, &submit);
21950bf215546Sopenharmony_ci}
21951bf215546Sopenharmony_ci
21952bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetPhysicalDeviceToolProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
21953bf215546Sopenharmony_ci{
21954bf215546Sopenharmony_ci    VN_TRACE_FUNC();
21955bf215546Sopenharmony_ci
21956bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21957bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceToolProperties(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, physicalDevice, pToolCount, pToolProperties, &submit);
21958bf215546Sopenharmony_ci    struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
21959bf215546Sopenharmony_ci    if (dec) {
21960bf215546Sopenharmony_ci        const VkResult ret = vn_decode_vkGetPhysicalDeviceToolProperties_reply(dec, physicalDevice, pToolCount, pToolProperties);
21961bf215546Sopenharmony_ci        vn_instance_free_command_reply(vn_instance, &submit);
21962bf215546Sopenharmony_ci        return ret;
21963bf215546Sopenharmony_ci    } else {
21964bf215546Sopenharmony_ci        return VK_ERROR_OUT_OF_HOST_MEMORY;
21965bf215546Sopenharmony_ci    }
21966bf215546Sopenharmony_ci}
21967bf215546Sopenharmony_ci
21968bf215546Sopenharmony_cistatic inline void vn_async_vkGetPhysicalDeviceToolProperties(struct vn_instance *vn_instance, VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
21969bf215546Sopenharmony_ci{
21970bf215546Sopenharmony_ci    struct vn_instance_submit_command submit;
21971bf215546Sopenharmony_ci    vn_submit_vkGetPhysicalDeviceToolProperties(vn_instance, 0, physicalDevice, pToolCount, pToolProperties, &submit);
21972bf215546Sopenharmony_ci}
21973bf215546Sopenharmony_ci
21974bf215546Sopenharmony_ci#endif /* VN_PROTOCOL_DRIVER_DEVICE_H */
21975